Skip to content

Release RustPost v1.0.0 - #40

Merged
csd113 merged 21 commits into
mainfrom
v1.0.0-rc.1
Sep 29, 2026
Merged

csd113 merged 21 commits into
mainfrom
v1.0.0-rc.1

Conversation

@csd113

@csd113 csd113 commented Sep 29, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Complete the 1.0.0 account lifecycle, protected-account, and instance-control features.
  • Ship SQLite schema version 4 with migrations from compatible pre-release databases.
  • Upgrade the pinned Arti/Tor crate family to 0.46.0 while retaining the Rust 1.91 baseline.
  • Consolidate the first-release changelog and update the README installation and configuration guidance.

Local validation

  • cargo fmt --all --check — passed
  • cargo clippy --workspace --all-targets --all-features -- -D warnings -D clippy::all -D clippy::pedantic -D clippy::nursery -D clippy::cargo — passed
  • cargo test --workspace --all-features --quiet — 487 passed after Arti 0.46.0 upgrade
  • cargo audit — known transitive Arti rsa 0.9.10 advisory (RUSTSEC-2023-0071); two allowed maintenance warnings, documented in README
  • cargo build --release --locked --bins — passed; rustpost-cli --version reports 1.0.0

csd113 added 21 commits June 5, 2026 22:34
Prepare the initial release candidate by fixing verified release-blocking and release-embarrassing issues without changing routes, schema, visual identity, or privacy semantics.

Release packaging and operator experience:
- add the documented primary rustpost binary while retaining rustpost-cli
- bump the crate and lockfile version to 1.0.0-rc.1
- update first-run, first-admin, startup, backup, and restore command guidance to use rustpost
- correct generated settings wording from byte limits to character limits
- refresh release verification copy and remove stale Tor reachability claims

Security, privacy, and session hardening:
- allow existing passwords to authenticate after an operator raises the configured minimum password length
- validate profile website URLs as absolute HTTP/HTTPS URLs
- suppress unsafe legacy website values instead of rendering executable links

Media and posting hardening:
- enforce configured per-post image and video attachment limits
- reject missing or unsupported attachment records during post creation
- calculate multipart body limits from the largest valid configured media mix

Tests and validation:
- add regression coverage for password-policy login compatibility, unsafe profile URLs, upload body limits, and per-type media limits
- pass cargo fmt --all --check
- pass strict workspace Clippy with all targets and features
- pass cargo test --workspace --all-features with 310 tests
- validate fresh install/admin/CAPTCHA/browser flows and backup/restore with and without controlled Tor key material
- confirm Playwright artifacts remain ignored
Standardize the project on a single CLI binary named `rustpost-cli` and prepare the 1.0.0 release. Deleted the legacy `rustpost` binary and `[[bin]]` entry, updated Cargo.toml version to 1.0.0, and adjusted docs, help text, startup hints, and admin/terminal messages to reference `rustpost-cli`. Remove the deprecated PrintOnionAddress CLI command and its docs, and add a guard to reject restoring Tor keys unless the restore explicitly opts in (with a unit test). Also update the changelog (release text and DB baseline bump), and tweak the release workflow SHA256 generation command to write checksums from the dist directory.
This release raises the Rust baseline to 1.91 and updates the embedded Arti/Tor stack to 0.45.0, including the required onion-stream API migration. It also refreshes dependency versions to their latest compatible releases, keeps rusqlite aligned with the Arti sqlite dependency set, and updates the release docs and verification notes to reflect the new runtime and artifact conventions.
@csd113
csd113 merged commit 012324d into main Sep 29, 2026
7 checks passed
@csd113
csd113 deleted the v1.0.0-rc.1 branch September 29, 2026 15:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant