Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,36 @@

All notable changes to this project are listed here. Versions follow [Semantic Versioning](https://semver.org/).

## Unreleased
## [0.1.4](https://github.com/MetaSekaiLab/nnnotes/compare/v0.1.3...v0.1.4) - 2026-10-06

### Features

- **deck-data:** Export character rank experience thresholds ([3abe101](https://github.com/MetaSekaiLab/nnnotes/commit/3abe1017e47d267f77822af949500789c1831ee4))
- **music-data:** Publish the recommendation engine in the replay manifest ([42098d7](https://github.com/MetaSekaiLab/nnnotes/commit/42098d7bfa538912bbc350beaebfe78f3b04f202))
- **catalogs:** Record the resource version of an imported catalog ([a9d0bbd](https://github.com/MetaSekaiLab/nnnotes/commit/a9d0bbd034aee00c696979eba3b1f33754b8a237))
- **music-data:** Take the deck model's WASM release packages as engines ([de34ee2](https://github.com/MetaSekaiLab/nnnotes/commit/de34ee28ec181cac16237aa2751ff38e3bccfd91))

### Bug fixes

- **deck-data:** Export represented VIP rank identities ([c5d0514](https://github.com/MetaSekaiLab/nnnotes/commit/c5d051454f90c2afc7fb0063485f7dcf5d5a7669))
- **music-data:** Name the mismatch when an engine package is rejected ([e7fdacd](https://github.com/MetaSekaiLab/nnnotes/commit/e7fdacdd34b80fdf391614f08fd5d7480d33904e))

### Documentation

- Add a changelog generated by git-cliff ([7e871c5](https://github.com/MetaSekaiLab/nnnotes/commit/7e871c5f4dda7bde9323e0a8a71fb11d3cabeba3))
- Add a changelog generated by git-cliff ([d601820](https://github.com/MetaSekaiLab/nnnotes/commit/d60182018911d3f1fc236d355185592b2b6ec8ad))

### Build

- **deck:** Build the deck model from the ournotes-sim crate ([946fb33](https://github.com/MetaSekaiLab/nnnotes/commit/946fb335aef234837c461dfa960f3ce28dc946da))
- **deck:** Ournotes-deck ddf212b601731f9ab74245119d4408d2746a370c ([9f0ba0e](https://github.com/MetaSekaiLab/nnnotes/commit/9f0ba0e234cc4119682b3be4ebcd85344e618b02))
- **deck:** Ournotes-deck v0.0.2 ([8a088f4](https://github.com/MetaSekaiLab/nnnotes/commit/8a088f4b7e40a79b3bc111e88c25d0abce397f36))

### CI

- **commitlint:** Lift the line length limit of bodies and footers ([b9eecd9](https://github.com/MetaSekaiLab/nnnotes/commit/b9eecd91c682011748a3877e311d6ddcfb88000b))
- Test on Python 3.14 ([5c845eb](https://github.com/MetaSekaiLab/nnnotes/commit/5c845eb365fcc23c36bf724f336ed747ba198057))
- **deck:** Move create-pull-request to v8, which runs on Node.js 24 ([1e1bb17](https://github.com/MetaSekaiLab/nnnotes/commit/1e1bb179f98dddecb72465949276cbc4fb4e8fd7))
- **deck:** Dispatch CI and the commit message check on the pin pull request ([3a6bdfc](https://github.com/MetaSekaiLab/nnnotes/commit/3a6bdfc95dd80171724ac313e2aeb5278859a843))

## [0.1.3](https://github.com/MetaSekaiLab/nnnotes/compare/v0.1.2...v0.1.3) - 2026-09-30

Expand Down
9 changes: 9 additions & 0 deletions release-notes/v0.1.4.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
nnnotes 0.1.4 builds the deck model from ournotes-deck 0.0.2 and takes the deck model's WASM release packages as the replay and recommendation engines of the music data.

- The bundled deck model `nnnotes._deck` is built from the `ournotes-sim` crate of ournotes-deck, pinned to its 0.0.2 release (commit `76e96b6`). Music data made with this version names that commit in `provenance.deck.commit`; its deck statistics can differ from files made with 0.1.3.
- `nnnotes music-data --replay-dir DIR --replay-engine PKG --recommend-engine PKG` takes the WASM release packages of the pinned ournotes-deck release, `ournotes-replay-wasm-v<version>.tar.gz` and `ournotes-recommend-wasm-v<version>.tar.gz`, as the archive or its unpacked directory. Each package's `build-info.json` must name its module and the pinned model commit, and the SHA-256 of its web JS and WASM files. The replay bundle carries the web JS, the WASM and `build-info.json` of both packages, listed as `engine` and `recommendEngine` in the replay manifest; a rejected package names the mismatch. See the [replay format](https://github.com/MetaSekaiLab/nnnotes/blob/main/docs/replay.md).
- The deck model input (`music-data --full` and the replay bundle's `deck-data.json`) adds `MasterVip` (`_id`, `_vipRank`), so every VIP rank is present even without a bonus row, and `MasterCharacterRank._exp`, the cumulative experience each character rank needs.
- `nnnotes catalogs import` records the resource version without `--resource-version`: a JP catalog's source version, or the version in an international `catalog_<version>_<language>.bin` file name. The version is also the default label. An invalid `--resource-version`, or one that differs from a JP catalog's source version, is an error.
- `CHANGELOG.md` lists every release and ships in the source distribution.

Validation: Python 3.11, 3.12, 3.13 and 3.14 CI, strict golden records, Rust lints and the commit message check pass with the new deck model pin.
2 changes: 1 addition & 1 deletion rust/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion rust/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "nnnotes-deck"
# the nnnotes version (src/nnnotes/__init__.py); the wheel takes its version from here
version = "0.1.3"
version = "0.1.4"
edition = "2024"
rust-version = "1.85"
description = "nnnotes._deck: the ournotes-sim chart statistics as a Python extension module"
Expand Down
2 changes: 1 addition & 1 deletion src/nnnotes/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
models, spots, shaders, CRI audio and live charts as JSON and common file formats. Game files, keys and server
addresses are supplied by the user through the configuration; nothing of the game is included.
"""
__version__ = "0.1.3"
__version__ = "0.1.4"
Loading