summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md239
-rwxr-xr-xmaint/thanks4
2 files changed, 243 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fdcde9d85..511bfb78e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,245 @@
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.1.13 — 5 February 2024
+
+Arti 1.1.13 continues work on support for running onion services.
+You can now launch an onion service and expect it to run.
+
+We have fixed a number of bugs. The user experience is still not
+great, and the onion-service-service feature is still experimental.
+We have reorganised the on-disk state and key storage, to make it more
+sensible; we hope (but don't promise!) it's now the final layout.
+Don't rely on this onion service implementation for security yet;
+there are a number of [missing security features]
+we will need to develop before we can recommend them
+for actual use.
+
+See `doc/OnionService.md` for instructions and caveats.
+
+### Breaking changes in lower-level crates
+
+- [`tor-hsclient`]\: Replaced `HsClientKeyRole`,
+ `HsClientSecretKeySpecifier` with `HsClientDescEncKeypairSpecifier`.
+ Renamed `HsClientSpecifier` to `HsClientNickname`.
+ ([!1864], [!1931])
+- [`tor-hscrypto`]\: `AesOpeKey::encrypt` now takes a
+ `SrvPeriodOffset`; Replaced `TimePeriodOffset` with
+ `SrvPeriodOffset`; Removed `TimePeriod::offset_within_period`.
+ ([!1904], [#1166])
+- [`tor-netdir`]\: `hs_dirs_download` parameters changed;
+ `hs_intro_*_lifetime` parameters renamed.
+ ([!1903], [!1904], [#1254])
+
+### Onion service development
+
+- Complete overhaul of the way the hidden service code stores non-key
+ persistent state. Pathnames have changed as a result.
+ ([!1853], [#1183], [!1941])
+- Many improvements to keystore, key and `KeySpecifier` handling,
+ including incompatible changes to on-disk key paths.
+ ([!1864], [!1863], [!1883], [#1260], [!1949], [#1074], [!1948])
+- Fix "service fails after approx 12 hours" bug.
+ ([#1242], [!1901])
+- Fix time period processing bugs including `HSS: "internal error"
+ "current wallclock time not within TP?!"`.
+ ([#1155], [#1166], [#1254], [!1903], [!1904], [!1914])
+- Correctly rate-limit descriptor publication.
+ ([!1951])
+- Fixes to services shutdown.
+ ([!1875], [!1895], [!1897], [#1236], [!1899], [!1917], [!1921])
+- Improve error and corner case handling in descriptor publisher.
+ ([!1861])
+- Work on expiring keys: we expire descriptor keys now (although we
+ don't actually properly delete all keys when we need to, yet).
+ ([!1909])
+- Only choose Stable relays for introduction points.
+ ([!1884], [#1240], [#1211])
+- Better handling of introduction point establishment failures.
+ ([!1889], [!1915])
+- Better handling of anomalous situations (including excessive
+ requests) on introduction circuits.
+ ([#1188], [#1189], [!1892], [!1916])
+- Tolerate `INTRO_ESTABLISHED` messages with (unknown) extensions.
+ ([!1898])
+- Correct and improve various timing and tuning parameters.
+ ([!1911], [!1924])
+- Improve status reporting from hidden services.
+ ([!1902])
+- Public API of `tor-hsservice` crate overhauled.
+ ([#1227], [#1220], [!1887])
+- Mark lower-level hs-service features non-experimental.
+ ([!1908])
+- Defend against partial writes of introduction point replay log
+ entries.
+ ([!1920])
+- Corrections to error handling, including to handling of introduction
+ point failures, and attempts to launch the same service
+ concurrently.
+ ([!1906], [#1237], [#1225], [#1255])
+- Detect and reject configurations with onion services, when
+ onion-service-server support has been compiled out.
+ ([!1885], [#1184])
+- Temporarily disable parsing of AF_UNIX socket addresses (which
+ aren't implemented right now anyway).
+ ([!1886])
+- Rate limit one log message, downgrade one, and remove another.
+ ([!1871], [!1951])
+- Add higher-level documentation to tor-hsservice (and fix a broken
+ docs link).
+ ([!1918], [!1945])
+- Hide the `OnionServiceState` type.
+ ([!1946], [#1261])
+- Many internal cleanups including much triage of TODO comments in the code.
+ ([!1859], [!1862], [!1861], [!1868], [!1866], [!1863], [!1870], [!1874])
+ ([!1872], [!1869], [!1876] !1867 [!1873], [!1877], [!1878], [!1875])
+ ([!1879], [!1882], [!1881], [!1880], [!1894], [!1888], [!1887], [!1896])
+ ([!1864], [!1951])
+
+### Other major new features in our Rust APIs
+
+- New `fslock-guard` crate for on-disk lockfiles which can be deleted,
+ and which have a Rust API that returns a guard object.
+ [fslock!15](https://github.com/brunoczim/fslock/pull/15)
+ !1900 !1910
+- `tor-persist` has a `Slug` type which is used for nicknames, key
+ paths, etc., unifying the rules used for different kinds of name.
+ ([!1912], [#1092], [#1193], [!1926], [!1929], [!1922], [!1933], [#1092])
+ ([!1931], [!1934])
+- `tor-persist` has `StateDirectory` for handling persistent state
+ relating to particular instances of a facility (used for hidden
+ serivces).
+ ([!1853], [#1205], [!1913], [#1163], [!1935])
+
+### Documentation and examples
+
+- New examples using `hyper v1`.
+ ([!1845])
+- Fix a broken link.
+ ([!1938])
+
+### Testing
+
+- New `test-temp-dir` crate for convenient handling of temporary files
+ in tests.
+ ([!1925])
+
+### Cleanups, minor features, and bugfixes
+
+- `fs-mistrust`: Expose `CheckedDir::verifier`
+ and provide `CheckedDir::make_secure_dir`.
+ ([!1927], [!1928])
+- Instructions for building `arti-extra` in `tests/shadow/README.md`.
+ ([!1891])
+
+### Acknowledgments
+
+Thanks to everybody who's contributed to this release, including
+Alexander Færøy, Jim Newsome, and ramidzkh.
+
+Also, our deep thanks to [Zcash Community Grants] and our [other sponsors]
+for funding the development of Arti!
+
+
+[!1845]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1845
+[!1853]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1853
+[!1859]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1859
+[!1861]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1861
+[!1862]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1862
+[!1863]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1863
+[!1864]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1864
+[!1866]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1866
+[!1868]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1868
+[!1869]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1869
+[!1870]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1870
+[!1871]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1871
+[!1872]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1872
+[!1873]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1873
+[!1874]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1874
+[!1875]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1875
+[!1876]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1876
+[!1877]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1877
+[!1878]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1878
+[!1879]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1879
+[!1880]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1880
+[!1881]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1881
+[!1882]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1882
+[!1883]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1883
+[!1884]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1884
+[!1885]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1885
+[!1886]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1886
+[!1887]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1887
+[!1888]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1888
+[!1889]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1889
+[!1891]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1891
+[!1892]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1892
+[!1894]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1894
+[!1895]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1895
+[!1896]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1896
+[!1897]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1897
+[!1898]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1898
+[!1899]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1899
+[!1901]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1901
+[!1902]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1902
+[!1903]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1903
+[!1904]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1904
+[!1906]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1906
+[!1908]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1908
+[!1909]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1909
+[!1911]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1911
+[!1912]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1912
+[!1913]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1913
+[!1914]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1914
+[!1915]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1915
+[!1916]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1916
+[!1917]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1917
+[!1918]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1918
+[!1920]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1920
+[!1921]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1921
+[!1922]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1922
+[!1924]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1924
+[!1925]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1925
+[!1926]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1926
+[!1927]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1927
+[!1928]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1928
+[!1929]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1929
+[!1931]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1931
+[!1933]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1933
+[!1934]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1934
+[!1935]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1935
+[!1938]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1938
+[!1941]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1941
+[!1945]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1945
+[!1946]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1946
+[!1948]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1948
+[!1949]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1949
+[!1951]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1951
+[#1074]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1074
+[#1092]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1092
+[#1155]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1155
+[#1163]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1163
+[#1166]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1166
+[#1183]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1183
+[#1184]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1184
+[#1188]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1188
+[#1189]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1189
+[#1193]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1193
+[#1205]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1205
+[#1211]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1211
+[#1220]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1220
+[#1225]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1225
+[#1227]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1227
+[#1236]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1236
+[#1237]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1237
+[#1240]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1240
+[#1242]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1242
+[#1254]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1254
+[#1255]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1255
+[#1260]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1260
+[#1261]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1261
+[`tor-hscrypto`]: https://tpo.pages.torproject.net/core/doc/rust/tor_hscrypto/index.html
+[`tor-hsclient`]: https://tpo.pages.torproject.net/core/doc/rust/tor_hsclient/index.html
+
# Arti 1.1.12 — 9 January 2024
Arti 1.1.12 continues work on support for running onion services.
diff --git a/maint/thanks b/maint/thanks
index 7e87d6a96..c34d4f615 100755
--- a/maint/thanks
+++ b/maint/thanks
@@ -1,6 +1,10 @@
#!/usr/bin/env bash
set -euo pipefail
+# maint/exclude_contributors.txt is currently sorted in a locale-specific way
+# we should probably change this to sort by code unit (LC_COLLATE=C.UTF-8)
+export LC_COLLATE=en_US.UTF-8
+
if [ -z "${1-}" ]; then
echo "Usage: $0 [revision]"
echo "Script will print thanks for all contributors since [revision]."