From 76be2c7c56a7e62665b3e8cf38b61b20a69ffc58 Mon Sep 17 00:00:00 2001 From: Shmuel Osovski Date: Thu, 10 Sep 2026 20:20:07 +0300 Subject: [PATCH] release: 0.3.1 so compmech-reference-pack reaches PyPI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit compmech-reference-pack is not on PyPI because release.yml fires only on `v*` tags, and the one tag that exists — v0.3.0 — was pushed before the package was merged. `packages/` at that tag holds four directories. The release run succeeded; there were simply four packages to build. v0.3.0 cannot be reused: it produced a public GitHub Release and published four distributions. Moving a tag that people may have pinned or verified is worse than a version bump, so all five packages go to 0.3.1 and the four unchanged ones are republished with no content change. That is the standing cost of the lockstep policy the changelog declares. Two things surfaced while verifying the artefacts: - compmech-reference-pack had no README and no `readme` field, so `twine check` warned on a missing long_description — its PyPI page would have been blank. Added one describing the adapter, the mechdsl extra and the companion statuses. - packages/akms_nodes_gen/README.md still referenced `Packages/AKMS_nodes_gen` four times. The earlier sweep covered docs/ and the root README but not the per-package ones, which become the PyPI landing pages — so those were broken commands on a package's front page, resolving only on a case-insensitive filesystem. Verified: all ten distributions build and pass `twine check` with no warnings; each package's release glob claims exactly its own wheel and sdist; the version audit passes for v0.3.1 and correctly rejects v0.3.0; 1757 tests pass; ruff clean; pyright 0 errors; strict docs build; public-tree audit passes. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01TcdE6eeSDBh8xrgKCoGrkw --- CHANGELOG.md | 41 +++++++++++++ CITATION.cff | 4 +- packages/akms/pyproject.toml | 2 +- packages/akms_failure_memory/pyproject.toml | 2 +- packages/akms_learn/pyproject.toml | 2 +- packages/akms_nodes_gen/README.md | 8 +-- packages/akms_nodes_gen/pyproject.toml | 2 +- packages/compmech_reference_pack/README.md | 60 +++++++++++++++++++ .../compmech_reference_pack/pyproject.toml | 5 +- uv.lock | 10 ++-- 10 files changed, 119 insertions(+), 17 deletions(-) create mode 100644 packages/compmech_reference_pack/README.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e895a3..7185953 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,47 @@ All notable changes to the public AKMS packages are documented here. The public history begins with the first curated release; earlier private development is intentionally not replayed. +## [0.3.1] — 2026-09-10 + +### Added +- `compmech-reference-pack`, the computational-mechanics companion adapter, + joins the published set. It bridges `akms-learn` LSP excerpts to the + [MechDSL](https://github.com/CEmM2/MechDSL) executable backend; the compile + path is an optional `mechdsl` extra, so the backend is not pulled into a + consumer's resolution unless asked for. It could not ship in 0.3.0 because + its only hard dependency, `akms-learn`, was not yet on PyPI. +- `akms vault status` and `akms vault install`. With no argument, `install` + fetches the canonical + [compmech vault](https://github.com/CEmM2/akms-vault-compmech), pinned to a + release tag. It also accepts a directory, a `.tar.gz`, or an https URL, and + refuses to replace a populated vault without `--force`. + +### Changed +- The node corpus no longer ships inside the `akms` wheel, which drops it from + 1.3 MB to 320 KB. The corpus was never reachable from the package — + `resolve_global_vault` has four precedence levels and the package directory + is on none of them — so nothing could read it. Vaults are distributed and + installed separately now; see `akms vault install`. +- `package-data` is enumerated rather than globbed, so a corpus placed back + under `_bundled` cannot silently re-enter the wheel. + +### Fixed +- Documentation referenced `Packages/AKMS` and similar paths 37 times across + 14 files. The tree ships `packages/akms`; those commands resolved only on a + case-insensitive filesystem and failed on Linux. +- The installation guide stated that no PyPI release existed, and warned that + a full workspace sync required a sibling checkout that is not part of the + public tree. +- Material icons on the documentation site rendered as literal text + (`:material-graph:`) because `pymdownx.emoji` was not enabled, and the + companion-adapter card had lost its title line. +- `site_url`, `repo_url` and `edit_uri` were unset, so canonical links and the + sitemap pointed nowhere. + +### Notes +- All five packages release in lockstep, so the four unchanged since 0.3.0 are + republished at 0.3.1 with no content change. + ## [0.3.0] — 2026-08-31 ### Added diff --git a/CITATION.cff b/CITATION.cff index 0a2bd55..662fd53 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -7,8 +7,8 @@ authors: - family-names: Osovski given-names: Shmuel email: shmuliko@technion.ac.il -version: 0.3.0 -date-released: 2026-08-31 +version: 0.3.1 +date-released: 2026-09-10 repository-code: "https://github.com/CEmM2/AKMS" abstract: >- A deterministic global-local knowledge compiler: typed knowledge nodes, diff --git a/packages/akms/pyproject.toml b/packages/akms/pyproject.toml index d0b53c5..d7d74b4 100644 --- a/packages/akms/pyproject.toml +++ b/packages/akms/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "akms" -version = "0.3.0" +version = "0.3.1" description = "A deterministic global-local knowledge compiler: typed knowledge nodes, graph compilation, projections, and evidence ingestion" requires-python = ">=3.12,<3.13" license = "Apache-2.0" diff --git a/packages/akms_failure_memory/pyproject.toml b/packages/akms_failure_memory/pyproject.toml index 8d5e5cc..cf030a8 100644 --- a/packages/akms_failure_memory/pyproject.toml +++ b/packages/akms_failure_memory/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "akms-failure-memory" -version = "0.3.0" +version = "0.3.1" description = "Deterministic, project-owned failure memory for AKMS" readme = "README.md" license = "Apache-2.0" diff --git a/packages/akms_learn/pyproject.toml b/packages/akms_learn/pyproject.toml index 7e8e6fa..0cf8844 100644 --- a/packages/akms_learn/pyproject.toml +++ b/packages/akms_learn/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "akms-learn" -version = "0.3.0" +version = "0.3.1" description = "Learning Source Packet compiler and exporters for AKMS (experimental preview)" requires-python = ">=3.12,<3.13" license = "Apache-2.0" diff --git a/packages/akms_nodes_gen/README.md b/packages/akms_nodes_gen/README.md index 3287a4a..67986a2 100644 --- a/packages/akms_nodes_gen/README.md +++ b/packages/akms_nodes_gen/README.md @@ -28,7 +28,7 @@ uv sync --project packages/akms_nodes_gen --group docs ## Batch picker ```bash -uv --project Packages/AKMS_nodes_gen run akms-pick +uv --project packages/akms_nodes_gen run akms-pick ``` The picker runs a local FastAPI UI for selecting papers, staging PDFs, creating @@ -76,8 +76,8 @@ The generator writes: Build the docs locally: ```bash -uv --project Packages/AKMS_nodes_gen run --group docs \ - mkdocs build -f Packages/AKMS_nodes_gen/mkdocs.yml +uv --project packages/akms_nodes_gen run --group docs \ + mkdocs build -f packages/akms_nodes_gen/mkdocs.yml ``` -Main docs live in `Packages/AKMS_nodes_gen/docs/`. +Main docs live in `packages/akms_nodes_gen/docs/`. diff --git a/packages/akms_nodes_gen/pyproject.toml b/packages/akms_nodes_gen/pyproject.toml index 01b5868..422d384 100644 --- a/packages/akms_nodes_gen/pyproject.toml +++ b/packages/akms_nodes_gen/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "akms-nodes-gen" -version = "0.3.0" +version = "0.3.1" description = "Node generation and validation tooling for AKMS: NotebookLM batch generation, YAML-to-node conversion, and the batch-picker UI" readme = "README.md" license = "Apache-2.0" diff --git a/packages/compmech_reference_pack/README.md b/packages/compmech_reference_pack/README.md new file mode 100644 index 0000000..3775126 --- /dev/null +++ b/packages/compmech_reference_pack/README.md @@ -0,0 +1,60 @@ +# compmech-reference-pack + +The computational-mechanics companion adapter for +[AKMS](https://github.com/CEmM2/AKMS). It bridges `akms-learn` Learning Source +Packet excerpts to the [MechDSL](https://github.com/CEmM2/MechDSL) executable +backend, so an algorithm described in a knowledge node can be transpiled and +compiled rather than only read. + +It ships the `compmech` domain pack — the descriptor and source packs that tell +`akms-learn` which companions exist and what each can do. + +## Install + +```bash +pip install compmech-reference-pack +``` + +That gives you the domain pack and the adapter's declared capability surface, +and pulls in `akms-learn`. It does **not** pull in the MechDSL backend: every +`mechdsl` and `algo2code` import in this package is function-scoped, so it +installs and imports cleanly without them. + +To enable the actual compile, transpile and verify path: + +```bash +pip install "compmech-reference-pack[mechdsl]" +``` + +The extra exists so a downstream consumer can depend on this package without +dragging the executable backend — and transitively Taichi — into its +resolution. + +## What it provides + +- **`MechDSLRunner`** — the `executable_bridge` adapter. Given an LSP excerpt + it normalises the algorithmic block, derives a safe algorithm name, and + delegates to MechDSL's `transpile_algorithm` / `compile_from_sources`. + Provenance is preserved from node to generated artefact. +- **`capabilities()`** — a declaration of what the package offers, kept + deliberately import-light and Taichi-free so a caller can ask without paying + for a backend it may not use. +- **The `compmech` domain pack** — `domain_pack.yaml` plus the source packs + under `domain_pack/source_packs/`, addressed through + `compmech_reference_pack.paths`. + +## Companion status + +| Companion | Role | Status | +|---|---|---| +| `mechdsl` | executable bridge | available | +| `constkit` | concept kit | planned | +| `symbolic_fem_workbench` | pedagogical workbench | planned | + +`planned` describes the adapter, not the source: the material for both planned +companions is public, in +[SOSOVSKI/Teaching-materials](https://github.com/SOSOVSKI/Teaching-materials). + +## Licence + +Apache-2.0, matching AKMS. diff --git a/packages/compmech_reference_pack/pyproject.toml b/packages/compmech_reference_pack/pyproject.toml index f29b024..0542265 100644 --- a/packages/compmech_reference_pack/pyproject.toml +++ b/packages/compmech_reference_pack/pyproject.toml @@ -1,7 +1,8 @@ [project] name = "compmech-reference-pack" -version = "0.3.0" -description = "Computational-mechanics companion adapter — bridges AKMS LSP excerpts to the MechDSL executable backend (Tier 2 of the AKMS executable-bridge)." +version = "0.3.1" +description = "Computational-mechanics companion adapter — bridges AKMS LSP excerpts to the MechDSL executable backend." +readme = "README.md" requires-python = ">=3.11,<3.14" dependencies = [ "akms-learn", diff --git a/uv.lock b/uv.lock index 8d8ec09..7945f11 100644 --- a/uv.lock +++ b/uv.lock @@ -72,7 +72,7 @@ wheels = [ [[package]] name = "akms" -version = "0.3.0" +version = "0.3.1" source = { editable = "packages/akms" } dependencies = [ { name = "networkx" }, @@ -123,7 +123,7 @@ provides-extras = ["agents", "mcp", "telemetry", "orchestration"] [[package]] name = "akms-failure-memory" -version = "0.3.0" +version = "0.3.1" source = { editable = "packages/akms_failure_memory" } dependencies = [ { name = "akms" }, @@ -145,7 +145,7 @@ provides-extras = ["dev"] [[package]] name = "akms-learn" -version = "0.3.0" +version = "0.3.1" source = { editable = "packages/akms_learn" } dependencies = [ { name = "akms" }, @@ -177,7 +177,7 @@ provides-extras = ["notebook", "html", "llm", "nlm", "dev"] [[package]] name = "akms-nodes-gen" -version = "0.3.0" +version = "0.3.1" source = { editable = "packages/akms_nodes_gen" } dependencies = [ { name = "fastapi" }, @@ -423,7 +423,7 @@ wheels = [ [[package]] name = "compmech-reference-pack" -version = "0.3.0" +version = "0.3.1" source = { editable = "packages/compmech_reference_pack" } dependencies = [ { name = "akms-learn" },