Conversation
Partial backport from `vig-os/devcontainer` upstream — only the
items that don't require infrastructure we don't have.
- codeql.yml: `github/codeql-action` SHA `0d579ffd` → `c10b8064`
(both v4, upstream is 22 days newer)
- scorecard.yml: same `github/codeql-action/upload-sarif` pin bump
- sync-issues.yml:
- `actions/create-github-app-token` v2 (`29824e69`) → v3 (`f8d387b6`)
- `vig-os/commit-action` v0.1.5 (`c0024cba`) → v0.2.0 (`1bc00435`)
- `MAX_ATTEMPTS: "3"` env on the commit step (retry commit on
transient push failures)
- drop `|| github.token` fallback on `GH_TOKEN` (we always have
the App token, the fallback is dead code now)
Deliberately skipped from the upstream template:
- Container-based execution (`ghcr.io/vig-os/devcontainer` via a
`resolve-image` action) — requires the `resolve-image` action
which we don't ship locally, plus the devcontainer image itself
as a hosting target. Host-runner execution is fine for our needs.
- `retry --retries 3 -- gh api ...` wrappers around API calls —
require the `retry` CLI which ships inside the devcontainer image,
not on bare ubuntu-22.04 runners.
- `ci.yml` upstream resync — upstream's version would delete our
Python test matrix (3.12+all, 3.13+all), Bandit/Safety security
scan, Dependency Review, and Rust (mat-rs) jobs. Our local version
is strictly more capable for this repo; intentional divergence.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
chore: sync dev with main
chore: refresh vig-os scaffold pin drift (partial backport)
chore: sync main→dev (dependabot security bumps)
Bernhard's patch (33a86b3) adds Python 3.10 support via a `tomllib`→`tomli` shim, but did not extend the CI matrix to actually test on 3.10. Without a matrix cell, the package would claim support we don't verify. Adds three new matrix cells so every supported Python gets a status check on every PR: - `Tests (py3.10, all)` — tomli shim path - `Tests (py3.11, all)` — stdlib tomllib, first supported version - (3.12 and 3.13 cells already existed) Verified locally: 133 passed / 11 skipped on 3.10 (parity with 3.12). 11 skipped are pymatgen-gated tests that skip on pymatgen's own Python constraints, not a 3.10 issue. Also refreshes uv.lock for the relaxed `requires-python = ">=3.10"`. Some pandas/scipy/pymatgen/pint entries now carry multiple versions in the universal resolution because they have different Python- version compatibility windows — standard uv behavior. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
enable Python 3.10 support
- pyproject.toml: version 2.0.5 → 2.1.0 - src/pymat/__init__.py: __version__ synced to 2.1.0 (was stuck at 2.0.4 after the 2.0.5 release — pre-existing drift) - CHANGELOG.md: new [2.1.0] section covering everything since v2.0.5: Material.molar_mass + pymat.elements (new API), Python 3.10 support (#6), enricher docstring rewrite, ADR infrastructure, infrastructure work (rulesets, matrix CI, Rust gate, .typos.toml safety net, sync-main-to-dev merge-tree fix, template refresh, dependabot security bumps). Semver: MINOR bump justified by new public API surface (Material.molar_mass, Material.molar_mass_qty, pymat.elements module) and expanded Python version support (3.10 added). No breaking changes. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Prepares the 2.1.0 release. Branching pattern matches the vigOS convention (
release/X.Y.Zfrom dev → PR to main → tag → publish) without the full automation. The full vigOS downstream release automation is tracked in #27 for a future session.Semver
MINOR (2.0.5 → 2.1.0). Justification:
Material.molar_mass,Material.molar_mass_qty,pymat.elementsmoduletomlishimWhat's in 2.1.0
See the CHANGELOG entry for the full details. Highlights:
Added
Material.molar_mass/molar_mass_qtycomputed properties (parsed fromformula, uses newpymat.elements.ATOMIC_WEIGHTtable mirror of rs-materials)tomlishim — contributed by @bernhard-42 in enable Python 3.10 support #6 (our first outside contribution)docs/decisions/ADR infrastructure + ADR-0001Changed
requires-python = ">=3.10"(was>=3.11)build123dextra now has env markerpython_version<'3.13'— pip install on 3.13+ silently drops build123d instead of erroring on missing wheelsenrich_from_periodictabledocstring clarified (compound density isn't derivable from periodictable — only pure elements; code unchanged, false promise removed)Fixed
__version__insrc/pymat/__init__.pysynced (was stuck at 2.0.4 after v2.0.5)uv.lockworkspace member rename frompy-mat→py-materials(CI was silently broken on--frozensince the rename)test_enrichers.pyrewritten (no longerxfail)Infrastructure (not user-facing)
dev/mainbranching convention with rulesetsRust (mat-rs)PR-CI gate.typos.tomlsafety net (preventsNd → And,Macor → Macroauto-corruption)sync-main-to-dev.ymlswitched togit merge-tree(closed fix(sync): use git merge-tree for false-positive-free conflict detection #16 false-positive conflicts)Release mechanics
This PR uses option A from the planning: the vigOS branching pattern with the existing simple
release.yml(tag-push triggered).After merge:
git tag -a v2.1.0 -m "Release 2.1.0" && git push origin v2.1.0release.ymlfires on the tag push → builds wheel → publishes to PyPI via OIDC trusted publisher → creates GitHub Releasesync-main-to-dev.ymlfires on the merge commit on main → opens a sync-back PR to dev → merge thatFull vigOS release automation (
prepare-release,publish-candidate,finalize-release,promote-release) is tracked in #27 for a future session.Test plan
release.ymlpublishespy-materials-2.1.0to PyPIsync-main-to-devopens clean sync-back PR (no(conflicts)false-positive — validated on recent runs)Refs
🤖 Generated with Claude Code