Packaging Guide¶
Releases¶
We release packages and upload them to PyPI (wheels and source tarballs).
- https://pypi.python.org/pypi/acme
- https://pypi.python.org/pypi/certbot
- https://pypi.python.org/pypi/certbot-apache
- https://pypi.python.org/pypi/certbot-nginx
- https://pypi.python.org/pypi/certbot-dns-cloudflare
- https://pypi.python.org/pypi/certbot-dns-cloudxns
- https://pypi.python.org/pypi/certbot-dns-digitalocean
- https://pypi.python.org/pypi/certbot-dns-dnsimple
- https://pypi.python.org/pypi/certbot-dns-dnsmadeeasy
- https://pypi.python.org/pypi/certbot-dns-google
- https://pypi.python.org/pypi/certbot-dns-linode
- https://pypi.python.org/pypi/certbot-dns-luadns
- https://pypi.python.org/pypi/certbot-dns-nsone
- https://pypi.python.org/pypi/certbot-dns-ovh
- https://pypi.python.org/pypi/certbot-dns-rfc2136
- https://pypi.python.org/pypi/certbot-dns-route53
The following scripts are used in the process:
We use git tags to identify releases, using Semantic Versioning. For
example: v0.11.1.
Notes for package maintainers¶
- Please use our tagged releases, not
master! - Do not package
certbot-compatibility-testorletshelp-certbot- it’s only used internally. - To run tests on our packages, you should use
python setup.py test. Doing things like runningpytestdirectly on our package files may not work because Certbot relies on setuptools to register and find its plugins. - If you’d like to include automated renewal in your package
certbot renew -qshould be added to crontab or systemd timer. Additionally you should include a random per-machine time offset to avoid having a large number of your clients hit Let’s Encrypt’s servers simultaneously. jwsis an internal script foracmemodule and it doesn’t have to be packaged - it’s mostly for debugging: you can use it asecho foo | jws sign | jws verify.- Do get in touch with us. We are happy to make any changes that will make packaging easier. If you need to apply some patches don’t do it downstream - make a PR here.