lp-mailman:master

Last commit made on 2023-10-03
Get this branch:
git clone -b master https://git.launchpad.net/lp-mailman
Members of Canonical Launchpad Engineering can upload to this branch. Log in for directions.

Branch merges

Branch information

Name:
master
Repository:
lp:lp-mailman

Recent commits

04e83ed... by Colin Watson

Support multiple RabbitMQ broker URLs

Merged from https://code.launchpad.net/~cjwatson/lp-mailman/+git/lp-mailman/+merge/452286

707070e... by Colin Watson

Support multiple RabbitMQ broker URLs

`kombu` is a higher-level messaging library than `amqp`. For our
purposes, we can treat it mostly as a wrapper for `amqp` with some
slightly more convenient interfaces, but it has one key feature that's
of interest to us: it supports multiple RabbitMQ broker URLs with
round-robin failover between them. This makes it possible to configure
lp-mailman to use RabbitMQ with high availability: if we have a RabbitMQ
cluster, then we can configure lp-mailman with broker URLs for all the
nodes in the cluster, and if one fails then `kombu` will automatically
fail over to the next.

To make it practical to configure this, I had to add a
`rabbitmq.broker_urls` configuration option, which supersedes the
existing broken-out configuration options (`rabbitmq.host`,
`rabbitmq.userid`, `rabbitmq.password`, and `rabbitmq.virtual_host`).
For backward compatibility, the old options continue to work as long as
`rabbitmq.broker_urls` is unset.

This also includes upgrading to oops-amqp 0.2.0, since that includes a
change to accept connection factories that return `kombu` connections.

This is a reduced version of
https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/432065
in Launchpad, picked up when I realized that it was going to be needed
by the lp-mailman charm. Testing is difficult since we stripped out
much of the supporting code when extracting lp-mailman from Launchpad,
but at least similar code is already tested as part of Launchpad.

39f16f2... by Colin Watson

Make deployment tarball more complete

Merged from https://code.launchpad.net/~cjwatson/lp-mailman/+git/lp-mailman/+merge/452251

b3803a1... by Colin Watson

Make deployment tarball more complete

The tarball we were building omitted the actual Mailman code, and so
failed to build on deployed systems; it was also constructed in such a
way that we ended up trying to pull the dependencies repository again
unnecessarily. This change produces tarballs that we can actually
deploy.

860ca1b... by Colin Watson

Build for bionic

Merged from https://code.launchpad.net/~cjwatson/lp-mailman/+git/lp-mailman/+merge/452177

1c96af0... by Colin Watson

Build for bionic

The upcoming charmed redeployment will use bionic. (charmcraft doesn't
support xenial, and focal doesn't support enough of Python 2 for
lp-mailman, so bionic is the usable sweet spot for now.)

454ea95... by Colin Watson

Support publishing deployment artifact to Swift

Merged from https://code.launchpad.net/~cjwatson/lp-mailman/+git/lp-mailman/+merge/439660

458d2af... by Colin Watson

Get the series name from lsb_release

1321dbe... by Colin Watson

Specify just the start year

ccc979a... by Colin Watson

Support publishing deployment artifact to Swift

This adds "build-tarball" and "publish-tarball" make targets, which will
help us to write a Jenkins job that builds a deployment artifact and
publishes it to Swift for use by future deployment machinery.