Skip to content

release: 0.2.0 — mdict binary format - #31

Merged
N283T merged 3 commits into
mainfrom
release/0.2.0
Apr 16, 2026
Merged

release: 0.2.0 — mdict binary format#31
N283T merged 3 commits into
mainfrom
release/0.2.0

Conversation

@N283T

@N283T N283T commented Apr 16, 2026

Copy link
Copy Markdown
Owner

Summary

Closes #27. Docs + version bump to ship the mdict binary-format migration.

Breaking changes (vs 0.1.1)

  • JSON runtime format replaced with native `.mdict` binary
  • `dict2json` subcommand removed (use `gemmi convert` for JSON output)
  • `--dict` / `MMCIF_DICT_PATH` accept `.mdict` only
  • Users must re-run `mmcif-dict fetch` or `mmcif-dict compile` to migrate caches

New in 0.2.0

  • `compile` subcommand converts `.dic` to `.mdict`
  • `fetch` downloads `.dic` and compiles in-process
  • `--name NAME` flag for co-existing named caches (pdbx, ihm, cif_core, …)
  • Default PDBx dictionary embedded via `@embedFile` — works offline, no install step
  • Two-stage build pipeline + host-target `compile_tool` helper
  • CI now runs Python E2E smoke + compile tests

See CHANGELOG.md for the full list.

Test plan

  • `zig build test` passes (45 unit tests)
  • `uv run --script tests/test_smoke.py` passes (14 E2E tests)
  • `uv run --script tests/test_compile.py` passes (1 E2E test)
  • `./mmcif-dict category atom_site` works with no cache, no network
  • ReleaseFast binary size: 3.2 MB (target: 6-12 MB)
  • No `std.json` / `json_loader` / `dict2json` references in src/
  • No `data/.json` artifacts remaining
  • CI green

Post-merge

Tag `v0.2.0` and publish GitHub release artifacts via the existing release workflow.

N283T added 3 commits April 16, 2026 10:10
Reflects the post-PR-4 state:

- Quick start leads with offline-capable commands; fetch is positioned
  as a refresh / add-alternate-dict step rather than a mandatory first
  step.
- Dictionary Path Resolution lists four steps (--dict > env > named
  cache > embedded default) with the explicit guard that requesting a
  non-default --name never falls through to the embedded PDBx data.
- Options table adds --name NAME.
- Data Source section documents the embedded build plus the
  named-cache convention and compile path.

No behavior change; docs only.
Moves the Unreleased block under [0.2.0] with today's date and fills in
the full release scope: compile command, native .mdict binary, fetch
.dic-and-compile flow, --name flag, embedded default dictionary,
two-stage build, CI smoke tests, plus hardening (error taxonomy,
cache-name allowlist). Breaking changes called out explicitly with
migration guidance.
@N283T
N283T merged commit 228ed1e into main Apr 16, 2026
1 check passed
@N283T
N283T deleted the release/0.2.0 branch April 16, 2026 01:14
N283T added a commit that referenced this pull request Apr 16, 2026
Missed in PR #31. build.zig.zon was updated but the Nix derivation's
version string still said 0.1.1, so `nix run github:N283T/mmcif-dict-cli/v0.2.0`
would misreport the package version. The v0.2.0 tag itself is already
published; this fix lands on main so subsequent references see the
correct version.
@N283T N283T mentioned this pull request Apr 16, 2026
2 tasks
N283T added a commit that referenced this pull request Apr 16, 2026
Missed in PR #31. build.zig.zon was updated but the Nix derivation's
version string still said 0.1.1, so `nix run github:N283T/mmcif-dict-cli/v0.2.0`
would misreport the package version. The v0.2.0 tag itself is already
published; this fix lands on main so subsequent references see the
correct version.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PR 5: release 0.2.0 (mdict format)

1 participant