Skip to content

Commit e5cb2d8

Browse files
pacospacemurdaca
andauthored
chore: release 0.2.0 (#20)
Co-authored-by: Francesco Murdaca <francesco.murdaca@eumetsat.int>
1 parent f73be45 commit e5cb2d8

4 files changed

Lines changed: 122 additions & 36 deletions

File tree

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
All notable changes to this project are documented in this file.
44

5+
6+
# 0.2.0(2026-04-27)
7+
8+
### Features
9+
10+
- Enable with syntax using the new MetopReader.dataset method. ([#17](https://github.com/eumetsat/MetopPy/pull/17)) ([938fe62](https://github.com/eumetsat/MetopPy/commit/acb2a3a795160f02826ce5a1bd1c8abea11a9a40))
11+
12+
513
# 0.1.0 (2025-11-06)
614

715
First release of metoppy Python package.

RELEASING.md

Lines changed: 112 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,70 @@
11
# Releasing metoppy
22

3-
0. Make sure the code references the correct new version you want in the pyproject.yaml and in the __init__.py
4-
1. checkout main branch: `git checkout main`
5-
2. pull from repo: `git pull`
6-
3. run the unittests with pytest.
7-
4. Update the `CHANGELOG.md` file using vim or similar. (`source REPO_URL="https://github.com/eumetsat/MetopPy"`, then `git log --pretty=format:"- %s ([%h]($REPO_URL/commit/%H)) (%an, %ad)" --date=short > CHANGELOG_UNRELEASED.md` You can use `git log $(git describe --tags --abbrev=0)..HEAD --pretty=format:"- %s (%h)" > CHANGELOG_UNRELEASED.md` to generate the list of commits and PR used also)
3+
## Prepare changelog and tag
4+
5+
### 0. Pull latest main and create new branch
6+
```bash
7+
git checkout main
8+
git pull
9+
git checkout -b release/vX.Y.Z
810
```
9-
### Bug Fixes
10-
* Force ansible roles download when new versions exist ([#22](https://github.com/ewcloud/ewccli/pull/22)) ([#3](https://github.com/ewcloud/ewccli/issues/3)) ([9263391](https://github.com/ewcloud/ewccli/commit/92633917a71d3cf5cf6aea23f4fef83e052f3f92))
11-
* Remove dependency not used ([#19](https://github.com/ewcloud/ewccli/pull/19)) ([#6](https://github.com/ewcloud/ewccli/issues/6)) ([d44135b](https://github.com/ewcloud/ewccli/commit/d44135bbaf8864722dc324f201d0ad4f61c5a89d))
11+
12+
### 1. Prepare the version bump
13+
14+
Update the version in:
15+
16+
- `pyproject.toml`
17+
- `metoppy/__init__.py`
18+
19+
### 2. Run the full test suite (it will be run also in the PR but anyway)
20+
```bash
21+
pytest
22+
```
23+
24+
### 3. Update the CHANGELOG
25+
Generate the list of commits since the last tag and update the `CHANGELOG.md` file using vim or similar. (You can use for example `git log $(git describe --tags --abbrev=0)..HEAD --pretty=format:"- %s (%h)" > CHANGELOG_UNRELEASED.md` to generate the list of commits and PR used also)
26+
```
27+
### Features
28+
29+
- Enable with syntax using the new MetopReader.dataset method. ([#17](https://github.com/eumetsat/MetopPy/pull/17)) ([938fe62](https://github.com/eumetsat/MetopPy/commit/acb2a3a795160f02826ce5a1bd1c8abea11a9a40))
30+
```
31+
32+
### 4. Commit the release changes
33+
```bash
34+
git add CHANGELOG.md pyproject.toml metoppy/__init__.py
35+
git commit --cleanup=whitespace -m "chore: release X.Y.Z"
1236
```
13-
5. git add CHANGELOG.md
14-
6. git commit --cleanup=whitespace # commit title and body to be added. Example below:
37+
1538
```
1639
chore: 0.2.0 [skip ci]
1740
18-
# [0.2.0](https://github.com/ewcloud/ewccli/compare/0.1.1...0.2.0) (2025-10-14)
41+
# [0.2.0](https://github.com/ewcloud/metoppy/compare/0.1.1...0.2.0) (2025-10-14)
1942
2043
### Features
2144
22-
- feat: Use defaultSecurityGroups and checkDNS from items index [b77b43b](https://github.com/ewcloud/ewccli/commit/b77b43b3916438e476606b58b965712bc08a407d)
23-
- feat: Introduce checkDNS for items ([#29](https://github.com/ewcloud/ewccli/pull/29)) [7f98a6a](https://github.com/ewcloud/ewccli/commit/7f98a6ab9dcb96825f259663aac8445daaee1b1d)
24-
- feat: bump versions ([#26](https://github.com/ewcloud/ewccli/pull/26)) [78adb02](https://github.com/ewcloud/ewccli/commit/78adb024771c7a3bc8da83c1325c51a171259557)
45+
- feat: Use defaultSecurityGroups and checkDNS from items index [b77b43b](https://github.com/ewcloud/metoppy/commit/b77b43b3916438e476606b58b965712bc08a407d)
46+
- feat: Introduce checkDNS for items ([#29](https://github.com/ewcloud/metoppy/pull/29)) [7f98a6a](https://github.com/ewcloud/metoppy/commit/7f98a6ab9dcb96825f259663aac8445daaee1b1d)
47+
- feat: bump versions ([#26](https://github.com/ewcloud/metoppy/pull/26)) [78adb02](https://github.com/ewcloud/metoppy/commit/78adb024771c7a3bc8da83c1325c51a171259557)
2548
2649
### Bug Fixes
27-
- fix: Set DNS check to 15 minutes [9f24e2f](https://github.com/ewcloud/ewccli/commit/9f24e2f5a7584db980eb0863fc9ab57521536151)
28-
- fix: ewc hub list command item name should show all name always ([#25](https://github.com/ewcloud/ewccli/pull/25)) [e4869fc](https://github.com/ewcloud/ewccli/commit/e4869fcd4757910160ec68894417fae76ca622b5)
50+
- fix: Set DNS check to 15 minutes [9f24e2f](https://github.com/ewcloud/metoppy/commit/9f24e2f5a7584db980eb0863fc9ab57521536151)
51+
- fix: ewc hub list command item name should show all name always ([#25](https://github.com/ewcloud/metoppy/pull/25)) [e4869fc](https://github.com/ewcloud/metoppy/commit/e4869fcd4757910160ec68894417fae76ca622b5)
52+
```
53+
54+
### 5. Open a Pull Request titled: `Release X.Y.Z`and Request review from a colleague.
55+
Push your branch:
56+
57+
```bash
58+
git push -u origin release/vX.Y.Z
59+
2960
```
30-
7. Create a tag with the new version number, eg:
61+
62+
### 6. Once approved and CI pass, merge the PR.
63+
64+
### 7. Pull the updated main locally and create a tag with the new version number, eg:
3165

3266
```
33-
git tag -a <new version> -m "Version <new version>"
67+
git tag -a <X.Y.Z> -m "Version <X.Y.Z>"
3468
```
3569

3670
For example if the previous tag was `0.1.1` and the new release is a
@@ -42,23 +76,15 @@ chore: 0.2.0 [skip ci]
4276

4377
See [semver.org](http://semver.org/) on how to write a version number.
4478

45-
8. Push commits `git push`
46-
9. Push tags to github `git push --follow-tags`
47-
10. Verify github action unittests passed.
48-
11. Create a "Release" on GitHub by going to
49-
https://github.com/eumetsat/MetopDatasets.jl/releases and clicking "Draft a new release".
50-
On the next page enter the newly created tag in the "Tag version" field,
51-
"Version X.Y.Z" in the "Release title" field, and paste the markdown from
52-
the changelog (the portion under the version section header) in the
53-
"Describe this release" box. Finally click "Publish release".
79+
### 8. Push tags to GitHub `git push --follow-tags`
5480

55-
12. Now you can start the process to release on PyPI (only admins)
81+
## Release on PyPI (only admins with PyPI keys)
5682

57-
12.1 Build package
83+
### 1. Build package
5884

59-
Now generate the distribution. To build the package, use PyPA build.
85+
To build the package and generate the distribution, use PyPA build.
6086

61-
1. Install the build tool
87+
#### 1.1. Install the build tool
6288
```bash
6389
pip install -q build
6490
```
@@ -69,9 +95,9 @@ python3 -m build
6995

7096
you will end up with a `/dist` file. The .whl file and .tar.gz can then be distributed and installed or pushed to PyPI.
7197

72-
9.2 Push package to PyPI
98+
### 2. Push package to TestPyPI
7399

74-
Install twine
100+
#### 2.1. Install twine
75101
```bash
76102
pip install twine
77103
```
@@ -81,8 +107,60 @@ If you want to test first, use TestPyPI:
81107
twine upload --repository testpypi dist/*
82108
```
83109

110+
You'll be prompted for your TestPyPI username & password.
111+
112+
Once done check on [TestPyPI](https://test.pypi.org/).
113+
114+
### 3. Push package to PyPI
115+
84116
To upload your package to PyPI, use Twine:
85117
```bash
86118
twine upload dist/*
87119
```
88-
You'll be prompted for your PyPI username & password.
120+
You'll be prompted for your PyPI username & password.
121+
122+
## Release on conda-forge (only admins) NOT AVAILABLE YET, SKIP FOR NOW.
123+
124+
Once release is on PyPI, you can create the change on conda-forge (only admins) https://www.pyopensci.org/python-package-guide/tutorials/publish-conda-forge.html#
125+
126+
Step 1: Install grayskull
127+
128+
```bash
129+
pip install grayskull
130+
```
131+
132+
Step 2: Fork and clone the conda-forge staged-recipes repository
133+
134+
```bash
135+
git clone git@github.com:conda-forge/staged-recipes.git
136+
```
137+
138+
Step 3: Create your conda-forge recipe
139+
140+
```bash
141+
cd staged-recipes/
142+
```
143+
144+
```bash
145+
cd examples/
146+
```
147+
148+
```bash
149+
grayskull pypi metoppy
150+
```
151+
152+
When you run grayskull, it will grab the latest distribution of your package from PyPI and will use that to create a new recipe.
153+
154+
The recipe will be saved in a directory named after your package’s name, wherever you run the command.
155+
156+
recipes/packagename/meta.yaml
157+
158+
Step 3b: Bug fix - add a home url to the about: section
159+
160+
There is currently a small bug in Grayskull where it doesn’t populate the home: element of the recipe. If you don’t include this, you will receive an error message from the friendly conda-forge linter bot.
161+
162+
Step 4: tests for conda-forge
163+
164+
If you need to
165+
166+
Step 4: Submit a pull request to the staged-recipes repository

metoppy/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"""Metoppy package initialization."""
1212

1313
# Optional: version info
14-
__version__ = "0.1.1"
14+
__version__ = "0.2.0"
1515

1616
# Import main classes/functions
1717
from .metopreader import MetopReader

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "metoppy"
3-
version = "0.1.1"
3+
version = "0.2.0"
44
description = "Python package wrapper of MetopDatasets.jl Julia package for reading products from the METOP satellites."
55
authors = [
66
{ name = "Simon Kok Lupemba", email = "simon.koklupemba@eumetsat.int" },

0 commit comments

Comments
 (0)