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
27 changes: 27 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Changelog

Notable changes to sequince-density are documented in this file.

The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

## [Unreleased]

## [0.1.0b1] - 2026-10-27

First public beta release.

### Added

- Normalizing-flow adapters for Zuko (PyTorch) and FlowJAX (JAX), supporting
fitting, sampling, density evaluation, and forward/inverse transformations.
- Gaussian-mixture proposals fitted with scikit-learn, using full covariance
matrices and equal-weight training populations. Fitting and density evaluation
use NumPy on the CPU.
- Integration with Sequince's `FlowProposal` and `FlowTransform` for fitted
starting proposals and flow-preconditioned mutation.
- Explicit RNG arguments for fitting and sampling, and checkpoint restoration of
fitted models, particle transforms, and training histories. FlowJAX checkpoints
also preserve the internal random key.

[Unreleased]: https://github.com/sequince-dev/sequince-density/compare/v0.1.0b1...HEAD
[0.1.0b1]: https://github.com/sequince-dev/sequince-density/releases/tag/v0.1.0b1
40 changes: 36 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,10 @@ should also follow this format and describe the final change.

## Pull requests and review

For each pull request with user-visible changes, update
[CHANGELOG.md][changelog] under `Unreleased` in the same pull request. Follow
the entry categories and guidance in the releases section below.

Push your branch and open a pull request targeting `sequince-dev/sequince-density:main`:

```bash
Expand All @@ -332,13 +336,41 @@ needed.

## Releases

Maintain [CHANGELOG.md][changelog] using
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Add user-visible changes
under `Unreleased`, grouped as `Added`, `Changed`, `Deprecated`, `Removed`,
`Fixed`, or `Security`; omit empty groups. For the first release, summarize the
initial features under `Added`. Describe the
effect on users, especially changes to densities, weighting, RNG behaviour,
APIs, or checkpoint compatibility. Routine internal refactoring and CI
maintenance do not normally need entries.

Releases are coordinated by maintainers. Versions are derived from Git tags by
`setuptools-scm`; do not maintain a separate hard-coded version number. Use tags
such as `v0.1.0` and release notes describing user-visible changes and any
incompatibilities.

Until the first release, keep the initial feature summary under `Unreleased`
and link that heading to the repository's commit history. When preparing a
release, move the unreleased entries into a section headed
`## [VERSION] - YYYY-MM-DD`, using the actual release date, and leave a fresh
`Unreleased` section at the top. For the first beta, use a PEP 440 version such
as `0.1.0b1` with the Git tag `v0.1.0b1`. Link its heading to the GitHub release,
and update the `Unreleased` link to compare that tag with `HEAD`. For later
releases, link each version heading to the comparison with the preceding tag.
Use the version's changelog section as the GitHub release notes, and mark beta
releases as prereleases on GitHub.

Before publishing, verify the intended commit, applicable CI results, and the
built distribution in a clean environment. Publishing a GitHub release triggers
the PyPI workflow in `.github/workflows/publish.yml`. Check that the workflow
completes successfully. Published distributions cannot be overwritten, so verify
the tag and artifacts before publishing.
built distribution in a clean environment. Check that the package version matches
the intended tag, run `python -m twine check --strict dist/*`, and verify wheel
installation with each supported extra independently. Confirm that the GitHub
`release` environment and PyPI trusted publisher are configured for this
repository.

Publishing a GitHub release triggers the PyPI workflow in
`.github/workflows/publish.yml`. Check that the workflow completes successfully
and the published package can be installed from PyPI. Published distributions
cannot be overwritten, so verify the tag and artifacts before publishing.

[changelog]: https://github.com/sequince-dev/sequince-density/blob/main/CHANGELOG.md
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,8 @@ Full proposal examples will be linked here once published in
See the [sequince density documentation](https://sequince.readthedocs.io/projects/sequince-density/en/latest/) for installation,
density fitting, and integration with Sequince proposals and transforms.

See the [changelog](CHANGELOG.md) for release notes and unreleased changes.

## Examples

The [`sequince-examples`](https://github.com/sequince-dev/sequince-examples)
Expand Down
2 changes: 2 additions & 0 deletions docs/changelog.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.. include:: ../CHANGELOG.md
:parser: myst_parser.sphinx_
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Features
gaussian_mixtures
proposals
examples
changelog
API reference <autoapi/sequince_density/index>
developer_guide/index

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ dependencies = [
"array-api-compat>=1.5",
"numpy>=1.25.2",
"orng>=0.2.0a2",
"sequince",
"sequince>=0.1.0b1",
]
dynamic = [
"version"
Expand Down
Loading