summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md277
1 files changed, 277 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2e41913e2..698dc67da 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,283 @@
This file describes changes in Arti through the current release. Once Arti
is more mature, we may switch to using a separate changelog for each crate.
+# Arti 1.2.7 — 3 September 2024
+
+Arti 1.2.7 continues development on onion service client authorization,
+the RPC subsystem, and relay infrastructure.
+
+### Breaking changes in lower-level crates
+- In [`tor-hsservice`],
+ `OnionServiceProxyConfigBuilder` no longer derives `Eq` and `PartialEq`,
+ and `DescEncryptionConfig`, `DescEncryptionConfig`,
+ `AuthorizedClientConfig,` and `AuthorizedClientParseError` are removed.
+ ([!2266])
+- In [`tor-ptmgr`], `PtClientMethod` is now exported from the top-level.
+ ([5774dd456265ef4cb8771342538a07ba76e5a5d9])
+
+### RPC development
+- Expose the OS errno of the FFI error types that have one. ([!2311])
+- Fix typos in an FFI comment. ([!2310])
+- Always re-encode requests and responses, and preserve unrecognized struct fields.
+ ([#1491], [!2312])
+- Expose the object ID for the session object. ([!2318])
+- Use `JsonValue` to re-encode responses and requests.
+ ([#1512], [#1511], [!2315])
+- Add support for request handles in our FFI code. ([!2317])
+- Add an unstable RPC method to list every RPC method. ([!2332])
+- Build [`arti-rpc-client-core`] as a C dynamic library. ([!2331])
+- Use more sophisticated handling for `ConnectionError`s in `arti-rpcserver`.
+ ([#1517], [!2335])
+- New `slotmap-careful` crate to use when we mustn't re-use keys. ([!2298])
+- Rename various identifiers in our FFI code. ([!2344])
+- Use the new `slotmap-careful` instead of `generational-arena` in
+ `arti-rpcserver`. ([#1282], [!2343])
+- Implement RPC method delegation support. ([#1523], [!2342])
+- Allow simultaneous calls to `arti_rpc_handle_wait()`.
+ ([#1532], [!2360])
+- Add experimental method to list SOCKS proxy addresses. ([#1523], [!2359])
+
+### Relay development
+- Add initial support for relay configuration. ([#1534], [!2352])
+
+### Internal cleanup and refactoring
+- Major refactoring to the `tor-proto` circuit reactor code,
+ which simplifies the implementation and will enable us to support
+ opportunistic packing for [proposal 340].
+ Introduce `StreamPollSet` for polling streams in priority order.
+ ([!2285], [#1513], [!2319], [!2334])
+- Refactoring in our key management code to prevent accidental misuse
+ of relative key paths. ([#1494], [!2291])
+- Refactor `KeyedFuturesUnordered` so that the underlying futures
+ are accessible. ([!2321])
+- Allow access to the inner streams of `StreamPollSet`,
+ refactor `StreamMap` ([#1421], [!2326], [!2333]).
+- Make `GuardMgr` mandatory throughout our circuit management code.
+ ([#1465], [!2339], [!2347])
+- Encapsulate flow-control into a separate object,
+ abstracting away the difference between window-based (legacy) flow control and
+ xon-based ([proposal 324]) flow control. ([!2340], [!2358])
+- Introduce a `PeekableStream` trait to get rid of redundant buffering.
+ ([!2345])
+
+### Onion service development
+- Implement hidden service restricted discovery mode (previously known as
+ "client authorization"). ([#1292], [!2266], [!2336], [!2316])
+- Add support for live-reloading the restricted discovery configuration.
+ ([#1505], [!2329], [!2353], [!2369])
+- Provide an MPSC queue with memory quota tracking. ([#351], [!2292])
+- Make arrangements in `tor-memquota` for memory tracking to be optional,
+ and gate `MemoryQuotaTracker::new` behind the `memquota` feature.
+ ([!2351])
+
+### Minor features
+- Stop requiring the TRANSPORT key in pluggable transport STATUS messages.
+ ([#1488], [!2307])
+- In [`fs-mistrust`], add a `CheckedDir::metadata()` function
+ for retrieving file metadata.
+ ([72c3a1a661284844806b34e9ca5e81a43b8d0913], [!2324])
+- In [`tor-ptmgr`], make managed pluggable transports optional.
+ ([#1334], [!2354])
+- Add an `InertTorClient` for accessing client state. ([#1496], [!2370],
+ [!2314])
+- Move `tor_async_utils::oneshot` into a new [`oneshot-fused-workaround`] crate.
+ ([!2371], [!2383])
+
+### Testing
+- Make the `hsc` subcommand documentation serve as a test case. ([!2304])
+- In the expected output of the CLI tests,
+ match any number of lines in the `-c` help.
+ ([#1509], [!2313])
+- Fix broken reference to `apt-install` script in the Shadow integration tests.
+ ([!2309])
+- Add a Shadow integration test for restricted discovery mode. ([#1292],
+ [!2272])
+- Don't explicitly set `storage.keystore.enabled` in the Shadow CI tests.
+ ([222b0eae48ae88d1a64cf5f0c11e662bf61dda4d])
+- Test `cbindgen` correctness in CI. ([#1502], [!2320], [!2322], [!2330])
+- Add `LogState` tests in `tor-log-ratelim`. ([!2349])
+- Fix `arti_socket_closed` RPC test, which was previously flakey on OSX.
+ ([#1510], [!2348])
+- Add an arti obfs4 managed pluggable transport client and a tor obfs4
+ server to the Shadow CI tests ([#1538], [!2355]).
+- Temporarily disable a flaky configuration watcher test. ([!2364])
+- Add circuit reactor test for stream handling fairness. ([!2365])
+- Rewrite the `hsc` tests using `InertTorClient`.
+ ([#1496], [1d3e59f2e9572a9710de2c2a9c925c5c38a6874c])
+- Set the `COLUMNS` env var in the CLI tests.
+ ([#1574], [f1779cfbb3e27b04ba3cca9206170f1e1ea904db])
+
+### Documentation
+- Remove obsolete documentation from [`tor-proto`]. ([!2366])
+- Discourage use of `tor_rtmock_test_with_*` macros. ([!2372])
+
+### Infrastructure
+- Add a few more Tor employees to exclude from our acknowledgments. ([!2306])
+- Remove the no-longer-necessary `--cfg docsrs` flag from our rustdoc invocation.
+ ([!2308])
+- Fix handling of items ending in `;` in `check_doc_features`
+ maintenance script. ([!2316])
+- Use the `via-cargo-install-in-ci` maintenance script to cache `grcov`
+ in the `coverage-aggregated` job. ([!2325])
+- Add initial support for building an Arti deb package. ([!2323], [!2367])
+- Add script for testing without any features enabled.
+ ([7a9bf49870533cc052b12680336f067f77d87b34])
+- Run tests of every crate, with all features disabled. ([!2350])
+- Explicitly specify the deployment target of macOS to 10.7
+ to fix the failing `build-repro-macos` job.
+ ([#1394], [#1507], [!2377], [!2346])
+- Rename "Sponsor 101" to "Project 101". ([!2379])
+
+### Cleanups, minor features, and bugfixes
+- Make `arti hss onion-name` return a non-zero status if the service doesn't
+ exist. ([!2305])
+- Use `std::backtrace` instead of the [`backtrace`] crate. ([!2301])
+- Add missing `docsrs` `cfg_attr` to fix a `cargo doc` warning. ([!2337])
+- Resolve `unreachable_patterns` warnings from nightly. ([!2338])
+- Make `blind_keypair` build without the `hsv3-client` feature.
+ ([#1504], [!2341])
+- Move `Qty` to [`tor-basic-utils`] as `ByteQty` and significantly improve it.
+ ([!2363])
+- Move `stream_peek` to [`tor-async-utils`]. ([!2362], [!2357])
+- Various typo fixes in comments and messages. ([!2380])
+
+### Acknowledgments
+
+Thanks to everybody who's contributed to this release, including Alexander
+Hansen Færøy, ambiso, Dimitris Apostolou, kn0sys, Kunal Mehta, NoisyCoil, opara,
+Robin Leander Schröder, and Steven Engler.
+Also, our welcome to Steven Engler as he joins the team!
+
+Also, our deep thanks to
+[Zcash Community Grants],
+the [Bureau of Democracy, Human Rights and Labor],
+and our [other sponsors]
+for funding the development of Arti!
+
+[!2266]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2266
+[!2272]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2272
+[!2285]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2285
+[!2291]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2291
+[!2292]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2292
+[!2298]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2298
+[!2301]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2301
+[!2304]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2304
+[!2305]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2305
+[!2306]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2306
+[!2307]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2307
+[!2308]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2308
+[!2309]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2309
+[!2310]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2310
+[!2311]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2311
+[!2312]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2312
+[!2313]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2313
+[!2314]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2314
+[!2315]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2315
+[!2316]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2316
+[!2317]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2317
+[!2318]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2318
+[!2319]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2319
+[!2320]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2320
+[!2321]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2321
+[!2322]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2322
+[!2323]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2323
+[!2324]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2324
+[!2325]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2325
+[!2326]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2326
+[!2329]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2329
+[!2330]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2330
+[!2331]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2331
+[!2332]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2332
+[!2333]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2333
+[!2334]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2334
+[!2335]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2335
+[!2336]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2336
+[!2337]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2337
+[!2338]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2338
+[!2339]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2339
+[!2340]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2340
+[!2341]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2341
+[!2342]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2342
+[!2343]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2343
+[!2344]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2344
+[!2345]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2345
+[!2346]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2346
+[!2347]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2347
+[!2348]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2348
+[!2349]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2349
+[!2350]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2350
+[!2351]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2351
+[!2352]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2352
+[!2353]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2353
+[!2354]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2354
+[!2355]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2355
+[!2357]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2357
+[!2358]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2358
+[!2359]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2359
+[!2360]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2360
+[!2362]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2362
+[!2363]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2363
+[!2364]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2364
+[!2365]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2365
+[!2366]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2366
+[!2367]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2367
+[!2369]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2369
+[!2370]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2370
+[!2371]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2371
+[!2372]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2372
+[!2377]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2377
+[!2379]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2379
+[!2380]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2380
+[!2383]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2383
+[#1282]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1282
+[#1292]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1292
+[#1334]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1334
+[#1394]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1394
+[#1421]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1421
+[#1465]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1465
+[#1488]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1488
+[#1491]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1491
+[#1494]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1494
+[#1496]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1496
+[#1502]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1502
+[#1504]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1504
+[#1505]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1505
+[#1507]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1507
+[#1509]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1509
+[#1510]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1510
+[#1511]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1511
+[#1512]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1512
+[#1513]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1513
+[#1517]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1517
+[#1523]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1523
+[#1532]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1532
+[#1534]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1534
+[#1538]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1538
+[#1574]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1574
+[#351]: https://gitlab.torproject.org/tpo/core/arti/-/issues/351
+[1d3e59f2e9572a9710de2c2a9c925c5c38a6874c]: https://gitlab.torproject.org/tpo/core/arti/-/commit/1d3e59f2e9572a9710de2c2a9c925c5c38a6874c
+[222b0eae48ae88d1a64cf5f0c11e662bf61dda4d]: https://gitlab.torproject.org/tpo/core/arti/-/commit/222b0eae48ae88d1a64cf5f0c11e662bf61dda4d
+[5774dd456265ef4cb8771342538a07ba76e5a5d9]: https://gitlab.torproject.org/tpo/core/arti/-/commit/5774dd456265ef4cb8771342538a07ba76e5a5d9
+[72c3a1a661284844806b34e9ca5e81a43b8d0913]: https://gitlab.torproject.org/tpo/core/arti/-/commit/72c3a1a661284844806b34e9ca5e81a43b8d0913
+[7a9bf49870533cc052b12680336f067f77d87b34]: https://gitlab.torproject.org/tpo/core/arti/-/commit/7a9bf49870533cc052b12680336f067f77d87b34
+[Bureau of Democracy, Human Rights and Labor]: https://www.state.gov/bureaus-offices/under-secretary-for-civilian-security-democracy-and-human-rights/bureau-of-democracy-human-rights-and-labor/
+[Zcash Community Grants]: https://zcashcommunitygrants.org/
+[`arti-rpc-client-core`]: https://tpo.pages.torproject.net/core/doc/rust/arti_rpc_client_core/index.html
+[`backtrace`]: https://docs.rs/backtrace/latest/backtrace/
+[`fs-mistrust`]: https://tpo.pages.torproject.net/core/doc/rust/fs_mistrust/index.html
+[`oneshot-fused-workaround`]: https://tpo.pages.torproject.net/core/doc/rust/oneshot_fused_workaround/index.html
+[`tor-async-utils`]: https://tpo.pages.torproject.net/core/doc/rust/tor_async_utils/index.html
+[`tor-basic-utils`]: https://tpo.pages.torproject.net/core/doc/rust/tor_basic_utils/index.html
+[`tor-hsservice`]: https://tpo.pages.torproject.net/core/doc/rust/tor_hsservice/index.html
+[`tor-proto`]: https://tpo.pages.torproject.net/core/doc/rust/tor_proto/index.html
+[`tor-ptmgr`]: https://tpo.pages.torproject.net/core/doc/rust/tor_ptmgr/index.html
+[f1779cfbb3e27b04ba3cca9206170f1e1ea904db]: https://gitlab.torproject.org/tpo/core/arti/-/commit/f1779cfbb3e27b04ba3cca9206170f1e1ea904db
+[other sponsors]: https://www.torproject.org/about/sponsors/
+[proposal 324]: https://spec.torproject.org/proposals/324-rtt-congestion-control.html
+[proposal 340]: https://spec.torproject.org/proposals/340-packed-and-fragmented.html
+
+
+
# Arti 1.2.6 — 1 August 2024
Arti 1.2.6 continues development on onion service client authorization,