summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2023-11-22Merge pull request #500 from matthiasbeyer/release-0.13/changelogv0.13.4release-0.13.xMatthias Beyer
Release 0.13.4 changelog
2023-11-22Update version: 0.13.3 -> 0.13.4Matthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2023-11-22Add changelog entry for 0.13.4Matthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2023-11-09Merge pull request #486 from ijackson/nested-array-backportMatthias Beyer
Fix nested arrays (by reworking array handling) - backport
2023-11-09Merge pull request #495 from mehcode/chore/0.13.x-min-versionsMatthias Beyer
[release-0.13.x] chore(Cargo.toml): Better document direct deps
2023-11-07ser: sequences: Test a more comprehensive round-tripIan Jackson
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk> (cherry picked from commit aa63d2dbbcc13fbdfa846185d54d87d7822e2509) Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2023-11-07ser: sequences: Rework, fixing handling of nested arraysIan Jackson
Change the representation of our "current location". Previously it was a list of increasingly-long full paths, but excepting the putative final array index. Now we just record the individual elements. and assemble the whole path just before calling .set(). This saves a little memory on the whole since the entries in keys are now a bit shorter. It is much less confusing. (There are perhaps still further opportunities to use Rust's type system to better advantage to eliminuate opportunities for bugs.) Arrays that appear other than at the top level are now handled correctly. This includes nested arrays, and arrays containing structs, etc. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk> (cherry picked from commit 831102fe0ffd5c7fe475efe5f379c710d201f165) Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2023-11-07ser: sequences: Introduce SeqSerializer newtypeIan Jackson
We're going to want to do something more complicated. In particular, to handle nested arrays properly, we need to do some work at the start and end of each array. The `new` and (inherent) `end` methods of this newtype is where that work will be done. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk> (cherry picked from commit 147e6c7275b65b6a74eaec9c05b317673e61084e) Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2023-11-07ser: sequences: CentraliseIan Jackson
Have all the various versions of sequences (arrays and various forms of tuple) all go via ser::SerializeSeq. This reduces some duplication. And, we're about to change the implementation. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk> (cherry picked from commit ed6a3c9882fbc43eae9313ab1801610e49af863f) Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2023-11-07chore(CI): Relax MSRV to `1.56.1`polarathene
- Previously raised to `1.59.0` for CI to pass. - With an MSRV lock file committed this is no longer necessary. Signed-off-by: Brennan Kinney <5098581+polarathene@users.noreply.github.com>
2023-11-07chore(CI): Update `Cargo.lock.msrv`polarathene
- Reduces multi-versioned deps - Now compatible with Rust 1.56.1 Lock file was created with: ```bash cargo +nightly update -Z msrv-policy cargo update --package memchr --precise 2.5.0 cargo update --package ordered-multimap --precise 0.4.0 cargo update --package tokio-util --precise 0.7.8 ``` Signed-off-by: Brennan Kinney <5098581+polarathene@users.noreply.github.com>
2023-11-07chore(Cargo.toml): Better document direct depsBrennan Kinney
- Slight adjustments to the version fields for compatibility with `cargo +nightly update -Z direct-minimal-versions` for MSRV `1.56.0` - Add `rust-version` field for leveraging `cargo +nightly update -Z msrv-policy` to generate a lockfile that respects the MSRV, and the benefit of downstreams. - Communicate why `dev-dependencies` are required (examples / tests). - Avoid repeating deps in `dev-dependencies`. - Raise fixed `warp` dev dep to a MSRV compatible version with common `tokio-util` implicit dep. Simplifies CI lock maintenance. Signed-off-by: Brennan Kinney <5098581+polarathene@users.noreply.github.com>
2023-11-07Merge pull request #496 from ijackson/release-lockfile-bisBrennan Kinney
[release-0.13.x] fix(CI): Add `Cargo.lock.msrv` for CI tests
2023-11-06Use Cargo.lock.msrv in CI testsIan Jackson
This will prevent our CI breaking due to updates to our dependencies. Because of the way the msrv.yml file is constructed, it was not straightforward to use the committed lockfile only for the MSRV tests. It would be better to use a different lockfile, with latest versions of our dependencies, for non-MSRV tests. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2023-11-06Commit a Cargo.lock.minimal that works with our MSRVIan Jackson
This is not so trivial. In theory, cargo +nightly update -Z minimal-versions generate-lockfile ought to work. However, there are rather many places in our dependency tree where some crate A depends on crate B, version V, but it actually doesn't build with version V, but requires something considerably newer. There seemed to be particular problems in the parts of the dependency graph near "pest". My attempts at starting with the minimal versions and upgrading crates as needed, were not successful. However, I was able to converge reasonably quickly from the other end: starting with the lockfile generated by 1.59, using recent versions, and then repeatedly downgrading crates whose (actual, or declared) MSRV was too high. I used the following recipe on 2023-10-24 to generates this lockfile: Bump Tokio dependency to 1.29 in Cargo.toml cargo +1.59 generate-lockfile cargo +nightly update -Z minimal-versions -p linux-raw-sys cargo +nightly update -Z minimal-versions -p tokio cargo +nightly update -Z minimal-versions -p rustix cargo +nightly update -Z minimal-versions -p tempfile cargo +nightly update -Z minimal-versions -p reqwest cargo +nightly update -Z minimal-versions -p byteorder cargo +nightly update -Z minimal-versions -p h2 cargo +nightly update -Z minimal-versions -p log cargo +nightly update -Z minimal-versions -p tokio cargo +nightly update -Z minimal-versions -p tokio-util@0.7.9 Discard the Tokio dependency update So that is what we commit here. This is unprincipled, and the recipe above has already rotted by 2023-11-06. In the future (especially on the mainline) we can hopefully have a more principled approach. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2022-12-04Bump patchlevel to 0.13.30.13.3Matthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2022-12-04Merge pull request #400 from matthiasbeyer/release-0.13.3-changelogMatthias Beyer
Changelog for 0.13.3
2022-12-04Add note about MSRV update in 0.13.3Matthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2022-12-04Add CHANGELOG entry for 0.13.3Matthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2022-12-04Merge pull request #398 from matthiasbeyer/backport-379Matthias Beyer
Backport 379: Add clone trait to builder state
2022-12-04Add Clone trait to builder stateJunichiSugiura
(cherry picked from commit 02c80a5c5a68022bd2d9eee7a67acff02062abb0) Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2022-12-04Merge pull request #399 from matthiasbeyer/release-0.13.x-update-rustcMatthias Beyer
Update MSRV: 1.56.0 -> 1.59.0
2022-12-04Fix: Do not use deprecated functionMatthias Beyer
Replace use of deprecated function with Utc.with_ymd_and_hms(). Signed-off-by: Matthias Beyer <mail@beyermatthias.de> (cherry picked from commit 5d9cb2727061eeb2c264c6e865cf3e7b96e21d64) Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2022-12-04Update MSRV: 1.56.0 -> 1.59.0Matthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2022-08-02Merge pull request #364 from matthiasbeyer/release-0.13.x-backport-362Matthias Beyer
0.13.x: Backport #362
2022-08-02Fix: Use float_cmp for testing floatsMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de> (cherry picked from commit d54986c54091e4620c199d3dfadde80b82958bb3)
2022-08-02Run clippy only on MSRVMatthias Beyer
This patch reverts the matrix for the clippy job to only run clippy on our MSRV instead of stable, beta and nightly. The recurring issue with this was that lints started failing in PRs that couldn't have been fixed in master yet, because master was never tested with a clippy that new (in case of nightly). 1.56.1 is good enough for now. Signed-off-by: Matthias Beyer <mail@beyermatthias.de> (cherry picked from commit 336a34e52c8b0889180c865b29c89420cd1788dc)
2022-08-02Bump patchlevel to 0.13.20.13.2Matthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2022-08-02Add CHANGELOG entry for 0.13.2Matthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2022-08-02Fix json5 test: Remove artifact characterMatthias Beyer
I am not sure what happened that these tests suddenly fail, or where the artifact comes from... Signed-off-by: Matthias Beyer <mail@beyermatthias.de> (cherry picked from commit 518a3cafa1e62ba7405709e5c508247e328e0a18)
2022-08-02test: Adopt test-env to fix random test failureXuanwo
Signed-off-by: Xuanwo <github@xuanwo.io> Signed-off-by: Matthias Beyer <mail@beyermatthias.de> (cherry picked from commit 33df8d1f7f423c55eee23f3509d307975b0d94f6)
2022-08-02Use TryInto for more permissive deserialization for integersKesavan Yogeswaran
* Attempt to convert between integer types using `TryInto`-based conversions rather than blanket failing for some source and destination types. * Use `into_uint` instead of `into_int` in `Value` Deserialize implementations for unsigned integer types. Previously, we were converting from signed types to unsigned types using `as`, which can lead to surprise integer values conversions (#93). Fixes #352 and #93 (cherry picked from commit 7db2e8bfb46d9364ddc3419d3186b150141cc890) Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2022-04-13Merge pull request #313 from matthiasbeyer/prepare-0.13.10.13.1Matthias Beyer
Prepare 0.13.1
2022-04-13Update version in Cargo.tomlMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2022-04-13Update config version in READMEMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2022-04-13Add changelog for 0.13.1Matthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2022-04-10Merge pull request #306 from CfirTsabari/cfirtsabari/doesn-t-work-with-dot-101Matthias Beyer
fix: dot in config name
2022-04-10fix: dot in config nameCfirTsabari
Rust std `set_extension` is either add an extension if none exists, or edit the current one if such exists. This caused a mishandling when user is using a name with a dot, part of the name was treated as an extension, and be overwritten by the different format extensions. So manually *adding* a new dummy extension will cause the current code, to behave as expected, since it will always overwrite the new dummy extension and not part of the name.
2022-04-08Merge pull request #299 from lukehsiao/patch-1Matthias Beyer
docs(builder): fix typo in doc comment
2022-04-03Merge pull request #310 from matthiasbeyer/prepare-0.130.13.0Matthias Beyer
Prepare 0.13
2022-04-03Update version in Cargo.tomlMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2022-04-03Update version in READMEMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2022-04-03Add changelog for 0.13Matthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2022-03-31Merge pull request #309 from matthiasbeyer/fix-no-feature-buildMatthias Beyer
Fix: If no features are enabled, this should still build
2022-03-31Fix: If no features are enabled, this should still buildMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2022-03-31Merge pull request #307 from bicarlsen/patch-1Matthias Beyer
Fixed type in ConfigBuilder docs
2022-03-31Fixed type in ConfigBuilder docsbicarlsen
Fixed a simple type in the `ConfigBuilder` docs, `alaways` -> `always`
2022-03-24Merge pull request #298 from jaudiger/chore-keepPrefixMatthias Beyer
chore: add the possibility to keep the prefix from env var.
2022-03-22Merge pull request #303 from saraiva132/302-add-set-override-optionMatthias Beyer
302-add-set-override-option-combinator
2022-03-22Add ConfigBuilder::set_override_option()Rafael Saraiva Figueiredo
This patch adds ConfigBuilder::set_override_option() to override a setting from an Option<_>. Signed-off-by: Matthias Beyer <mail@beyermatthias.de>