router icon indicating copy to clipboard operation
router copied to clipboard

chore(deps): update cargo pre-1.0 packages (minor)

Open renovate[bot] opened this issue 3 years ago β€’ 4 comments

Mend Renovate

This PR contains the following updates:

Package Type Update Change
criterion (source) dev-dependencies minor 0.3 -> 0.4
lru dependencies minor 0.7.8 -> 0.8.1
prost dependencies minor 0.9.0 -> 0.11.0
prost-types dependencies minor 0.9.0 -> 0.11.1
serde_yaml dependencies minor 0.8.26 -> 0.9.13
tonic dependencies minor 0.6.2 -> 0.8.2
tonic-build build-dependencies minor 0.6.2 -> 0.8.2

Release Notes

bheisler/criterion.rs

v0.4.0

Compare Source

Removed
  • The Criterion::can_plot function has been removed.
  • The Criterion::bench_function_over_inputs function has been removed.
  • The Criterion::bench_functions function has been removed.
  • The Criterion::bench function has been removed.
Changed
  • HTML report hidden behind non-default feature flag: 'html_reports'
  • Standalone support (ie without cargo-criterion) feature flag: 'cargo_bench_support'
  • MSRV bumped to 1.57
  • rayon and plotters are optional (and default) dependencies.
  • Status messages ('warming up', 'analyzing', etc) are printed to stderr, benchmark results are printed to stdout.
  • Accept subsecond durations for --warm-up-time, --measurement-time and --profile-time.
  • Replaced serde_cbor with ciborium because the former is no longer maintained.
  • Upgrade clap to v3 and regex to v1.5.
Added
  • A --discard-baseline flag for discarding rather than saving benchmark results.
  • Formal support for benchmarking code compiled to web-assembly.
  • A --quiet flag for printing just a single line per benchmark.
  • A Throughput::BytesDecimal option for measuring throughput in bytes but printing them using decimal units like kilobytes instead of binary units like kibibytes.
Fixed
  • When using bench_with_input, the input parameter will now be passed through black_box before passing it to the benchmark.

v0.3.6

Compare Source

Changed
  • MSRV bumped to 1.49
  • Symbol for microseconds changed from ASCII 'us' to unicode 'Β΅s'
  • Documentation fixes
  • Clippy fixes

v0.3.5

Compare Source

Fixed
  • Corrected Criterion.toml in the book.
  • Corrected configuration typo in the book.
Changed
  • Bump plotters dependency to always include a bug-fix.
  • MSRV bumped to 1.46.

v0.3.4

Compare Source

Added
  • Added support for benchmarking async functions
  • Added with_output_color for enabling or disabling CLI output coloring programmatically.
Fixed
  • Criterion.rs will now give a clear error message in case of benchmarks that take zero time.
  • Added some extra code to ensure that every sample has at least one iteration.
  • Added a notice to the --help output regarding "unrecognized option" errors.
  • Increased opacity on violin charts.
  • Fixed violin chart X axis not starting at zero in the plotters backend.
  • Criterion.rs will now automatically detect the right output directory.
Deprecated
  • Criterion::can_plot is no longer useful and is deprecated pending deletion in 0.4.0.
  • Benchmark and ParameterizedBenchmark were already hidden from documentation, but are now formally deprecated pending deletion in 0.4.0. Callers should use BenchmarkGroup instead.
  • Criterion::bench_function_over_inputs, Criterion::bench_functions, and Criterion::bench were already hidden from documentation, but are now formally deprecated pending deletion in 0.4.0. Callers should use BenchmarkGroup instead.
  • Three new optional features have been added; "html_reports", "csv_output" and "cargo_bench_support". These features currently do nothing except disable a warning message at runtime, but in version 0.4.0 they will be used to enable HTML report generation, CSV file generation, and the ability to run in cargo-bench (as opposed to cargo-criterion). "cargo_bench_support" is enabled by default, but "html_reports" and "csv_output" are not. If you use Criterion.rs' HTML reports, it is recommended to switch to cargo-criterion. If you use CSV output, it is recommended to switch to cargo-criterion and use the --message-format=json option for machine-readable output instead. A warning message will be printed at the start of benchmark runs which do not have "html_reports" or "cargo_bench_support" enabled, but because CSV output is not widely used it has no warning.

v0.3.3

Compare Source

Added
  • Added CRITERION_HOME environment variable to set the directory for Criterion to store its results and charts in.
  • Added support for [cargo-criterion]. The long-term goal here is to remove code from Criterion-rs itself to improve compile times, as well as to add features to cargo-criterion that are difficult to implement in Criterion-rs.
  • Add sampling mode option for benchmarks. This allows the user to change how Criterion.rs chooses the iteration counts in each sample. By default, nothing will change for most benchmarks, but very slow benchmarks will now run fewer iterations to fit in the desired number of samples. This affects the statistics and plots generated.
Changed
  • The serialization format for some of the files has changed. This may cause your first benchmark run after updating to produce errors, but they're harmless and will go away after running the benchmarks once.
Fixed
  • Fixed a bug where the current measurement was not shown on the relative regression plot.
  • Fixed rare panic in the plotters backend.
  • Panic with a clear error message (rather than panicking messily later on) when the user sets the group or function name to the empty string.
  • Escape single quotes in benchmark names when generating Gnuplot scripts.

v0.3.2

Compare Source

Added
  • Added ?Sized bound to benchmark parameter types, which allows dynamically sized types like &str and &[T] to be used as benchmark parameters.
  • Added the --output-format <format> command-line option. If --output-format bencher is passed, Criterion.rs will print its measurements in a format similar to that used by the bencher crate or unstable libtest benchmarks, and using similar statistical measurements as well. Though this provides less information than the default format, it may be useful for supporting tools which parse this output format.
  • Added --nocapture argument. This argument does nothing, but prevents Criterion.rs from exiting when running tests or benchmarks and allowing stdout output from other tests.
Fixed
  • Fixed panic when environment variables contains non-UTF8 characters.
  • Fixed panic when CRITERION_DEBUG or CRITERION_TARGET_DIR environment variables contain non-UTF8 characters.

v0.3.1

Compare Source

Added
  • Added new plotting backend using the plotters crate. Implementation generously provided by Hao Hou, author of the plotters crate.
  • Added --plotting-backend command-line option to select the plotting backend. The existing gnuplot backend will be used by default when available, and the plotters backend will be used when gnuplot is not available or when requested.
  • Added Criterion::plotting_backend() function to configure the plotting backend in code.
  • Added --load-baseline command-line option to load a baseline for comparison rather than measuring the current code
  • Benchmark filters can now be regular expressions.
Fixed
  • Fixed fibonacci functions.
  • Fixed #[criterion] benchmarks ignoring the command-line options.
  • Fixed incorrect scaling of the violin plots.
  • Don't print the recommended sample count if it's the same as the configured sample count.
  • Fix potential panic when nresamples is set too low. Also added a warning against setting nresamples too low.
  • Fixed issue where a slow outer closure would cause Criterion.rs to calculate the wrong estimated time and number of iterations in the warm-up phase.
jeromefroe/lru-rs

v0.8.1

Compare Source

  • Add "caching" and "no-std" to list of categories.

v0.8.0

Compare Source

  • Use NonZeroUsize for LRU capacity instead of usize.
  • Add get_or_insert_mut method which is similiar to get_or_insert but returns a mutable reference instead of an immutable reference.
  • Add LruCache::promote and LruCache::demote API to manipulate LRU order of the entry directly.
tokio-rs/prost

v0.11.0

Compare Source

PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

Relase 0.11 brings a few breaking changes and changes to how prost sources protoc.

  • prost-build now requires protoc to be available in the path or set via the PROTOC env var.
  • prost-types now contains new Timestamp/Duration FromStr implementations.
  • MSRV bump to 1.56 and all crates have been moved to edition 2021

Notible changes that are not breaking:

  • prost-build now has a cleanup-markdown feature for cleaining up code blocks from protobuf files so that they work under rustdoc tests.
  • prost-build now generates as_str_name for message types.

v0.10.4

Compare Source

PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

Small fix for compiling protoc from source to speed up compile times.

v0.10.3

Compare Source

PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

This release reverts #​605 and contains some typo fixes.

(this release is actually the v0.10.2 release but prost-build had to be yanked because of a local publish issue)

v0.10.2

Compare Source

PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

This release reverts #​605 and contains some typo fixes.

(this release was yanked due to missing third-party source, v0.10.3 is now the active release for this)

v0.10.1

Compare Source

PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

This minor release brings no new code changes but symlinks license files in all the crates.

v0.10.0

Compare Source

PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

Release 0.10 brings a few new ....

  • protoc is no longer bundled but is now compiled from bundled source
  • Minor performance improvements
  • Methods exposed to allow third party protobuf generation libraries
dtolnay/serde-yaml

v0.9.13

Compare Source

  • Recognize True, TRUE, False, FALSE as booleans, Null, NULL as null (#​330)

v0.9.12

Compare Source

  • Support deserializing tagged literal scalar into primitive (#​327)

    "foo": !!int |-
      7200
    

v0.9.11

Compare Source

  • Serialize strings on a single line when they do not already contain a newline character, regardless of string length (#​321, #​322)

v0.9.10

Compare Source

  • Make Display for Number produce the same representation as serializing (#​316)

v0.9.9

Compare Source

v0.9.8

Compare Source

  • Fix serialization of TaggedValue when used with to_value (#​313)

v0.9.7

Compare Source

  • Allow an empty plain scalar to deserialize as an empty map or seq (#​304)

v0.9.6

Compare Source

  • Fix tag not getting serialized in certain map values (#​302)

v0.9.5

Compare Source

v0.9.4

Compare Source

  • Add serde_yaml::with::singleton_map for serialization of enums as a 1-entry map (#​300)
  • Reject duplicate keys when deserializing Mapping or Value (#​301)

v0.9.3

Compare Source

  • Add categories to crates.io metadata
  • Add keywords to crates.io metadata

v0.9.2

Compare Source

  • Improve Debug representation of serde_yaml::Error

v0.9.1

Compare Source

  • Fix panic on some documents containing syntax error (#​293)
  • Improve error messages that used to contain duplicative line/column information (#​294)

v0.9.0

Compare Source

API documentation: https://docs.rs/serde_yaml/0.9

Highlights
  • The serde_yaml::Value enum gains a Tagged variant which represents the deserialization of YAML's !Tag syntax. Tagged scalars, sequences, and mappings are all supported.

  • An empty YAML input (or document containing only comments) will deserialize successfully to an empty map, empty sequence, or Serde struct as long as the struct has only optional fields. Previously this would error.

  • A new .apply_merge() method on Value implements YAML's << merge key convention.

  • The Debug representation of serde_yaml::Value has gotten vastly better (https://github.com/dtolnay/serde-yaml/pull/287).

  • Deserialization of borrowed strings now works.

    #[derive(Deserialize, Debug)]
    struct Struct<'a> {
        borrowed: &'a str,
    }
    
    let yaml = "borrowed: 'kΓΆlcsΓΆnzΓΆtt'\n";
    let value: Struct = serde_yaml::from_str(yaml)?;
    println!("{:#?}", value);
    
  • Value's and Mapping's methods get and get_mut have been generalized to support a &str argument, as opposed to requiring you to allocate and construct a Value::String for indexing into another existing Value.

  • Mapping exposes more APIs that have become conventional on map data structures, such as .keys(), .values(), .into_keys(), .into_values(), .values_mut(), and .retain(|k, v| …).

Breaking changes
  • Serialization no longer produces leading ---\n on the serialized output. You can prepend this yourself if your use case demands it.

  • Serialization of enum variants is now based on YAML's !Tag syntax, rather than JSON-style singleton maps.

    #[derive(Serialize, Deserialize)]
    enum Enum {
        Newtype(usize),
        Tuple(usize, usize, usize),
        Struct { x: f64, y: f64 },
    }
    
    - !Newtype 1
    - !Tuple [0, 0, 0]
    - !Struct {x: 1.0, y: 2.0}
    
  • A bunch of non-base-10 edge cases in number parsing have been resolved. For example 0x+1 and ++0x1 are now parsed as strings, whereas they used to be incorrectly treated as numbers.

  • Deserializers obtained through iteration can no longer be iterated further:

    let deserializer = serde_yaml::Deserializer::from_str(multiple_documents);
    for de in deserializer {
        // correct:
        let myvalue = T::deserialize(de)?;
    
        // incorrect: used to produce some questionable result, now produces 0 sub-documents
        for questionable in de {
            let wat = T::deserialize(questionable)?;
        }
    }
    
  • The abandoned yaml-rust crate is no longer used as the YAML backend. The new libyaml-based backend surely has different edge cases and quirks than yaml-rust.

  • Some excessive PartialEq impls have been eliminated.

  • The serde_yaml::to_vec function has been removed. Use serde_yaml::to_writer for doing I/O, or use serde_yaml::to_string + .into_bytes() on the resulting String.

  • The serde_yaml::seed module has been removed. Now that a serde_yaml::Deserializer is publicly available, the same use cases can be addressed via seed.deserialize(Deserializer::from_str(…)) instead.

Bugfixes
  • Empty values in a mapping are supported, and deserialize to empty string when the corresponding struct field is of type string. Previously they would deserialize to "~" which makes no sense.

  • 128-bit integer deserialization now supports hex and octal input.

  • Serde_yaml now includes a mitigation against a "billion laughs" attack in which malicious input involving YAML anchors and aliases is used to consume an amount of processing or memory that is exponential in the size of the input document. Serde_yaml will quickly produce an error in this situation instead.

hyperium/tonic

v0.8.2

Compare Source

Bug Fixes
Features

v0.8.1

Compare Source

Features
  • transport: Expose hyper's H2 adaptive window on server (#​1071) (919d28b)
  • Reduce the amount of monomorphized code.
  • Expose Extensions::into_http and Status::from_error.
  • health: Remove build.rs and commit generated code.

v0.8.0

Compare Source

Features
BREAKING CHANGES
  • build: CODEC_PATH moved from const to fn
  • tonic Remove codegen depedency on compression feature.
  • tonic Remove compression feature in favor of gzip feature.

v0.7.2

Compare Source

Bug Fixes
Features

v0.7.1

Compare Source

Features

v0.7.0

Compare Source

Breaking Changes
Bug Fixes
Features

Configuration

πŸ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

πŸ‘» Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • [ ] If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by Mend Renovate. View repository job log here.

renovate[bot] avatar Mar 20 '22 20:03 renovate[bot]

@renovate[bot] your pull request is missing a changelog!

github-actions[bot] avatar Mar 20 '22 20:03 github-actions[bot]

Deploy Preview for apollo-router-docs ready!

Name Link
Latest commit 41d1be2fc531b6fe7800e9c4c715f4aedbd7e7bb
Latest deploy log https://app.netlify.com/sites/apollo-router-docs/deploys/62bc8d9b4bff4d000714cadd
Deploy Preview https://deploy-preview-702--apollo-router-docs.netlify.app
Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

netlify[bot] avatar Mar 23 '22 14:03 netlify[bot]

Quoting https://github.com/apollographql/router/pull/702#pullrequestreview-981585053:

prost and tonic updates should wait for the next opentelemetry-otlp release, otherwise we'll end up again with both 0.9 and 0.10 versions of prost

Hoping that this (still!) outstanding bit gets resolved in the next week or so by virtue of the v0.18.0 release of opentelemetry-otlp finally getting published. Seems like some recent traction here: https://github.com/open-telemetry/opentelemetry-rust/pull/779 and https://github.com/open-telemetry/opentelemetry-rust/issues/860.

In the future, we may want to declare our versions to hold back specific packages in our Renovate configuration (similar to my just-opened #1509) so we can still bring other packages forward to their latest versions through automation without them piling up on this issue. Alternatively, we can ungroup the dependencies in Renovate (something we've specifically opted into), but I think just declaring our intentions is the most important thing (the grouping is nice for noise reasons).

abernix avatar Aug 15 '22 09:08 abernix

@renovate[bot], please add a /NEXT_CHANGELOG.md entry for this PR to the appropriate section!

github-actions[bot] avatar Sep 29 '22 16:09 github-actions[bot]

@renovate[bot], please consider creating a changeset entry in /.changesets/. These instructions describe the process and tooling.

github-actions[bot] avatar Feb 07 '23 15:02 github-actions[bot]

Idk. This PR seems out of control. I'm going to close it and let it re-open.

abernix avatar Feb 22 '23 09:02 abernix