Page MenuHomeSoftware Heritage

README.rst
No OneTemporary

README.rst

Software Heritage virtual environment packaging manifests
=========================================================
This repository contains the manifests and scripts to automate the packaging of
SWH applications into (fairly) reproducible Python virtual environments, and
then onto container images.
Problem statement
-----------------
To move away from our legacy Debian-based packaging and deployment workflow, we
are using Python virtual environments to generate (fairly) reproducible
deployment environments, that would be consistent between:
- docker-based local environments
- "bare VM/Metal" deployments (on Debian systems still managed by puppet)
- elastic deployments based on k8s
- CI environments used for testing packages
We want the input for generating these environments to be declarative (for
instance, "I want an environment with ``swh.provenance``"), and the resulting
environments to be:
- frozen (using a consistent, known set of package versions)
- kept up to date automatically (for our swh packages, as well as the external
dependencies)
- tested before publication (at least to a minimal extent, e.g. ensuring that
the tests of the declared input modules are successful before tagging an
application as ready to deploy)
Packaging Workflow
------------------
Each standalone application is generated from an input ``requirements.txt``
file. Out of this, a virtualenv is generated and frozen into a
``requirements-frozen.txt`` file, which is then used to build container images
(when associated with a ``Dockerfile`` and an entry point script).
The frozen requirements file can also be used to deploy virtual environments
directly, e.g. on an existing VM or bare metal server.

File Metadata

Mime Type
text/plain
Expires
Jun 4 2025, 7:42 PM (10 w, 3 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3213697

Event Timeline