Skip to content

Commit f7a1ae6

Browse files
authored
Release aftermath (#259)
1 parent 6d7a3f8 commit f7a1ae6

28 files changed

+126
-65
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ __pycache__
66
*.swp
77
*.swo
88
*DS_Store
9+
_version.py
910

1011
.tox/
1112
build/

CHANGELOG

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ The rules for CHANGELOG file:
1111

1212
.. inclusion-marker-changelog-start
1313

14+
Unreleased
15+
----------
16+
1417
0.3.0 (2025/06/12)
1518
------------------
1619
- Add ``_BasePCov`` class (#248)

CITATION.cff

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
cff-version: 1.2.0
2+
message: "If you use scikit-matter for your work, please read and cite it as below."
3+
title: >-
4+
scikit-matter : a suite of generalisable machine learning methods born out of chemistry and materials science [version 2; peer review: 3 approved, 1 approved with reservations]
5+
type: journalArticle
6+
issue: 81
7+
volume: 3
8+
authors:
9+
- family-names: Goscinski
10+
given-names: Alexander
11+
- family-names: Principe
12+
given-names: Victor P.
13+
- family-names: Fraux
14+
given-names: Guillaume
15+
- family-names: Kliavinek
16+
given-names: Sergei
17+
- family-names: Helfrecht
18+
given-names: Benjamin A.
19+
- family-names: Loche
20+
given-names: Philip
21+
- family-names: Ceriotti
22+
given-names: Michele
23+
- family-names: Cersonsky
24+
given-names: Rose K.
25+
date-published: 2023
26+
identifiers:
27+
- type: doi
28+
value: 10.12688/openreseurope.15789.2

MANIFEST.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
graft src
22

33
include LICENSE
4+
include CITATION.cff
45
include README.rst
56

67
prune docs

README.rst

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
scikit-matter
22
=============
3-
|tests| |codecov| |pypi| |conda| |docs| |doi|
3+
4+
|tests| |codecov| |pypi| |conda| |docs-stable| |docs-latest| |doi|
45

56
A collection of ``scikit-learn`` compatible utilities that implement methods born out of
67
the materials science and chemistry communities.
78

8-
For details, tutorials, and examples, please have a look at our `documentation`_.
9+
For details, tutorials, and examples, please have a look at our documentation_. We also
10+
provide a `latest documentation`_ from the current unreleased development version.
911

10-
.. _`documentation`: https://scikit-matter.readthedocs.io
12+
.. _`documentation`: https://scikit-matter.readthedocs.io/en/v0.3/
13+
.. _`latest documentation`: https://scikit-matter.readthedocs.io/en/latest
1114

1215
.. marker-installation
1316
@@ -98,9 +101,13 @@ Thanks goes to all people that make scikit-matter possible:
98101
:alt: Code coverage
99102
:target: https://codecov.io/gh/scikit-learn-contrib/scikit-matter/
100103

101-
.. |docs| image:: https://img.shields.io/badge/📚_documentation-latest-sucess
102-
:alt: Python
103-
:target: documentation_
104+
.. |docs-stable| image:: https://img.shields.io/badge/📚_Documentation-stable-sucess
105+
:alt: Documentation of stable released version
106+
:target: `documentation`_
107+
108+
.. |docs-latest| image:: https://img.shields.io/badge/📒_Documentation-latest-yellow.svg
109+
:alt: Documentation of latest unreleased version
110+
:target: `latest documentation`_
104111

105112
.. |pypi| image:: https://img.shields.io/pypi/v/skmatter.svg
106113
:alt: Latest PYPI version

docs/src/contributing.rst

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,3 +212,49 @@ properly. It should look something like this:
212212
213213
You're good to go! Time to submit a `pull request.
214214
<https://github.com/lab-cosmo/scikit-matter/pulls>`_
215+
216+
How to Perform a Release
217+
-------------------------
218+
219+
1. **Prepare a Release Pull Request**
220+
221+
- Based on the main branch create branch ``release-x.y.z`` and a PR.
222+
- Ensure that all `CI tests
223+
<https://github.com/scikit-learn-contrib/scikit-matter/actions>`_ pass.
224+
- Optionally, run the tests locally to double-check.
225+
226+
2. **Update the Changelog**
227+
228+
- Edit the changelog located in ``CHANGELOG``:
229+
- Add a new section for the new version, summarizing the changes based on the
230+
PRs merged since the last release.
231+
- Leave a placeholder section titled *Unreleased* for future updates.
232+
233+
3. **Merge the PR and Create a Tag**
234+
235+
- Merge the release PR.
236+
- Update the ``main`` branch and check that the latest commit is the release PR with
237+
``git log``
238+
- Create a tag on directly the ``main`` branch.
239+
- Push the tag to GitHub. For example for a release of version ``x.y.z``:
240+
241+
.. code-block:: bash
242+
243+
git checkout main
244+
git pull
245+
git tag -a vx.y.z -m "Release vx.y.z"
246+
git push --tags
247+
248+
4. **Finalize the GitHub Release**
249+
250+
- Once the PR is merged, the CI will automatically:
251+
- Publish the package to PyPI.
252+
- Create a draft release on GitHub.
253+
- Update the GitHub release notes by pasting the changelog for the version.
254+
255+
5. **Merge Conda Recipe Changes**
256+
257+
- May resolve and then merge an automatically created PR on the `conda recipe
258+
<https://github.com/conda-forge/skmatter-feedstock>`_.
259+
- Once thus PR is merged and the new version will be published automatically on the
260+
`conda-forge <https://anaconda.org/conda-forge/skmatter>`_ channel.

examples/neighbors/pamm.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
of the H-bond motif.
1818
"""
1919

20-
2120
# %%
2221
from typing import Callable, Union
2322

@@ -150,7 +149,6 @@ def _update_cluster_cov(
150149
idxroot: np.ndarray,
151150
center_idx: np.ndarray,
152151
):
153-
154152
if cell is not None:
155153
cov = _get_lcov_clusterp(
156154
len(X), nsamples, X, idxroot, center_idx[k], probs, cell
@@ -194,7 +192,6 @@ def _get_lcov_cluster(
194192
probs: np.ndarray,
195193
cell: np.ndarray,
196194
):
197-
198195
ww = np.zeros(N)
199196
normww = logsumexp(probs[clroots == idcl])
200197
ww[clroots == idcl] = np.exp(probs[clroots == idcl] - normww)
@@ -211,7 +208,6 @@ def _get_lcov_clusterp(
211208
probs: np.ndarray,
212209
cell: np.ndarray,
213210
):
214-
215211
ww = np.zeros(N)
216212
totnormp = logsumexp(probs)
217213
cov = np.zeros((x.shape[1], x.shape[1]), dtype=float)

examples/neighbors/sparse-kde.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
Here we first sample from these three Gaussians.
2121
"""
2222

23-
2423
# %%
2524
import time
2625

@@ -98,7 +97,6 @@
9897

9998
# %%
10099
class GaussianMixtureModel:
101-
102100
def __init__(
103101
self,
104102
weights: np.ndarray,
@@ -116,7 +114,6 @@ def __init__(
116114
self.norm = 1 / np.sqrt((2 * np.pi) ** self.dimension * self.cov_det)
117115

118116
def __call__(self, x: np.ndarray, i: int = None):
119-
120117
if len(x.shape) == 1:
121118
x = x[np.newaxis, :]
122119
if self.period is not None:

examples/pcovr/PCovR.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
# %%
99
#
1010

11-
1211
import numpy as np
1312
from matplotlib import cm
1413
from matplotlib import pyplot as plt

examples/pcovr/PCovR_Regressors.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
Choosing Different Regressors for PCovR
55
=======================================
66
"""
7+
78
# %%
89
#
910
import time

0 commit comments

Comments
 (0)