From dde50192c7865dbc658411b6084fe7b80deda92b Mon Sep 17 00:00:00 2001 From: funkpower Date: Mon, 21 Sep 2026 07:25:32 -0400 Subject: [PATCH] 1.1.1 The README stops explaining how the project tests and releases itself. Someone arriving at it wants to know what a day of the Great Fast permits, not how the wheels get built; the parity suite and the release workflow are in docs/, where the person who needs them will look. The published description now says how many churches are covered, on both registries. That is a number in two files nobody editing the jurisdiction table will open, so a test pins it and names them. --- CHANGELOG.md | 6 +++++- Cargo.lock | 2 +- Cargo.toml | 4 ++-- README.md | 17 ----------------- npm/package.json.in | 2 +- tests/typikon.rs | 24 ++++++++++++++++++++++++ 6 files changed, 33 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aef57a2..31a6858 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ Notable changes, in the terms [docs/versioning.md](docs/versioning.md) sets out. **Calendar** entries change what a day reports, whatever the version number does. -## Unreleased +## 1.1.1 ### Fixed @@ -27,6 +27,10 @@ does. ### Changed +- The README no longer explains how the project tests or releases itself. That + belongs to whoever works on it, and it is in `docs/` where they will look; + a reader who came to find out what a day of the Great Fast permits does not + need it. - A release runs what a push runs. The release workflow had been gated on `cargo test` alone, so the C ABI, the Lua binding, the Python parity check and the README examples were checked on the branch that led to a release but diff --git a/Cargo.lock b/Cargo.lock index 15e6fb4..1b09d27 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -404,7 +404,7 @@ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca" [[package]] name = "typikon" -version = "1.1.0" +version = "1.1.1" dependencies = [ "clap", "js-sys", diff --git a/Cargo.toml b/Cargo.toml index fe20cd8..ee78538 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,9 +1,9 @@ [package] name = "typikon" -version = "1.1.0" +version = "1.1.1" edition = "2021" rust-version = "1.85" -description = "The Orthodox liturgical day: feasts, seasons and the fast, computed rather than fetched" +description = "The Orthodox liturgical day: feasts, seasons and the fast, computed rather than fetched. Twenty Orthodox jurisdictions and four Byzantine Catholic churches, across the Julian, Revised Julian and Gregorian reckonings." license = "GPL-2.0-only" repository = "https://git.pumpin.online/funkpower/typikon" readme = "README.md" diff --git a/README.md b/README.md index b333765..7417c92 100644 --- a/README.md +++ b/README.md @@ -555,23 +555,6 @@ widgets for Hyprland (Quickshell), waybar and eww, all reading the JSON above. ![The menologion widget](https://git.pumpin.online/funkpower/menologion/raw/branch/main/docs/nativity-fast.png) -## Every binding agrees - -There is one engine and several doors into it, so the doors have to agree. -`tests/parity.sh` asks each one for the same twelve days, chosen where they -could plausibly differ, and compares all twenty-two fields against what the -command line says: the Python wheel, Node by import and by require, TypeScript -under `--strict`, a real browser, Deno, Bun, the C ABI and LuaJIT over it. It -runs on every push and again before a release is uploaded, and -`tests/parity.sh --published` runs it against what is on PyPI and npm rather -than against the checkout. - -## Releasing - -`main` is always releasable; a `vX.Y.Z` tag on it builds the wheels and publishes -to PyPI. [docs/releasing.md](https://git.pumpin.online/funkpower/typikon/src/branch/main/docs/releasing.md) has the workflow, and what has to -be set up before the first one. - ## Licence GPL-2.0-only. The source for any published release is the source distribution diff --git a/npm/package.json.in b/npm/package.json.in index 4f16d07..027c67b 100644 --- a/npm/package.json.in +++ b/npm/package.json.in @@ -1,7 +1,7 @@ { "name": "typikon", "version": "@VERSION@", - "description": "The Orthodox liturgical day: feasts, seasons and the fast, computed rather than fetched", + "description": "The Orthodox liturgical day: feasts, seasons and the fast, computed rather than fetched. Twenty Orthodox jurisdictions and four Byzantine Catholic churches, across the Julian, Revised Julian and Gregorian reckonings.", "license": "GPL-2.0-only", "homepage": "https://git.pumpin.online/funkpower/typikon", "repository": { diff --git a/tests/typikon.rs b/tests/typikon.rs index e429021..bacd2a6 100644 --- a/tests/typikon.rs +++ b/tests/typikon.rs @@ -706,3 +706,27 @@ fn date_arithmetic_saturates_instead_of_overflowing() { assert_eq!(d.iso().len(), 10); } } + +/// The published description counts the churches, on PyPI and on npm, where +/// nobody editing this table will see it. Adding a jurisdiction without saying +/// so makes that description quietly wrong, so the count is pinned here and +/// the failure names the two places to correct. +#[test] +fn the_published_description_still_counts_the_churches_correctly() { + let catholic = ["ruthenian", "ugcc", "melkite", "romanian-catholic"]; + let orthodox = JURISDICTIONS + .iter() + .filter(|j| !catholic.contains(&j.key)) + .count(); + let byzantine_catholic = JURISDICTIONS + .iter() + .filter(|j| catholic.contains(&j.key)) + .count(); + + assert_eq!( + (orthodox, byzantine_catholic, CALENDARS.len()), + (20, 4, 3), + "the counts moved; update `description` in Cargo.toml (PyPI) and in \ + npm/package.json.in (npm), and the README's opening" + ); +}