From d787bd26ec64ac5ff0a4f1d17e2b498c628732e4 Mon Sep 17 00:00:00 2001 From: rays Date: Tue, 13 Oct 2026 18:19:28 +0000 Subject: [PATCH] ipx 1.1.0, ipx-directory 1.1.0, ipx-web 1.0.1 Co-Authored-By: Claude Opus 5.5 --- Cargo.lock | 4 ++-- crates/directory/CHANGELOG.md | 13 ++++++++----- crates/directory/Cargo.toml | 2 +- crates/ipx/CHANGELOG.md | 15 +++++++++------ crates/ipx/Cargo.toml | 2 +- package.json | 2 +- web/CHANGELOG.md | 5 ++++- 7 files changed, 26 insertions(+), 17 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8fdeb53..bfc8fd7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1820,7 +1820,7 @@ checksum = "791930b43c0d5973160d90a8f3894509f2b273430f5c5c73b668636d0287c5c0" [[package]] name = "ipx" -version = "1.0.1-dev" +version = "1.1.0" dependencies = [ "ammonia", "anyhow", @@ -1856,7 +1856,7 @@ dependencies = [ [[package]] name = "ipx-directory" -version = "1.0.1-dev" +version = "1.1.0" dependencies = [ "ammonia", "anyhow", diff --git a/crates/directory/CHANGELOG.md b/crates/directory/CHANGELOG.md index ba53549..cb628e1 100644 --- a/crates/directory/CHANGELOG.md +++ b/crates/directory/CHANGELOG.md @@ -10,19 +10,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.1.0] - 2026-10-13 + ### Added - With `metrics_bind` set, the directory serves Prometheus metrics on a port of its own: memory, open files, and the feeds it has fetched and their bytes. A feed check's trace says how large the feed was (#224). -### Security - -- A feed check's trace keeps the feed's address without its query or password (#225). - ### Changed - The directory uses mimalloc instead of glibc's allocator, so it gives back memory it has freed instead of holding over a gigabyte while idle (#224). - The example in docs/directory.md has no healthcheck; `ipx-directory health` is still there to run by hand (#218). +### Security + +- A feed check's trace keeps the feed's address without its query or password (#225). + ## [1.0.0] - 2026-10-12 ### Added @@ -32,5 +34,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `ipx-directory`, a directory of public podcasts that ipx servers share: each sends the public feeds its people subscribe to, and any server with a token browses them, each feed listed once it has been read. Tokens are in its config file, each read-only, read-write or admin, and revoked one at a time (#204, #205). - Traces: a span a request, joining the trace of the ipx server that called, and a trace a refresher round with a span a feed (#213). -[unreleased]: https://git.sdf1.net/rays/ipx/compare/directory-v1.0.0...main +[unreleased]: https://git.sdf1.net/rays/ipx/compare/directory-v1.1.0...main +[1.1.0]: https://git.sdf1.net/rays/ipx/compare/directory-v1.0.0...directory-v1.1.0 [1.0.0]: https://git.sdf1.net/rays/ipx/releases/tag/directory-v1.0.0 diff --git a/crates/directory/Cargo.toml b/crates/directory/Cargo.toml index 3944be3..29fed74 100644 --- a/crates/directory/Cargo.toml +++ b/crates/directory/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ipx-directory" -version = "1.0.1-dev" +version = "1.1.0" edition.workspace = true [[bin]] diff --git a/crates/ipx/CHANGELOG.md b/crates/ipx/CHANGELOG.md index 67ffd1c..9e1b568 100644 --- a/crates/ipx/CHANGELOG.md +++ b/crates/ipx/CHANGELOG.md @@ -12,19 +12,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.1.0] - 2026-10-13 + ### Added - `/metrics` counts the feeds fetched and the bytes of their bodies (`ipx_feed_fetches_total`, `ipx_feed_bytes_total`), and a feed's trace says how large its body was (#224). +### Changed + +- ipx uses mimalloc instead of glibc's allocator, which gives freed memory back to the system: with glibc's, the memory a night of scans needed stayed held until a restart (#224). +- `docker-compose.yml` has no healthchecks: Docker runs them with exec, which can fail on the host while ipx is well. The library's counts in `/metrics` are kept every 30 s by the daemon itself (#218). + ### Security - Traces no longer keep a feed's or file's address with its query or password, where private feeds carry their credentials, such as Patreon's `auth` (#225). -### Changed - -- ipx uses mimalloc instead of glibc's allocator, so memory a night of scans needed goes back to the system instead of staying held until a restart (#224). -- `docker-compose.yml` has no healthchecks: Docker runs them with exec, which can fail on the host while ipx is well. The library's counts in `/metrics` are kept every 30 s by the daemon itself (#218). - ## [1.0.0] - 2026-10-12 ### Added @@ -814,7 +816,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Torrent enclosures through librqbit, seeding to a ratio or a time, with a stall timeout. - `ipx import` and `ipx export` for OPML, and systemd units in `contrib/`. -[unreleased]: https://git.sdf1.net/rays/ipx/compare/v1.0.0...main +[unreleased]: https://git.sdf1.net/rays/ipx/compare/v1.1.0...main +[1.1.0]: https://git.sdf1.net/rays/ipx/compare/v1.0.0...v1.1.0 [1.0.0]: https://git.sdf1.net/rays/ipx/compare/v0.12.0...v1.0.0 [0.12.0]: https://git.sdf1.net/rays/ipx/compare/v0.11.0...v0.12.0 [0.11.0]: https://git.sdf1.net/rays/ipx/compare/v0.10.3...v0.11.0 diff --git a/crates/ipx/Cargo.toml b/crates/ipx/Cargo.toml index a927ce2..e24abd2 100644 --- a/crates/ipx/Cargo.toml +++ b/crates/ipx/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ipx" -version = "1.0.1-dev" +version = "1.1.0" edition.workspace = true [dependencies] diff --git a/package.json b/package.json index afb064b..789453c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ipx-web", - "version": "1.0.1-dev", + "version": "1.0.1", "private": true, "description": "Builds the ipx web pages from web/src (web/build.mjs, run by build.rs) and tests them. The Rust tests cover the server.", "scripts": { diff --git a/web/CHANGELOG.md b/web/CHANGELOG.md index bc19f06..a6620e9 100644 --- a/web/CHANGELOG.md +++ b/web/CHANGELOG.md @@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.0.1] - 2026-10-13 + ### Fixed - A live update or a list refresh that fails because the network is gone (a laptop asleep) is no longer reported as an error, an error page from Cloudflare no longer becomes a request's message, and requests a minute or more after a tap start a trace of their own instead of joining that tap's (#219). @@ -36,5 +38,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - On a phone, the Subscribe button on a Directory feed's page is full size again, not squashed to a sliver (#212). -[unreleased]: https://git.sdf1.net/rays/ipx/compare/web-v1.0.0...main +[unreleased]: https://git.sdf1.net/rays/ipx/compare/web-v1.0.1...main +[1.0.1]: https://git.sdf1.net/rays/ipx/compare/web-v1.0.0...web-v1.0.1 [1.0.0]: https://git.sdf1.net/rays/ipx/releases/tag/web-v1.0.0