Commit Graph

3640 Commits

Author SHA1 Message Date
Ian Jackson 4f42101554 lints: Add let_unit_value allow to all crates
From running add_warning, with manual picking of the right
hunks/lines.
2022-05-31 15:23:52 +01:00
Nick Mathewson f67c0eaf50 Merge branch 'tor-config-tests' into 'main'
Add a few coverage-based tests to tor-config.

See merge request tpo/core/arti!540
2022-05-31 14:08:51 +00:00
Ian Jackson 2814fd99c1 lints: Add let_unit_value allow to add_warning
add_warning can now add allows.  This one was agreed in some other MR
for one crate.  Allow it everywhere.
2022-05-31 14:52:09 +01:00
Ian Jackson a8f3423107 lints: Add two missing ones to add_warning
These were in some crates, but not all.  Put them in add_warning
where they will propagate everywhere.
2022-05-31 14:52:09 +01:00
Ian Jackson 4634c1712b lints: arti: Move some allows outside the auto block
These need to survive.
2022-05-31 14:39:17 +01:00
Nick Mathewson ca94ec72ef Add a few coverage-based tests to tor-config.
There's nothing major here, but it does fill in a few gaps.
2022-05-31 08:59:30 -04:00
Nick Mathewson 9fed0b39fa Merge branch 'dbg' into 'main'
Revert "Remove dbg!()s in tor-config"

See merge request tpo/core/arti!552
2022-05-31 12:38:59 +00:00
Ian Jackson 47a209fb31 lints: maint/add_warning: New marker-based mode
We don't process the in-script lint block, just paste it in, now.
This is less complicated.

This reverts/replaces
  "maint/add_warnings: Make it add the markers for its future self"
2022-05-31 13:00:31 +01:00
Ian Jackson ba0843da4a lints: Add lint block delimiters to every crate
This was the result of:
  maint/add_warning crates/*/src/{lib,main}.rs
and then manually curating the results.
2022-05-31 13:00:31 +01:00
Ian Jackson 3ae7244f91 maint/add_warnings: Make it add the markers for its future self
We'll run this in a moment.  Then we'll revert it.
2022-05-31 13:00:31 +01:00
Ian Jackson 1351945d87 lints: arti-config: Re-add standard lint list
We are going to make lints the same for every crate.
2022-05-31 13:00:31 +01:00
Ian Jackson ea5caf9ac2 lints: maint/add_warning: Improve ordering
The crates we have aren't consistent.  But changing this means the
deltas resulting from the script are smaller.
2022-05-31 13:00:31 +01:00
Ian Jackson a8331c588e maint/add_warnings: Tidy up, and add some commentary
This puts the actually-used lint list at the top.

No functional change.
2022-05-31 13:00:31 +01:00
Ian Jackson eb49bc7f46 lints: Suppress unknown lints in a way that works on nightly too
This is ridiculous.
2022-05-31 13:00:21 +01:00
Neel Chauhan 04579c0328 tor-dirclient: Require that self.digests is nonempty 2022-05-30 11:46:54 -07:00
trinity-1686a 0f290da005 add support for openssl backend in llcrypto 2022-05-30 17:22:31 +02:00
Ian Jackson fe9fb6b6ee arti config: Check that example config is exhaustive
This is the final piece of #457.
2022-05-30 16:03:01 +01:00
Ian Jackson 0a324f843f mistrust: Canonicalise prefix from Some("") to None
This allows us to add the proper default example to the arti example
config file.
2022-05-30 16:00:45 +01:00
Ian Jackson ca60859dff arti: config: Canonicalise ports, and provide example dns_port
Now the validated configuration will never be `Some(0)`, even if that
is what was written in the config file.  The arti CLI parser can still
produce this, so we don't touch the code that actually uses this.

(Without the canonicalisation the default builder produces `None` for
the `dns_port`, but the example would produce `Some(0)`, which is
semantically identical but fails the test.)

See https://gitlab.torproject.org/tpo/core/arti/-/issues/488 for some
background.
2022-05-30 16:00:45 +01:00
Ian Jackson fbfaecdf72 config: Provide tor_config::resolve_option and resolve journald
Canonicalise the `logging.journald` setting in the validated
configuration.  Now it will never be `Some("")`, even if that is what
was written in the config file.

This allows us to write `journald = ""` in the example configuration.
(Without the canonicalisation the default builder produces `None` and
the example would produce `Some("")`, which are semantically identical
but fail the test.)

See https://gitlab.torproject.org/tpo/core/arti/-/issues/488 for some
background.
2022-05-30 16:00:45 +01:00
Ian Jackson fb54b5b032 arti: config example: Add entries for tor_network fields
These weren't previously discussed.  It's not practical or useful to
show the actual default values here.
2022-05-30 16:00:45 +01:00
Ian Jackson 116b6c30e0 arti: config example: Add some missing defaults
Found by my forthcoming test.
2022-05-30 16:00:45 +01:00
Ian Jackson d365d73889 arti: example config: Arrange to uncomment logfiles
This makes the config default parser see just "[ ]", an empty list,
which is indeed the default.
2022-05-30 16:00:45 +01:00
Ian Jackson b88c1c1093 tor-config: Drop Serialize and Deserialize from a test type
These violate our rule that *built* structs ought not to be desr.
But this is just in a test.
2022-05-30 16:00:45 +01:00
Ian Jackson c8d5681ff1 arti: Make ProxyConfig no longer Deserialize
That this remained was an oversight.
2022-05-30 16:00:45 +01:00
Ian Jackson e0d9d24348 arti: cfg: Actually uncomment *all* the things in the example 2022-05-30 16:00:45 +01:00
Ian Jackson 017906cdc7 tor-dirmgr: Fix DirSkewTolerance
This was upposed to be one day, I presume!

Also complete a truncated sentence in the docs.
2022-05-30 16:00:45 +01:00
Ian Jackson 5824992471 Merge branch 'post-release-fix-20220527' into 'main'
Fix minor issues found while publishing crates for Arti 0.4.0

See merge request tpo/core/arti!547
2022-05-30 14:57:49 +00:00
Ian Jackson ea80f124ff Merge branch 'bug487' into 'main'
fs-mistrust: add getegid() to getgrouplist() output.

Closes #487

See merge request tpo/core/arti!548
2022-05-30 14:56:49 +00:00
Ian Jackson 064521dcf2 Merge branch 'arti-cfg-tests' into 'main'
add unit tests for ArtiConfig public functions

See merge request tpo/core/arti!551
2022-05-30 14:23:11 +00:00
Ian Jackson aa5e647bd2 Merge branch 'chore/integrate_cargo_sort' into 'main'
Lexically sort Cargo.toml dependencies

Closes #490

See merge request tpo/core/arti!549
2022-05-30 14:19:19 +00:00
Ian Jackson 573d12363b Merge branch 'per_crate_semver' into 'main'
Update semver_status.md with new procedure.

See merge request tpo/core/arti!545
2022-05-30 13:47:05 +00:00
Ian Jackson 5327059775 Merge branch 'mistrust_osstring_limitation' into 'main'
fs-mistrust: Document problems with non-UTF8 OsString in toml

See merge request tpo/core/arti!538
2022-05-30 09:54:10 +00:00
Ian Jackson c3de4f338b Merge branch 'dns-dedup' into 'main'
deduplicate dns requests based on transaction id

Closes #411

See merge request tpo/core/arti!535
2022-05-30 09:52:11 +00:00
trinity-1686a 266b278c74 deduplicate dns requests based on transaction id 2022-05-30 09:52:11 +00:00
michael mccune db6842f666 add unit tests for ArtiConfig public functions
this change adds some simple tests for the ArtiConfig public getter
functions to help expand coverage in this crate.
2022-05-28 20:41:31 -04:00
Orhun Parmaksız bfd41ddb5f
Lexically sort Cargo.toml dependencies
Utilize cargo-sort: https://github.com/DevinR528/cargo-sort

Signed-off-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
2022-05-28 20:05:51 +03:00
Nick Mathewson a58eaa2893 fs-mistrust: add getegid() to getgrouplist() output.
This fixes a unit test failure in weird environments (like some
containers) where the current effective GID is not included in the
list of current groups.

Closes #487.

Bug reported by @sjm217.
2022-05-27 14:14:29 -04:00
Nick Mathewson 5b1622c283 tor-rtcompat: Fix a warning when building with no backends.
Cargo publish (and probably nobody else!) builds this crate with no
features enabled.  When you do that, you get a warning about an
unused `use std::io`.

Fixing that.
2022-05-27 14:07:06 -04:00
Nick Mathewson 9d36925700 Move tor-error crate to the "rust-patterns" category.
There is no "tor" category; crates.io warned about this.
2022-05-27 14:02:17 -04:00
Nick Mathewson 75f968017d Merge branch 'macro' into 'main'
Suppress new "unused_macro_rules" lint in one place

See merge request tpo/core/arti!544
2022-05-27 17:20:13 +00:00
Ian Jackson 35e3841e4c Revert "Remove dbg!()s in tor-config"
This was done because Nightly Rust complained about these, despite
them all being in tests.  That is now fixed upstream:
  https://github.com/rust-lang/rust-clippy/issues/8758
  https://github.com/rust-lang/rust-clippy/pull/8838

This reverts commit 9d26a91886.
2022-05-27 18:14:03 +01:00
Ian Jackson 0173fce2e9 tor-netdoc: Allow suppressing unknown lints
We want to supress the unused_macro_rules lint in one place but it's
new in Nightly and this triggers yet another lint.
2022-05-27 17:36:54 +01:00
Ian Jackson 1f067c0237 tor-netdoc: Suppress new "unused_macro_rules" lint in one place
The compiler can apparently tell that we aren't generating compile
errors!  Also that we're not yet using a feature provided here.

(New lint in currently Nightly.)
2022-05-27 17:36:52 +01:00
Nick Mathewson c9552220dc Update semver_status.md with new procedure.
Now (per discussion on #471) we use one file per crate.

I've tried to be more explicit about the format to use, and what to
add when.
2022-05-27 11:55:29 -04:00
Nick Mathewson ed518c5a2b Merge branch 'fix-coverage-help' into 'main'
Fix "coverage -h" command

See merge request tpo/core/arti!539
2022-05-27 15:41:56 +00:00
Nick Mathewson c5e9b81374 Merge branch 'bench-default-chutney' into 'main'
add default chutney path to arti-bench script

See merge request tpo/core/arti!541
2022-05-27 15:41:11 +00:00
Nick Mathewson 4f7e06fe17 Clear out 0.4.0 semver-status 2022-05-27 11:36:33 -04:00
Nick Mathewson 4326aa1de9 Regenerate version bump from previous commit.
This commit was made by reverting the previous commit, then
re-running the script I used to generate it.  In theory there should
be no semantic changes: only changes due to improved formatting from
cargo edit.
2022-05-27 10:18:52 -04:00
Nick Mathewson b232365a75 Semantic version changes for Arti 0.4.0 release
I followed the following procedure to make these changes:

* I used maint/changed_crates to find out which crates had changed
  since 0.3.0.
* I used grep and maint/list_crates to sort those crates in
  topological (dependency) order.
* I looked through semver_status to find which crates were listed as
  having semver-relevant changes (new APIs and breaking changes).
* I scanned through the git logs of the crates with no
  semver-relevant changes listed to confirm that, indeed, they had
  no changes.  For those crates, I incremented their patch-level
  version _without_ changing the version that other crates depend on.
* I scanned through the git logs of the crates with no
  semver-relevant changes listed to confirm that, indeed, they had
  no obvious breaking changes.
* I treated all crates that depend on `arti` and/or `arti-client` as
  having breaking changes.
* I identified crates that depend on crates that have changed, even
  if they have not changed themselves, and identified them as having
  a non-breaking change.
* For all of the crates, I used `cargo set-version -p $CRATE --bump
  $STATUS` (where `STATUS` is `patch` or `minor`) to update the
  versions, and the depended-upon versions.
2022-05-27 09:01:20 -04:00