~rjarry/dlrepo

Artifact repository
tag: add description
fs: allow disabling periodic cleanup
1140c1b3 — Thomas Faivre 2 days ago
requirements-dev: upgrade multidict to 6.0.5

clone

read-only
https://git.sr.ht/~rjarry/dlrepo
read/write
git@git.sr.ht:~rjarry/dlrepo

You can also use your local clone with git send-email.

#dlrepo

builds.sr.ht status

dlrepo is an artifact repository. It supports storing build artifacts (binary packages, documentation, vm images, container images, etc.) in a structured file system tree. It exposes an HTTP API to upload files, delete them, add metadata, etc. dlrepo does not use an external database. It does de-duplication of artifacts by the use of file system hard links.

#installation

pip install dlrepo

Or, as root on Debian testing:

curl -L https://repo.diabeteman.com/static/key.asc > /etc/apt/trusted.gpg.d/repo-diabeteman-com.asc
echo "deb https://repo.diabeteman.com/products/dlrepo/all/main/0.x/deb/ /" > /etc/apt/sources.list.d/dlrepo.list
apt update
apt install dlrepo

#development quickstart

sudo apt install libldap2-dev libsasl2-dev python3-dev python3-pip python3-venv sassc
git clone https://git.sr.ht/~rjarry/dlrepo
cd dlrepo
make lint tests
make run

#documentation

#contributing

Anyone can contribute to dlrepo:

  • Clone the repository.
  • Patch the code.
  • Make some tests.
  • Ensure that your code is properly formatted with black (make format).
  • Ensure that the linters are happy (make lint).
  • Ensure that everything works as expected.
  • Ensure that you did not break anything.
  • If applicable, update unit tests.
  • If adding a new feature, please consider adding new tests.
  • Do not forget to update the docs.

Once you are happy with your work, you can create a commit (or several commits). Follow these general rules:

  • Limit the first line (title) of the commit message to 60 characters.
  • Use a short prefix for the commit title for readability with git log --oneline.
  • Use the body of the commit message to actually explain what your patch does and why it is useful.
  • Address only one issue/topic per commit.
  • If you are fixing a ticket, use appropriate commit trailers.
  • If you are fixing a regression introduced by another commit, add a Fixes: trailer with the commit id and its title.

There is a great reference for commit messages in the Linux kernel documentation.

Before sending the patch, you should configure your local clone with sane defaults:

git config format.subjectPrefix "PATCH dlrepo"
git config sendemail.to "~rjarry/dlrepo@lists.sr.ht"

And send the patch to the mailing list:

git sendemail --annotate -1

Wait for feedback. Address comments and amend changes to your original commit. Then you should send a v2:

git sendemail --in-reply-to=$first_message_id --annotate -v2 -1

Once the maintainer is happy with your patch, they will apply it and push it.

#resources