Age | Commit message (Collapse) | Author |
|
Release 0.13.4 changelog
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Fix nested arrays (by reworking array handling) - backport
|
|
[release-0.13.x] chore(Cargo.toml): Better document direct deps
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
- 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>
|
|
- 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>
|
|
- 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>
|
|
[release-0.13.x] fix(CI): Add `Cargo.lock.msrv` for CI tests
|
|
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>
|
|
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>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Changelog for 0.13.3
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Backport 379: Add clone trait to builder state
|
|
(cherry picked from commit 02c80a5c5a68022bd2d9eee7a67acff02062abb0)
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Update MSRV: 1.56.0 -> 1.59.0
|
|
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>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
0.13.x: Backport #362
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
(cherry picked from commit d54986c54091e4620c199d3dfadde80b82958bb3)
|
|
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)
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
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)
|
|
Signed-off-by: Xuanwo <github@xuanwo.io>
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
(cherry picked from commit 33df8d1f7f423c55eee23f3509d307975b0d94f6)
|
|
* 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>
|
|
Prepare 0.13.1
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
fix: dot in config name
|
|
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.
|
|
docs(builder): fix typo in doc comment
|
|
Prepare 0.13
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Fix: If no features are enabled, this should still build
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Fixed type in ConfigBuilder docs
|
|
Fixed a simple type in the `ConfigBuilder` docs, `alaways` -> `always`
|
|
chore: add the possibility to keep the prefix from env var.
|
|
302-add-set-override-option-combinator
|
|
This patch adds ConfigBuilder::set_override_option() to override a
setting from an Option<_>.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|