Development Sandbox

This walkthrough uses the uv package manager for performance reasons. You can also use different methods to set up your workbench environment.

Install

Acquire source code and set up virtualenv.

git clone https://codeberg.org/sarcam/nauscopia.git
cd nauscopia
uv venv --python 3.12
source .venv/bin/activate

Install project in editable mode.

uv pip install --editable='.[all]'

Tests

Invoke linters and software tests. The same command will also be invoked on CI.

poe check

Code Formatting

The project exclusively uses ruff for linting and code formatting, for performance reasons.

poe format

Packaging

PyPI

How to build and publish the PyPI package.

# Update the changelog file.
nano CHANGES.md
git commit --message "Release v0.0.0"

# Tag the repository.
git tag v0.0.1
git push && git push --tags

# Build and upload package.
poe release

OCI

How to build a local OCI image.

export BUILDKIT_PROGRESS=plain
docker build -t nauscopia:dev .

Validate OCI image.

docker run --rm -it nauscopia:dev nauscopia --version

User Testing

Before publishing GA packages, you can easily consume and distribute pre-release builds, both for Python packages, and OCI images.

Those commands outline how to install / use code from the fictional new-feature branch.

pip install git+https://codeberg.org/sarcam/nauscopia.git@new-feature
docker run --rm -it codeberg.org/sarcam/nauscopia:new-feature nauscopia --version