Skip to content

Commit

Permalink
Getting ready for release 0.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
FrancescAlted committed Sep 13, 2023
1 parent 2020925 commit 77e07d8
Show file tree
Hide file tree
Showing 7 changed files with 167 additions and 12 deletions.
44 changes: 44 additions & 0 deletions ANNOUNCE.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
Announcing Blosc2-OpenHTJ2K 0.1.0
=================================

This is the first public release. This provides the ability to use the
[OpenHTJ2K](https://github.com/osamu620/OpenHTJ2K) codec as dynamic plugin
for Blosc2.

For more info, you can have a look at the release notes in:

https://github.com/Blosc/blosc2_openhtj2k/releases

More info and examples are available in the README:

https://github.com/Blosc/blosc2_openhtj2k#readme

## What is it?

Blosc2-OpenHTJ2K is a dynamic codec plugin for Blosc2 that allows to compress and decompress images
using the High Throughput JPEG 2000 standard. The HT version brings increased performance
when compared to the traditional JPEG 2000. For details, check the
[HTJ2K whitepaper](https://ds.jpeg.org/whitepapers/jpeg-htj2k-whitepaper.pdf).

To provide this feature this plugin uses the
[OpenHTJ2K](https://github.com/osamu620/OpenHTJ2K) library.

## Sources repository

The sources and documentation are managed through github services at:

https://github.com/Blosc/blosc2_openhtj2k

blosc2_openhtj2k is distributed using the BSD license, see
https://github.com/Blosc/blosc2_openhtj2k/blob/main/LICENSE.txt
for details.


## Mastodon feed

Please follow https://fosstodon.org/@Blosc2 to get informed about the latest
developments.


- The Blosc Development Team
We make compression better
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

This is a dynamic codec plugin for Blosc2 that allows to compress and decompress images
using the High Throughput JPEG 2000 standard. The HT version brings increased performance
when compared to the traditional JPEG 2000, for details check the
when compared to the traditional JPEG 2000. For details, check the
[HTJ2K whitepaper](https://ds.jpeg.org/whitepapers/jpeg-htj2k-whitepaper.pdf).

To provide this feature this plugin uses the
Expand All @@ -14,7 +14,7 @@ The Blosc2 OpenHTJ2K plugin is distributed as a Python wheel:

pip install blosc2-openhtj2k

There are wheels for Linux, macOS and Windows. As of now only the x86-64 architecture is
There are wheels for Linux, macOS and Windows. As of now, only the x86-64 architecture is
supported.

# Usage from Python
Expand Down
4 changes: 4 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Release notes

## Initial version 0.1.0

109 changes: 109 additions & 0 deletions RELEASING.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
blosc2-openhtj2k release procedure
==================================

Preliminaries
-------------

* Check that `version` is correct in `pyproject.toml` file, and in sync with
`blosc2_openhtj2k/__init__.py`.

* Make sure that the `src/OpenHTJ2K` submodule is updated to the latest version
(or a specific version that should be documented in the `RELEASE_NOTES.md`)::

cd src/OpenHTJ2K
git pull
git checkout <desired tag>
cd ../..
git commit -m "Update OpenHTJ2K sources" src/OpenHTJ2K
git push

* Check that the current main branch is passing the tests in continuous integration.

* Build the package and make sure that examples work correctly::

cd examples
python compress.py kodim23.png /tmp/kodim23.b2nd
python decompress.py /tmp/kodim23.b2nd /tmp/kodim23.png

* Make sure that `RELEASE_NOTES.md` and `ANNOUNCE.rst` are up to date with the latest news
in the release.

* Commit the changes::

git commit -a -m "Getting ready for release X.Y.Z"
git push

* Double check that the supported Python versions for the wheels are the correct ones
(`.github/workflows/cibuildwheels.yml`). Add/remove Python version if needed.
Also, update the `classifiers` field for the supported Python versions.

* Check that the metainfo for the package is correct::

python -m build --sdist
twine check dist/*


Tagging
-------

* Create a (signed, if possible) tag ``X.Y.Z`` from ``main``. Use the next message::

git tag -a vX.Y.Z -m "Tagging version X.Y.Z"

* Push the tag to the github repo::

git push --tags


Checking packaging
------------------

* Do an actual release in github by visiting:
https://github.com/Blosc/blosc2_openhtj2k/releases/new
Add the notes specific for this release.
This will upload the wheels to PyPI too.

* Check that the package (and wheels!) have been uploaded to PyPI
(they should have been created when GHA would finish the tag trigger):
https://pypi.org/project/blosc2-openhtj2k

* Check that the packages and wheels are sane::

python -m pip install blosc2-openhtj2k -U
cd examples
python compress.py kodim23.png /tmp/kodim23.b2nd
python decompress.py /tmp/kodim23.b2nd /tmp/kodim23.png


Announcing
----------

* Send an announcement to the Blosc list. Use the ``ANNOUNCE.rst`` file as skeleton
(or possibly as the definitive version). Start the subject with ANN:.

* Announce in https://fosstodon.org/@Blosc2 account and rejoice.


Post-release actions
--------------------

* Change back to the actual repo::

cd $HOME/blosc/blosc2-openhtj2k

* Create new headers for adding new features in ``RELEASE_NOTES.md``
add this place-holder:

XXX version-specific blurb XXX

* Edit `version` in `pyproject.toml` file, and sync it with
`blosc2_openhtj2k/__init__.py` in main branch. Increment it to the next
minor one (i.e. X.Y.Z --> X.Y.(Z+1).dev0).

* Commit your changes with::

git commit -a -m "Post X.Y.Z release actions done"
git push


That's all folks!
1 change: 1 addition & 0 deletions blosc2_openhtj2k/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import platform
from pathlib import Path

__version__ = "0.1.0"

def get_libpath():
system = platform.system()
Expand Down
16 changes: 6 additions & 10 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,13 @@ build-backend = "scikit_build_core.build"

[project]
name = "blosc2_openhtj2k"
version = "0.0.1"
dynamic = ["readme"]
authors = [
{name = "Blosc Development Team", email = "[email protected]"},
]
description = "My package description"
keywords = ["plugin", "blosc2"]
version = "0.1.0"
description = "Plugin of the OpenHTJ2K codec for the C-Blosc2 library"
authors = [{name = "Blosc Development Team", email = "[email protected]"}]
maintainers = [{ name = "Blosc Development Team", email = "[email protected]"}]
license = {text = "BSD-3-Clause"}
readme = "README.md"
keywords = ["plugin", "blosc2"]
classifiers = [
"Programming Language :: Python :: 3",
"Development Status :: 3 - Alpha",
Expand All @@ -35,9 +34,6 @@ dependencies = [
"blosc2"
]

[tool.setuptools.dynamic]
readme = {file = ["README.md"], content-type = "text/markdown"}

[tool.setuptools]
platforms = [ "any" ]
zip-safe = false
Expand Down
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

from skbuild import setup


setup(
name="blosc2_openhtj2k",
packages=["blosc2_openhtj2k"],
Expand Down

0 comments on commit 77e07d8

Please sign in to comment.