@kieransimkin/dance-rudiments 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -4,6 +4,7 @@
4
4
  - Use the relevant existing capabilities as fully as the task warrants. Always look for a useful improvement to this tool. Fix a reusable gap here rather than copying its engine or carrying a private workaround; record why no change is justified when that is the result.
5
5
  - Submit improvements as PRs to https://github.com/kieransimkin/DanceRudiments/pulls. Never leave a completed reusable improvement only in a local fork. Keep changes focused and preserve the tool's identity and compatibility contracts.
6
6
  - Add relevant regression coverage, documentation and a reproducible example when behaviour changes. Use tools/release_version.py and tools/check_release_version.py. Run the native and relevant binding tests from .github/workflows/ before packaging.
7
+ - Run `python tools/check_package_docs.py` before packaging; every nested first-party `README.md` in the package input trees must retain the canonical author music link. Preserve third-party `sources/` attribution and keep the actual archive checks enabled.
7
8
  - Keep credentials, account data, private media and rights records out of source, fixtures, logs and packages. Use synthetic fixtures or explicitly authorised public examples and preserve their provenance/licences.
8
9
  - Use [CONTRIBUTING.md](CONTRIBUTING.md) for review. Maintainers publish accepted, validated improvements as a fresh matching GitHub release and verify configured registry destinations. Preserve existing tags and release assets; publication and deployment remain subject to applicable authorisation.
9
10
  - Website: https://kieransimkin.co.uk/danceflow/
@@ -33,6 +34,7 @@ Before every new workflow run, check the latest stable official release and obse
33
34
  - Read `docs/release-demo.md` and `docs/mesh-demos.md` before changing demo builds or deployment. Keep the root native visualizer and `meshes/` gallery together in `dist/pages`. `demo-release.yml` is the sole Pages publisher; main/PR `visualizer.yml` runs remain artifact-only and must not erase a released mesh route.
34
35
  - Build from the exact validated tag and commit. Use tag pushes or manual dispatch for an existing compatible published tag; do not depend on a `release.published` event created with `GITHUB_TOKEN`. Old tags without the gallery cannot be retrofitted, moved or overwritten.
35
36
  - Retain the `DANCERUDIMENTS_PAGES_ENABLED == 'true'` guard, `github-pages` environment, approvals and protections. Read Pages configuration without enabling or changing it. Only the latest stable official release may deploy, with a second latest-release check after waiting for the shared deployment concurrency slot. Older-tag attachment builds must report a Pages skip accurately.
37
+ - A `main` branch deployment rule does not authorize version tags. If the environment rejects a tag, report the exact annotation and request the maintainer's explicit tag-rule authorization; do not bypass it. Once authorized, retry the failed deployment from the same run while its artifact remains available. Do not rebuild or overwrite completed release attachments to recover a deployment-only failure.
36
38
  - Keep original mesh geometry separate from captured source motion. The selected two-source builder may download only its explicitly requested, pinned files and must retain CMU/converter terms, hashes, units, axes and unverified musical timing. Optional motion files must remain outside the default catalogue and base package artifacts.
37
39
  - Run `npm test`, `test_mesh_demo_assets.py`, `test_release_pages.py`, the existing native visualizer/MIDI browser gates, and `tools/test_mesh_demo_browser.py` for the complete site before sealing release assets. Preserve the shared native 64-pip sampler, exact profile bindings, lazy scene loading and resource disposal. A `--gallery-only` receipt is local evidence and cannot seal a complete release site.
38
40
  - Bind browser evidence to every packaged site file and the exact release identity. Keep archives outside the Pages tree. Existing release assets are immutable: compare every collision before upload, retain identical bytes and refuse changed assets; never use `--clobber` for demo releases.
package/README.md CHANGED
@@ -663,6 +663,19 @@ StemLab. Rebuild old generated pages to include the control. See
663
663
 
664
664
  ## Continuous integration and releases
665
665
 
666
+ Run `python tools/check_package_docs.py` before packaging. Its source preflight
667
+ checks nested first-party `README.md` files in the package input trees, including
668
+ rig-motion examples and optional source-plan documentation, for the canonical
669
+ author music link. Third-party `sources/` documentation retains its original
670
+ attribution. Release jobs also check the actual archives; passing source checks
671
+ does not establish package publication or registry availability.
672
+
673
+ Tagged Pages deployments require an allowed **Tag** rule in the existing
674
+ `github-pages` environment, in addition to any allowed `main` branch rule.
675
+ A maintainer must explicitly authorize the intended release tags; the workflow
676
+ does not change environment protections. See [release demo recovery](docs/release-demo.md#recovering-a-deployment-rejected-by-environment-rules)
677
+ for retrying an already built site without rebuilding its immutable release assets.
678
+
666
679
  The additional `.github/workflows/csharp.yml` builds the shared C ABI and C# wrapper, tests actual installed NuGet packages, and publishes .NET packages only for release tags. Its NuGet.org setup is documented in [the C# guide](docs/csharp.md).
667
680
 
668
681
  `.github/workflows/ci.yml` builds and tests the C++ core on Linux, Windows, and macOS; builds and imports the Python package; compiles/tests the TypeScript and browser runtime; and creates a Conan package on every push to `main` and every pull request.
@@ -144,6 +144,41 @@ reported as a verified live site. See GitHub's
144
144
  [custom Pages workflow guide](https://docs.github.com/en/pages/getting-started-with-github-pages/using-custom-workflows-with-github-pages)
145
145
  for the existing environment and artifact requirements.
146
146
 
147
+
148
+ ### Recovering a deployment rejected by environment rules
149
+
150
+ GitHub evaluates the workflow's branch or tag against the `github-pages`
151
+ environment's allowed deployment rules. An allowed **Branch** rule for `main`
152
+ does not allow a run triggered by a `vMAJOR.MINOR.PATCH` tag. A rejected job may
153
+ have no runner or step logs; inspect its check annotations for the exact reason.
154
+
155
+ If the annotation says the release tag is not allowed, a maintainer must
156
+ explicitly authorize the tag in **Settings → Environments → github-pages →
157
+ Deployment branches and tags**. Retain the existing branch rules and other
158
+ protections. Add a rule with ref type **Tag** for the exact release, or
159
+ `v*.*.*` if the maintainer approves the ongoing versioned-release policy.
160
+ The workflow never changes these rules or bypasses their approvals.
161
+
162
+ When `render`, `attach`, and `pages-target` already succeeded, use **Re-run
163
+ failed jobs** on that same workflow run after the rule is authorized. With the
164
+ GitHub CLI, substitute the affected numeric run ID below:
165
+
166
+ ```sh
167
+ gh run rerun RUN_ID --failed --repo kieransimkin/DanceRudiments
168
+ ```
169
+
170
+ This preserves the original tested site and release attachments while retrying
171
+ deployment. Confirm the original `github-pages` artifact is still available
172
+ before retrying; its default retention is one day. The latest-stable-release
173
+ check and live route/file checks still apply. A full rebuild can produce changed
174
+ browser reports or toolchain output and must not overwrite immutable release
175
+ attachments. If the original site artifact has expired, prepare a fresh release
176
+ through the normal build and verification process.
177
+
178
+ The [GitHub environment guide](https://docs.github.com/en/actions/reference/workflows-and-actions/deployments-and-environments)
179
+ documents separate branch/tag rules. The [GitHub CLI manual](https://cli.github.com/manual/gh_run_rerun)
180
+ documents the failed-job retry command.
181
+
147
182
  ## Local build
148
183
 
149
184
  Use a checkout with matching package versions and the native build tools,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kieransimkin/dance-rudiments",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Deterministic rhythmic position functions with C++, Python, TypeScript/WASM and C# bindings. https://kieransimkin.co.uk/my-songs/",
5
5
  "license": "MIT AND BSD-3-Clause AND CC0-1.0 AND CC-BY-4.0",
6
6
  "type": "module",