mirror of
https://git.pumpin.online/funkpower/typikon.git
synced 2026-10-22 18:57:13 +00:00
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.
This commit is contained in:
+5
-1
@@ -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
|
||||
|
||||
Generated
+1
-1
@@ -404,7 +404,7 @@ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
|
||||
|
||||
[[package]]
|
||||
name = "typikon"
|
||||
version = "1.1.0"
|
||||
version = "1.1.1"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"js-sys",
|
||||
|
||||
+2
-2
@@ -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"
|
||||
|
||||
@@ -555,23 +555,6 @@ widgets for Hyprland (Quickshell), waybar and eww, all reading the JSON above.
|
||||
|
||||

|
||||
|
||||
## 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
|
||||
|
||||
+1
-1
@@ -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": {
|
||||
|
||||
@@ -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"
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user