unifiedwvalticolocs
Very first steps
Initialize your code
- Initialize
gitinside your repo:
cd unifiedwvalticolocs && git init
- Create a virtual environment and install the project in editable mode with its dev dependencies:
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
(any Python 3.11+ environment works — venv, conda/micromamba, or uv venv)
- Install
pre-commithooks:
pre-commit install
- Run the codestyle:
pre-commit run --all-files
- Upload initial code to GitHub:
git add .
git commit -m ":tada: Initial commit"
git branch -M main
git remote add origin https://github.com/umr-lops/unifiedwvalticolocs.git
git push -u origin main
Set up bots
- Set up Dependabot to ensure you have the latest dependencies.
- Set up Stale bot for automatic issue closing.
Packaging: Hatchling
The project is packaged with Hatchling as the build backend, with hatch-vcs deriving the package version straight from git tags — there's no version to bump by hand in pyproject.toml.
Details about the build backend
Everything project- and dependency-related lives in pyproject.toml under the standard [project] table (PEP 621) — no separate setup.cfg or lockfile-driven workflow. Useful commands:
pip install -e ".[dev]"— editable install with dev toolspytest— run testspython -m build— build sdist + wheeltwine upload dist/*— publish to PyPI
If you use uv instead of plain pip, the equivalents are uv pip install -e ".[dev]" and uv build.
Building and releasing your package
Building a new version of the application contains steps:
- Tag the commit with the new version, e.g.
git tag 2026.5.1(hatch-vcs reads this to set the package version — no file to edit). Follow Semantic Versions for the tag name. - Push the tag to
GitHub:git push origin 2026.5.1. - Create a
GitHub releasefrom that tag. - Build and publish:
python -m build && twine upload dist/*(oruv build && uv publish).
🎯 What's next
Well, that's up to you 💪🏻. I can only recommend the packages and articles that helped me.
Typeris great for creating CLI applications.Richmakes it easy to add beautiful formatting in the terminal.Pydantic– data validation and settings management using Python type hinting.Logurumakes logging (stupidly) simple.tqdm– fast, extensible progress bar for Python and CLI.IceCreamis a little library for sweet and creamy debugging.orjson– ultra fast JSON parsing library.Returnsmakes you function's output meaningful, typed, and safe!Hydrais a framework for elegantly configuring complex applications.FastAPIis a type-driven asynchronous web framework.
Articles:
- Open Source Guides.
- A handy guide to financial support for open source
- GitHub Actions Documentation.
- Maybe you would like to add gitmoji to commit names. This is really funny. 😄
🚀 Features
Development features
- Supports
Python 3.11and higher. Hatchlingas the build backend, withhatch-vcsfor git-tag-based versioning. See configuration inpyproject.toml.- Automatic codestyle with
black,isortandpyupgrade. - Ready-to-use
pre-commithooks with code-formatting. - Type checks with
mypy; docstring checks withdarglint; security checks withsafetyandbandit - Testing with
pytest. - Ready-to-use
.editorconfigand.gitignore. You don't have to worry about those things.
Deployment features
GitHubintegration: issue and pr templates.Github Actionswith predefined build workflow as the default CI/CD.- Everything is already set up for security checks, codestyle checks, code formatting, testing, linting, etc with
Makefile. More details in makefile-usage. - Apptainer image definition in
apptainer.deffor HPC runs. - Always up-to-date dependencies with
@dependabot. You will only enable it. - Automatic drafts of new releases with
Release Drafter. You may see the list of labels inrelease-drafter.yml. Works perfectly with Semantic Versions specification.
Open source community features
- Ready-to-use Pull Requests templates and several Issue templates.
- Files such as:
LICENSE,CONTRIBUTING.md,CODE_OF_CONDUCT.md, andSECURITY.mdare generated automatically. Stale botthat closes abandoned issues after a period of inactivity. (You will only need to setup free plan). Configuration is here.- Semantic Versions specification with
Release Drafter.
Installation
pip install -U unifiedwvalticolocs
or with uv:
uv pip install -U unifiedwvalticolocs
For development (editable install with dev tools):
pip install -e ".[dev]"
Makefile usage
Makefile contains a lot of functions for faster development.
1. Install all dependencies and pre-commit hooks
Install requirements:
make install
Pre-commit hooks could be installed after git init via
make pre-commit-install
2. Codestyle
Automatic formatting uses pyupgrade, isort and black.
make codestyle
# or use synonym
make formatting
Codestyle checks only, without rewriting files:
make check-codestyle
Note:
check-codestyleusesisort,blackanddarglintlibrary
Update all dev libraries to the latest version using one command
make update-dev-deps
3. Code security
make check-safety
This command identifies security issues with Safety and Bandit.
4. Type checks
Run mypy static type checker
make mypy
5. Tests with coverage badges
Run pytest
make test
6. All linters
Of course there is a command to rule run all linters in one:
make lint
the same as:
make test && make check-codestyle && make mypy && make check-safety
7. Cleanup
Delete pycache files
make pycache-remove
Remove package build
make build-remove
Delete .DS_STORE files
make dsstore-remove
Remove .mypycache
make mypycache-remove
Or to remove all above run:
make cleanup
📈 Releases
You can see the list of available releases on the GitHub Releases page.
We follow Semantic Versions specification. Versions are tagged in git and read automatically at build time by hatch-vcs — there is no version field to update by hand.
We use Release Drafter. As pull requests are merged, a draft release is kept up-to-date listing the changes, ready to publish when you're ready. With the categories option, you can categorize pull requests in release notes using labels.
List of labels and corresponding titles
| Label | Title in Releases |
|---|---|
enhancement, feature |
🚀 Features |
bug, refactoring, bugfix, fix |
🔧 Fixes & Refactoring |
build, ci, testing |
📦 Build System & CI/CD |
breaking |
💥 Breaking Changes |
documentation |
📝 Documentation |
dependencies |
⬆️ Dependencies updates |
You can update it in release-drafter.yml.
GitHub creates the bug, enhancement, and documentation labels for you. Dependabot creates the dependencies label. Create the remaining labels on the Issues tab of your GitHub repository, when you need them.
🛡 License
This project is licensed under the terms of the MIT license. See LICENSE for more details.
📃 Citation
@misc{unifiedwvalticolocs,
author = {umr-lops},
title = {lib python to generate colocs S1 WV with CMEMS or CCI seatstate altimeters},
year = {2026},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/umr-lops/unifiedwvalticolocs}}
}
Credits 
This project was generated with python-package-template
Metadata
Release files for unifiedwvalticolocs 2026.10.6.post1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| unifiedwvalticolocs-2026.10.6.post1.tar.gz | 678.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| unifiedwvalticolocs-2026.10.6.post1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / unifiedwvalticolocs-2026.10.6.post1.tar.gz
| Download URL | unifiedwvalticolocs-2026.10.6.post1.tar.gz |
|---|---|
| Size | 678.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bbf46914321f08779fe8ff7327bfc195e121e90e05fe4d4034ef1d05128327cc
|
|
BLAKE2b-256 checksum How to use checksums |
872080116031d38ad4c1124a3a5ed237e22cd41bc6caf54aeec365020e7e0b44
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / unifiedwvalticolocs-2026.10.6.post1-py3-none-any.whl
| Download URL | unifiedwvalticolocs-2026.10.6.post1-py3-none-any.whl |
|---|---|
| Size | 663.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bda262839dd60f34aad53f8eea06edad8f8898cb5b6b2f0d155305aefac230c9
|
|
BLAKE2b-256 checksum How to use checksums |
f246498aec1e72e18e6298f5f51f21a0a1049bc19bf7f47559fa8a27ad7ef644
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency log