dancerudiments 0.2.0__tar.gz → 0.2.1__tar.gz
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.
- dancerudiments-0.2.1/.github/workflows/nuget-verify.yml +40 -0
- dancerudiments-0.2.1/CHANGELOG.md +7 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/CMakeLists.txt +1 -1
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/PKG-INFO +1 -1
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/csharp/DanceRudiments/DanceRudiments.csproj +1 -1
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/docs/csharp.md +5 -1
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/harness/index.html +1 -1
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/package-lock.json +2 -2
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/package.json +1 -1
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/pyproject.toml +1 -1
- dancerudiments-0.2.1/tests/csharp/packaging/test_publish_verification.py +33 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/csharp_package.py +10 -4
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/.gitattributes +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/.github/workflows/ci.yml +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/.github/workflows/csharp.yml +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/.github/workflows/demo-release.yml +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/.github/workflows/initial-collection.yml +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/.github/workflows/patterns.yml +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/.github/workflows/release-tag.yml +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/.github/workflows/release.yml +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/.github/workflows/visualizer.yml +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/.gitignore +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/AUTHORS.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/LICENSE +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/README.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/csharp/.gitignore +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/csharp/DanceRudiments/NativeMethods.cs +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/csharp/DanceRudiments/Offset3.cs +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/csharp/DanceRudiments/PatternDefinition.cs +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/csharp/DanceRudiments/PatternLibrary.cs +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/csharp/DanceRudiments/Rudiments.cs +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/csharp/README.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/csharp/native/CMakeLists.txt +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/csharp/native/c_api.cpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/csharp/platforms.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/python/module.cpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/typescript/defaults.ts +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/typescript/index.ts +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/typescript/wasm.cpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/cmake/DanceRudimentsConfig.cmake.in +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/atlas/README.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/atlas/atlas.score.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/atlas/definitions.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/atlas/manifest.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/club/README.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/club/club.score.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/club/definitions.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/club/manifest.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/club/rhythms.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/club/sources.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/continuum/README.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/continuum/continuum.score.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/continuum/definitions.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/continuum/manifest.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/dancefloor/README.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/dancefloor/definitions.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/dancefloor/manifest.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/dancefloor/recipes.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/dancefloor/rhythms.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/dancefloor/sources.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/defaults.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/expansion/README.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/expansion/definitions.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/expansion/expansion.score.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/expansion/manifest.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/initial/README.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/initial/THIRD_PARTY_NOTICES.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/initial/definitions.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/initial/initial.score.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/initial/manifest.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/initial/preview_data.inc +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/initial/preview_sampler.cpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/initial/preview_wasm.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/initial/sources/akwf/AKWF_0001_256.h +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/initial/sources/akwf/AKWF_0010_256.h +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/initial/sources/akwf/AKWF_R_asym_saw_05_256.h +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/initial/sources/akwf/AKWF_R_asym_saw_15_256.h +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/initial/sources/d3-ease/LICENSE +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/initial/sources/groove/1_funk_80_beat_4-4.mid.b64 +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/conanfile.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/docs/authoring.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/docs/bindings.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/docs/ci-reproducibility.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/docs/dancefloor.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/docs/default-library.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/docs/images/capture.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/docs/images/visualizer-amen-desktop.png +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/docs/images/visualizer-midi-score.png +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/docs/images/visualizer-mobile.png +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/docs/midi-harness.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/docs/release-demo.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/docs/troubleshooting.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/examples/bindings/README.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/examples/bindings/cpp/CMakeLists.txt +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/examples/bindings/cpp/main.cpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/examples/bindings/csharp/.gitignore +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/examples/bindings/csharp/Program.cs +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/examples/bindings/csharp/Quickstart.csproj +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/examples/bindings/javascript/node.mjs +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/examples/bindings/pulse.score.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/examples/bindings/python/quickstart.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/examples/bindings/python/sample_motion.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/examples/bindings/typescript/.gitignore +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/examples/bindings/typescript/app.ts +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/examples/bindings/typescript/index.html +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/examples/bindings/typescript/tsconfig.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/examples/bindings/typescript/wasm.d.ts +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/examples/patterns/starter.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/harness/app.js +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/harness/beats.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/harness/dancerudiments.js +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/harness/index.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/harness/initial/app.js +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/harness/initial/style.css +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/harness/initial/template.html +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/harness/initial-collection.html +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/harness/style.css +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/include/dancerudiments/c_api.h +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/include/dancerudiments/collections/atlas.hpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/include/dancerudiments/collections/club.hpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/include/dancerudiments/collections/continuum.hpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/include/dancerudiments/collections/dancefloor.hpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/include/dancerudiments/collections/expansion.hpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/include/dancerudiments/collections/initial.hpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/include/dancerudiments/dance_rudiments.hpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/include/dancerudiments/detail/default_includes.inc +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/include/dancerudiments/detail/default_registry.inc +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/include/dancerudiments/sampled_pattern.hpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/packaging/CPP_BINARY_README.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/__init__.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/__main__.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/_reproducibility.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/_validation.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/cli.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/collections.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/compiler.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/curves.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/events.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/initial_sources.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/io.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/model.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/packs/THIRD_PARTY_NOTICES.md +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/packs/atlas.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/packs/club.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/packs/continuum.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/packs/dancefloor.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/packs/expansion.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/packs/initial.json +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/release_version-v3.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/src/dance_rudiments.cpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/src/sampled_pattern.cpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/browser/test_initial_gallery.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/consumer/CMakeLists.txt +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/consumer/main.cpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/cpp/test_c_api.cpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/cpp/test_club.cpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/cpp/test_continuum.cpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/cpp/test_dancefloor.cpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/cpp/test_default_registration.cpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/cpp/test_initial_collection.cpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/cpp/test_main.cpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/cpp/test_sampled_pattern.cpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/csharp/.gitignore +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/csharp/DanceRudiments.Tests.csproj +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/csharp/Program.cs +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/csharp/packaging/test_packaging.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/python/test_atlas.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/python/test_authoring.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/python/test_club.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/python/test_continuum.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/python/test_dancefloor.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/python/test_defaults.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/python/test_expansion.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/python/test_harness_beats.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/python/test_initial_collection.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/python/test_native.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/python/test_package_docs.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/python/test_release_demo_compact.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/python/test_release_version.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/python/test_reproducibility.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/typescript/beat-player.test.js +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/typescript/defaults.test.js +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/typescript/initial-wasm.test.mjs +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/typescript/patterns.test.js +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/typescript/runtime.test.js +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tests/typescript/wasm-smoke.mjs +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/build_atlas_collection.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/build_club_collection.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/build_club_demo.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/build_continuum_collection.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/build_dancefloor_collection.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/build_dancefloor_demo.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/build_default_catalogue.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/build_expansion_collection.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/build_harness.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/build_initial_collection.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/capture_readme_screenshots.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/check_package_docs.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/check_release_version.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/club_demo_assets/app.js +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/club_demo_assets/style.css +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/club_demo_assets/template.html +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/compile_patterns.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/dancefloor_demo_assets/app.js +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/dancefloor_demo_assets/style.css +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/dancefloor_demo_assets/template.html +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/export_default_catalogue.cpp +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/export_harness_midi.mjs +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/harness_beats.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/release_demo.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/release_demo_assets/app.js +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/release_demo_assets/beat_player.js +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/release_demo_assets/style.css +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/release_demo_assets/template.html +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/release_version.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/render_club_demo.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/render_dancefloor_demo.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/render_release_demo.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tools/test_midi_harness.py +0 -0
- {dancerudiments-0.2.0 → dancerudiments-0.2.1}/tsconfig.json +0 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: Verify NuGet publication
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
version:
|
|
7
|
+
description: Existing DanceRudiments version to verify on NuGet.org
|
|
8
|
+
required: true
|
|
9
|
+
type: string
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
verify:
|
|
16
|
+
runs-on: ubuntu-22.04
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v6
|
|
19
|
+
with:
|
|
20
|
+
persist-credentials: false
|
|
21
|
+
- uses: actions/setup-python@v6
|
|
22
|
+
with:
|
|
23
|
+
python-version: '3.13'
|
|
24
|
+
- name: Download the package already attached to its GitHub Release
|
|
25
|
+
env:
|
|
26
|
+
GH_TOKEN: ${{ github.token }}
|
|
27
|
+
VERSION: ${{ inputs.version }}
|
|
28
|
+
shell: bash
|
|
29
|
+
run: |
|
|
30
|
+
set -euo pipefail
|
|
31
|
+
[[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]
|
|
32
|
+
mkdir -p artifacts/nuget
|
|
33
|
+
gh release download "v$VERSION" --repo "$GITHUB_REPOSITORY" \
|
|
34
|
+
--pattern "DanceRudiments.$VERSION.nupkg" --dir artifacts/nuget
|
|
35
|
+
- name: Wait for NuGet.org indexing and verify the published payload
|
|
36
|
+
env:
|
|
37
|
+
VERSION: ${{ inputs.version }}
|
|
38
|
+
run: |
|
|
39
|
+
python tools/csharp_package.py verify-published \
|
|
40
|
+
"artifacts/nuget/DanceRudiments.$VERSION.nupkg" --version "$VERSION"
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.2.1 - 2026-10-08
|
|
4
|
+
|
|
5
|
+
- Verify delayed NuGet indexing with bounded, authenticated publication evidence rather than treating an immediate index miss as publication failure.
|
|
6
|
+
- Preserve the existing motion catalogue and bindings unchanged.
|
|
7
|
+
- Keep all package manifests aligned with the fresh release version.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
cmake_minimum_required(VERSION 3.20)
|
|
2
|
-
project(DanceRudiments VERSION 0.2.
|
|
2
|
+
project(DanceRudiments VERSION 0.2.1
|
|
3
3
|
DESCRIPTION "Rhythmic motion for DanceFlow. Music: https://kieransimkin.co.uk/my-songs/"
|
|
4
4
|
HOMEPAGE_URL "https://kieransimkin.co.uk/my-songs/"
|
|
5
5
|
LANGUAGES CXX)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dancerudiments
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: C++ rhythmic motion with Python bindings for DanceFlow. Music: https://kieransimkin.co.uk/my-songs/
|
|
5
5
|
Author: Kieran Simkin
|
|
6
6
|
License-Expression: MIT AND BSD-3-Clause AND CC0-1.0 AND CC-BY-4.0
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/csharp/DanceRudiments/DanceRudiments.csproj
RENAMED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<!-- Kieran Simkin / DanceFlow: https://kieransimkin.co.uk/my-songs/ -->
|
|
3
3
|
<PropertyGroup>
|
|
4
4
|
<TargetFramework>net8.0</TargetFramework>
|
|
5
|
-
<Version>0.2.
|
|
5
|
+
<Version>0.2.1</Version>
|
|
6
6
|
<PackageId>DanceRudiments</PackageId>
|
|
7
7
|
<Authors>Kieran Simkin</Authors>
|
|
8
8
|
<Description>C# bindings to the DanceFlow C++ rhythmic motion library. Music: https://kieransimkin.co.uk/my-songs/</Description>
|
|
@@ -224,7 +224,11 @@ After successful native, managed and installed-package tests:
|
|
|
224
224
|
- **NuGet.org** receives `DanceRudiments.<version>.nupkg` plus managed symbols. The
|
|
225
225
|
workflow downloads the indexed package and compares payload members, allowing
|
|
226
226
|
NuGet.org's added repository signature rather than assuming ZIP bytes remain
|
|
227
|
-
identical. Indexing can take
|
|
227
|
+
identical. Indexing can take several minutes; verification waits for up to about
|
|
228
|
+
15 minutes of transient CDN/indexing responses before failing. A payload mismatch
|
|
229
|
+
still fails immediately. If NuGet indexing outlives the release job, run the
|
|
230
|
+
manual **Verify NuGet publication** workflow for that already-published version;
|
|
231
|
+
it verifies the release asset without attempting another upload.
|
|
228
232
|
- **GitHub Packages** receives the same nupkg under
|
|
229
233
|
`https://nuget.pkg.github.com/kieransimkin/index.json`. `GITHUB_TOKEN` with
|
|
230
234
|
`packages: write` authenticates; `RepositoryUrl` links the package to this repo.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kieransimkin/dance-rudiments",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@kieransimkin/dance-rudiments",
|
|
9
|
-
"version": "0.2.
|
|
9
|
+
"version": "0.2.1",
|
|
10
10
|
"devDependencies": {
|
|
11
11
|
"typescript": "^5.9.0"
|
|
12
12
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kieransimkin/dance-rudiments",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "C++/WASM rhythmic motion for DanceFlow, with TypeScript bindings. Music: 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",
|
|
@@ -4,7 +4,7 @@ build-backend = "scikit_build_core.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "dancerudiments"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.1"
|
|
8
8
|
description = "C++ rhythmic motion with Python bindings for DanceFlow. Music: https://kieransimkin.co.uk/my-songs/"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT AND BSD-3-Clause AND CC0-1.0 AND CC-BY-4.0"
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"""Regression checks for delayed NuGet.org indexing."""
|
|
2
|
+
import inspect
|
|
3
|
+
import importlib.util
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
import unittest
|
|
6
|
+
|
|
7
|
+
ROOT = Path(__file__).resolve().parents[3]
|
|
8
|
+
spec = importlib.util.spec_from_file_location("csharp_package", ROOT / "tools/csharp_package.py")
|
|
9
|
+
package = importlib.util.module_from_spec(spec)
|
|
10
|
+
spec.loader.exec_module(package)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class PublishVerificationTests(unittest.TestCase):
|
|
14
|
+
def test_default_indexing_window_is_about_fifteen_minutes(self):
|
|
15
|
+
signature = inspect.signature(package.verify_published)
|
|
16
|
+
self.assertEqual(signature.parameters["attempts"].default, 60)
|
|
17
|
+
self.assertEqual(signature.parameters["delay_seconds"].default, 15)
|
|
18
|
+
|
|
19
|
+
def test_invalid_retry_configuration_is_rejected_before_package_access(self):
|
|
20
|
+
with self.assertRaises(ValueError):
|
|
21
|
+
package.verify_published(Path("missing.nupkg"), "nuget.org", attempts=0)
|
|
22
|
+
with self.assertRaises(ValueError):
|
|
23
|
+
package.verify_published(Path("missing.nupkg"), "nuget.org", delay_seconds=-1)
|
|
24
|
+
|
|
25
|
+
def test_manual_verification_accepts_an_explicit_release_version(self):
|
|
26
|
+
with self.assertRaises(FileNotFoundError):
|
|
27
|
+
package.verify_published(Path("missing.nupkg"), "nuget.org", "0.2.0", attempts=1, delay_seconds=0)
|
|
28
|
+
with self.assertRaises(ValueError):
|
|
29
|
+
package.verify_published(Path("missing.nupkg"), "nuget.org", "v0.2", attempts=1, delay_seconds=0)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
if __name__ == "__main__":
|
|
33
|
+
unittest.main()
|
|
@@ -211,12 +211,17 @@ def pack(folder: Path, output: Path, commit: str) -> None:
|
|
|
211
211
|
(output/'SHA256SUMS-csharp.txt').write_text(''.join(sha256(p.read_bytes()).hexdigest()+' '+p.name+'\n' for p in files),encoding='utf-8')
|
|
212
212
|
|
|
213
213
|
|
|
214
|
-
def verify_published(path: Path, feed: str, attempts: int =
|
|
214
|
+
def verify_published(path: Path, feed: str, published_version: str | None = None, attempts: int = 60, delay_seconds: int = 15) -> None:
|
|
215
215
|
"""NuGet.org adds a repository signature: compare ZIP payloads, not raw ZIP bytes.
|
|
216
216
|
GitHub feed verification uses an isolated dotnet restore in the workflow.
|
|
217
217
|
"""
|
|
218
218
|
if feed!='nuget.org':raise ValueError('Only the public NuGet.org feed is supported here')
|
|
219
|
-
|
|
219
|
+
if attempts < 1 or delay_seconds < 0:
|
|
220
|
+
raise ValueError('Verification attempts must be positive and delay must be non-negative')
|
|
221
|
+
published_version = published_version or version()
|
|
222
|
+
if not re.fullmatch(r'\d+\.\d+\.\d+', published_version):
|
|
223
|
+
raise ValueError('Published version must be MAJOR.MINOR.PATCH')
|
|
224
|
+
url=f'https://api.nuget.org/v3-flatcontainer/dancerudiments/{published_version}/dancerudiments.{published_version}.nupkg'
|
|
220
225
|
with zipfile.ZipFile(path) as local:
|
|
221
226
|
expected={n:sha256(local.read(n)).digest() for n in local.namelist() if n!='.signature.p7s'}
|
|
222
227
|
last=None
|
|
@@ -230,8 +235,9 @@ def verify_published(path: Path, feed: str, attempts: int = 12) -> None:
|
|
|
230
235
|
print('NuGet.org download matches every non-signature package member');return
|
|
231
236
|
except (urllib.error.URLError,zipfile.BadZipFile) as error:
|
|
232
237
|
last=error
|
|
233
|
-
if attempt+1<attempts:time.sleep(
|
|
234
|
-
|
|
238
|
+
if attempt+1<attempts:time.sleep(delay_seconds)
|
|
239
|
+
waited=max(0, attempts-1)*delay_seconds
|
|
240
|
+
raise RuntimeError(f'NuGet.org accepted the upload but indexing did not complete after about {waited} seconds: {last}')
|
|
235
241
|
|
|
236
242
|
|
|
237
243
|
def main() -> None:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/csharp/DanceRudiments/NativeMethods.cs
RENAMED
|
File without changes
|
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/csharp/DanceRudiments/PatternDefinition.cs
RENAMED
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/bindings/csharp/DanceRudiments/PatternLibrary.cs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/initial/sources/akwf/AKWF_0001_256.h
RENAMED
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/collections/initial/sources/akwf/AKWF_0010_256.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/include/dancerudiments/collections/continuum.hpp
RENAMED
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/include/dancerudiments/collections/dancefloor.hpp
RENAMED
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/include/dancerudiments/collections/expansion.hpp
RENAMED
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/include/dancerudiments/collections/initial.hpp
RENAMED
|
File without changes
|
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/include/dancerudiments/detail/default_includes.inc
RENAMED
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/include/dancerudiments/detail/default_registry.inc
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/_reproducibility.py
RENAMED
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/_validation.py
RENAMED
|
File without changes
|
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/collections.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/initial_sources.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/packs/atlas.json
RENAMED
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/packs/club.json
RENAMED
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/packs/continuum.json
RENAMED
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/packs/dancefloor.json
RENAMED
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/packs/expansion.json
RENAMED
|
File without changes
|
{dancerudiments-0.2.0 → dancerudiments-0.2.1}/python/dancerudiments_authoring/packs/initial.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|