Conversation
|
There's a few other things that we need to do before release:
This workflow seems to be a good use case for AI automation. We could write a skill or an agentic workflow for it on Github |
- Claude Code skill (.claude/skills/prepare-release/SKILL.md) that automates the pre-release checklist: changelog update, announcement banner update, local docs build verification, and draft GitHub release creation - GitHub Actions workflow (.github/workflows/prepare-release.yml) as an alternative agentic approach using claude-code-action with workflow_dispatch Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add v0.3.0 changelog entry to docs/changelog.md - Update announcement banner to v0.3.0 - Fix mkdocs.yml: rename `import` to `inventories` for mkdocstrings-python 2.0 - Add poisson_race.ipynb to mkdocs execute_ignore list - Add notebook check workflow step to prepare-release skill Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- bayesflow_lre_integration: rename classifier_network → inference_network for bayesflow dev branch API compatibility - initial_values: add cores=1, chains=1 to fix multiprocessing EOFError - plotting: fix missing comma after sampler="numpyro" - poisson_race: fix kernel spec hssm-dev → python3 - CI: add workshop_1 and workshop_2 notebooks to skip list - pyproject.toml: move bayesflow+keras to notebook dep group, remove bayesflow optional extra (not yet released on PyPI) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Provides project-scoped context: structure, tooling, dependency management, common commands, key API patterns, CI workflows, and known issues for better Claude Code assistance. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
|
@cpaniaguam @digicosmos86 please give this a glance for any final adjustments if necessary. Made a few improvements to tests, ran notebooks, docs adjusted and added a publication skill (that we likely want to iterate on a bit to perfect it) as well as a corresponding workflow (but I actually used the skill, workflow is just a placeholder for now). I also added a first version of a |
digicosmos86
left a comment
There was a problem hiding this comment.
LGTM! Just minor comments
| uv run pytest tests/ | ||
|
|
||
| # Run slow tests (marked with @pytest.mark.slow) | ||
| uv run pytest tests/ --runslow |
There was a problem hiding this comment.
I think this might have been hallucinated? Don't remember a --runslow handle here
There was a problem hiding this comment.
For this one uses the -m flag passing the "slow" value. So uv run pytest -m "slow".
| uv sync --group dev --group notebook --group docs | ||
|
|
||
| # Run tests | ||
| uv run pytest tests/ |
There was a problem hiding this comment.
We should add instructions about running fast tests here
| ## Known Issues / Notes | ||
|
|
||
| - **Multiprocessing in notebooks:** PyMC's NUTS sampler with `cores>1` can cause `EOFError` in notebook execution contexts. Fix by adding `cores=1, chains=1` to `sample()` calls. | ||
| - **bayesflow:** Currently installed from dev branch (`git+https://github.com/bayesflow-org/bayesflow@dev`) in the notebook group only, because PyPI release (2.0.8) doesn't yet include `RatioApproximator`. Not exposed as a user-facing optional extra until a stable release is available. |
There was a problem hiding this comment.
I don't think this should be in CLAUDE.md
|
|
||
| This version includes the following changes: | ||
|
|
||
| 1. Support for **choice-only models**: the HSSM class, data validator, distributions, and model configs now handle models without reaction times, including a softmax likelihood family. |
There was a problem hiding this comment.
"a softmax likelihood family" sounds very AI...
| 3. **Poisson Race model**: initial implementation of the Poisson race model. | ||
| 4. **Hidden Markov Model (HMM-SSM)** example notebook. | ||
| 5. **BayesFlow LRE integration** through HSSM for likelihood ratio estimation. | ||
| 6. **RLSSM config system**: new `RLSSMConfig` and `BaseModelConfig` classes with comprehensive validation, plus a generalized RL likelihood builder supporting multiple computed parameters. |
There was a problem hiding this comment.
I think we should leave this out until RLSSM is out
| You are preparing release v${{ inputs.version }} of the HSSM package. | ||
|
|
||
| ## Task 1: Update the changelog | ||
|
|
||
| 1. Find the latest git tag: `git tag --list 'v*' --sort=-version:refname | head -1` | ||
| 2. Gather changes: `git log <tag>..HEAD --oneline` | ||
| 3. Read `docs/changelog.md` to see the existing format | ||
| 4. Insert a new section after the `# Changelog` heading with this format: | ||
|
|
||
| ``` | ||
| ### ${{ inputs.version }} | ||
|
|
||
| This version includes the following changes: | ||
|
|
||
| 1. Human-readable description of change | ||
| 2. ... | ||
| ``` | ||
|
|
||
| Synthesize commits into user-facing descriptions. Focus on features, bug fixes, | ||
| and breaking changes. Skip CI-only changes. | ||
|
|
||
| ## Task 2: Update the announcement banner | ||
|
|
||
| Edit `docs/overrides/main.html`. Find the line with the version announcement | ||
| (pattern: `vX.Y.Z is released!`) and replace the version with v${{ inputs.version }}. | ||
|
|
||
| ## Important | ||
| - Changelog headings use NO "v" prefix (e.g., ### 0.3.0) | ||
| - Git tags use "v" prefix (e.g., v0.3.0) | ||
| - Only modify docs/changelog.md and docs/overrides/main.html |
There was a problem hiding this comment.
Should we just tell Claude to use the skill rather than providing a different context here?
|
|
||
| ```bash | ||
| # Install all dev dependencies | ||
| uv sync --group dev --group notebook --group docs |
There was a problem hiding this comment.
Here one can just use --all-groups.
| uv sync --group dev --group notebook --group docs | |
| uv sync --all-groups |
This pull request updates the project version in the
pyproject.tomlfile to reflect a new release.0.2.12to0.3.0inpyproject.toml.