summaryrefslogtreecommitdiff
path: root/crates/arti
Commit message (Collapse)AuthorAgeFilesLines
* Increment patchlevel versions of crates with minor changesNick Mathewson2023-08-011-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These crates are at version 0.x.y, so we don't need to distinguish new-feature changes from other changes: ``` tor-basic-utils fs-mistrust tor-error tor-geoip tor-checkable tor-linkspec tor-netdoc tor-netdir tor-persist tor-ptmgr tor-hsservice ``` This crate has a breaking change, but only when the semver-breaking feature `experimental-api` is enabled: ``` tor-config ``` This crate is at version 1.x.y, but has no new public APIs, and therefore does not need a minor version bump: ``` arti ```
* Update minor versions on crates that have had breaking changesNick Mathewson2023-08-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These crates had first-order breaking changes: ``` retry-error tor-keymgr tor-proto tor-hsclient tor-rtmock ``` Additionally, these broke because they re-exposed RetryError: ``` tor-circmgr ``` Additionally, these broke because they may re-expose something from tor-proto: ``` arti-client tor-chanmgr tor-dirclient tor-dirmgr tor-guardmgr ``` Additionally, these broke for other fiddly reasons: `tor-ptmgr` implements traits from tor-chanmgr, which has a breaking change above. `arti-hyper` exposes types from arti-client in its API.
* Fix typosDimitris Apostolou2023-07-222-10/+10
|
* Bump requirement to rlimit 0.10.1Nick Mathewson2023-07-201-1/+1
| | | | | | There was a bug in 0.10.0 that broke MacOS. Part of #963.
* Upgrade to latest rlimit.Nick Mathewson2023-07-171-1/+1
|
* arti cfg tests: Add keystore to example config.Gabriela Moldovan2023-07-132-14/+22
| | | | Closes #939
* arti config: Remove extraneous whitespace.Gabriela Moldovan2023-07-131-5/+5
|
* arti-client: Use the config struct from tor-keymgr.Gabriela Moldovan2023-07-131-1/+1
|
* Run maint/add_warning to actually apply new lint allowsIan Jackson2023-07-104-0/+4
|
* Update documentation regarding the `onion-service-client` featureKunal Mehta2023-07-071-2/+3
| | | | | It is no longer experimental, but still not rated for security-sensitive usage per <https://blog.torproject.org/arti_116_released/>.
* Merge branch 'feat' into 'main'Nick Mathewson2023-07-071-1/+10
|\ | | | | | | | | | | | | arti: Build with HS client support by default Closes #948 See merge request tpo/core/arti!1382
| * arti: Build with HS client support by defaultIan Jackson2023-07-071-0/+1
| | | | | | | | Fixes #948
| * arti Cargo.tomL: wrap default features listIan Jackson2023-07-071-1/+9
| |
* | Throughout: Use *_report!() macros for reporting Errors.Nick Mathewson2023-07-076-17/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I identified the cases to replace by searching for the string `.report()`. There are a few that I didn't change: * A couple of cases that used anyhow::Error, * One case that reported two Errors. * Two cases in `tor_hsclient::err` that just did `error!("Bug: {}")`. I have also not audited the cases in `tor-hsclient` where we're using `tor_error::Report` manually. Nonetheless, closes #949.
* | Run add_warning to remove `missing_panics_doc` deny.Nick Mathewson2023-07-062-2/+0
|/ | | | Closes #950.
* Merge branch 'log_precision' into 'main'Nick Mathewson2023-07-065-4/+381
|\ | | | | | | | | | | | | arti: Add a `logging.time_granularity` option with 1s default. Closes #551 See merge request tpo/core/arti!1376
| * arti: comments about catch_unwindNick Mathewson2023-07-061-0/+9
| |
| * time_granularity: Make sure formatter can't panicNick Mathewson2023-07-061-17/+49
| | | | | | | | | | | | I was unable to assure myself that tracing_subscriber could withstand a panicking Timer, so instead I'm trying to make sure our own LogTimer can't panic.
| * arti: Add a `logging.time_granularity` option with 1s default.Nick Mathewson2023-07-065-5/+342
| | | | | | | | | | | | | | This lets us provide less information in our logs: in particular, it lets us avoid logging with microsecond precision. Closes #551.
* | arti: Note possibility for future use of other tracing panic providerNick Mathewson2023-07-061-0/+5
| |
* | arti: On panic, avoid allocation even more.Nick Mathewson2023-07-061-7/+5
| | | | | | | | | | | | | | | | | | | | The original version of our panic handler would allocate a string for the panic `Location`. But if we're panicking we'd like to keep allocations to a minimum: so instead format the `Location` conditionally. This also drops a useless `std::borrow::Cow`. (The possibility of a "Don't have a `Cow`" commit message was considered and rejected.)
* | Add TODO comments about possibly migrating away from the backtrace crate.Nick Mathewson2023-07-051-1/+2
| |
* | arti: Install a panic hook that sends messages to `tracing`Nick Mathewson2023-07-052-1/+34
|/ | | | | | | (Also leaves installed the default handler that sends messages to stderr.) Closes #921.
* Bump patchlevel versions on crates with smaller changesNick Mathewson2023-06-301-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Done with the commands below. The following crates have had various changes, and should get a patchlevel bump. Since they are pre-1.0, we do not need to distinguish new APIs from other changes. ``` cargo set-version --bump patch -p arti-client cargo set-version --bump patch -p safelog cargo set-version --bump patch -p tor-bytes cargo set-version --bump patch -p tor-cert cargo set-version --bump patch -p tor-circmgr cargo set-version --bump patch -p tor-config cargo set-version --bump patch -p tor-consdiff cargo set-version --bump patch -p tor-dirclient cargo set-version --bump patch -p tor-dirmgr cargo set-version --bump patch -p tor-error cargo set-version --bump patch -p tor-hsservice cargo set-version --bump patch -p tor-linkspec cargo set-version --bump patch -p tor-llcrypto cargo set-version --bump patch -p tor-netdir cargo set-version --bump patch -p tor-netdoc cargo set-version --bump patch -p tor-proto cargo set-version --bump patch -p tor-rpcbase cargo set-version --bump patch -p tor-socksproto ``` This crate has new features, but no new non-experimental Rust APIs. So even though it is post-1.0, it gets a patchlevel bump. ``` cargo set-version --bump patch -p arti ```
* Bump minor versions on crates with breaking changesNick Mathewson2023-06-301-1/+1
| | | | | | | | | | Done with: ``` cargo set-version --bump minor -p tor-hsclient cargo set-version --bump minor -p arti-rpcserver cargo set-version --bump minor -p tor-hscrypto cargo set-version --bump minor -p tor-cell ```
* Run "fixup-features".Nick Mathewson2023-06-291-1/+1
|
* Merge branch 'keymgr-config' into 'main'gabi-2502023-06-291-0/+22
|\ | | | | | | | | arti-client: Add keystore_dir to StorageConfig. See merge request tpo/core/arti!1312
| * arti cfg tests: Add declare_exceptions for storage.keystore_dir.Gabriela Moldovan2023-06-291-1/+22
| | | | | | | | | | This moves `storage.keystore_dir` to a separate `declare_exceptions` block and explains why we have this exception.
| * example-config: Temporarily remove keystore_dir example.Gabriela Moldovan2023-06-292-17/+1
| | | | | | | | | | | | Let's remove this until we figure out how the config should behave when the `keymgr` feature is disabled (should it accept or reject `keystore_dir = true`?)
| * arti-client: Add keystore_dir to StorageConfig.Gabriela Moldovan2023-06-292-0/+17
| |
* | Merge branch 'stabilize-hs-client' into 'main'Nick Mathewson2023-06-291-2/+3
|\ \ | | | | | | | | | | | | | | | | | | Mark all {hs,onion-serivce}-client features as non-experimental. Closes #896 See merge request tpo/core/arti!1347
| * | Mark all {hs,onion-serivce}-client features as non-experimental.Nick Mathewson2023-06-291-2/+3
| |/
* / Turn off HS client connections by defaultIan Jackson2023-06-291-1/+10
|/ | | | As per IRC discussion, re lack of Vanguards.
* arti cfg tests: Suppress an undesriable clippy lintIan Jackson2023-06-281-0/+1
|
* arti cfg tests: declare_exceptions: Annotate the types for clarity (fmt)Ian Jackson2023-06-281-6/+4
|
* arti cfg tests: declare_exceptions: Annotate the types for clarityIan Jackson2023-06-281-1/+6
|
* arti cfg tests: Point the reader to the types used in declarationsIan Jackson2023-06-281-0/+12
|
* arti cfg tests: Move InCode into declare_config_exampleIan Jackson2023-06-281-19/+19
| | | | It's used for declarations only, and they should all be here.
* arti cfg tests: Make declare_exception take distinguished old/new typesIan Jackson2023-06-281-15/+27
| | | | | | As per discussion in https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1320#note_2916689 and IRC followup.
* HS configuration: Add retry parameters to configurationIan Jackson2023-06-282-0/+8
| | | | | | | I think these should go in `[circuit_timing]`. That section already has some retry parameters, so is not strictly *timing*. This is not honoured yet.
* HS configuration: Add and honour `allow_onion_addrs` in configurationIan Jackson2023-06-282-0/+14
| | | | | | | We put this in `[address_filter]`. The interaction with the corresponding stream preference is a bit complicated. We must turn the stream pref into a `BoolOrAuto`.
* art cfg tests: Fix garbled doc wordinggabi-2502023-06-281-2/+2
|
* arti cfg tests: Fix doc commentgabi-2502023-06-281-1/+1
|
* arti cfg tests: Overhaul exception handling (fmt)Ian Jackson2023-06-281-36/+32
|
* arti cfg tests: Overhaul exception handlingIan Jackson2023-06-282-92/+325
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was super confusing and fragile. Amongst the problems: * Information about exceptional config keys was spread across a number of places, manipulated in ad-hoc ways (conditional Vec appends, etc). * As a consequence, each exceptional table has confusing and unclear semantics. * It doesn't deal well with the way that cargo sometimes enables features for dependency crates even if arti itself wouldn't demand them; this can lead to sub-crates supporting config keys when the tests in arti don't expect them to, causing spurious test failures. Fix this: * Introduce a new, systematic, way of writing information about configuration keys that need some kind of special handling. * Use this new approach in *both* sets of "thorough" config tests. * Be more relaxed about deprecated keys. We don't want to tightly couple this to absence in the supported file, I think. * Understand more clearly the concept of keys of which we don't know, in the current build config, whether the code is expected to accept them. I have tested this locally with: for p in '-p arti' '--workspace'; do for f in '--no-default-features --features=tokio,native-tls' '--all-features' ''; do nailing-cargo test $p $f; done; done
* arti cfg tests: Remove a comment relating to work already doneIan Jackson2023-06-281-4/+0
| | | | | | We *do* have a thing that works like this. It's fragile and confusing and that's what I'm about to fix.
* arti cfg tests: Code motionIan Jackson2023-06-281-206/+214
| | | | | Bring the exciting tests together, and move some more normal tests out of the middle.
* Mark a builder as non-exhaustiveIan Jackson2023-06-281-0/+1
| | | | | | | If all the fields vanish, this generates a warning with cargo clippy --locked --offline --workspace --all-targets Fix that.
* Upgrade to itertools 0.11.0Nick Mathewson2023-06-261-2/+2
| | | | The breaking changes here do not seem to affect us.
* Merge branch 'stabilize-ll-crates' into 'main'Nick Mathewson2023-06-231-1/+1
|\ | | | | | | | | Remove final "experimental" status from tor-hscrypto and tor-error. See merge request tpo/core/arti!1291