|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +nav-class: dark |
| 4 | +categories: sam |
| 5 | +title: Mailman3 and Website-V2 |
| 6 | +author-id: sam |
| 7 | +--- |
| 8 | + |
| 9 | +### Mailman3 Deployment |
| 10 | + |
| 11 | +The Boost mailing list has been in place for around 25 years. During at least the last 3 years we have been exploring an upgrade to mailman3 which is a completely new framework based on Django and multiple other components. The new server finally went live in June 2025 at the same URL: https://lists.boost.org. |
| 12 | + |
| 13 | +Mail archives going back to 2004 were imported into the new system. Static file copies of all archives are also hosted at listarchives.boost.org. |
| 14 | + |
| 15 | +Thanks to some organizational delays, there was more time to ensure a technically stable migration, discover potential problems and interact with the upstream open-source project maintainers. I was able to contribute documentation to the official Mailman Suite docs, switch the search engine from Elastic Search to Xapian (which they recommend), convert the cache to Redis, find a qcluster misconfiguration, submit a fix about an archive import bug, create new shell wrapper scripts for CLI execution, install logrotate, and more. |
| 16 | + |
| 17 | +Hopefully the new server is more enjoyable to interact with than mailman2. It solves certain issues: posts appear almost instantly on lists.boost.org and they are emailed out quickly. UTF-8 characters render correctly. New features can be added. |
| 18 | + |
| 19 | +### Boost website boostorg/website-v2 |
| 20 | + |
| 21 | +The new boost.org went live! After nearly 4 years of development. A major milestone. Switched over DNS. |
| 22 | + |
| 23 | +Also, |
| 24 | + |
| 25 | +Enabled IPv6. |
| 26 | +Installed horizontal pod autoscaler (HPA). |
| 27 | +Nginx redirect from boost.io to boost.org. |
| 28 | +Adjusted Fastly CDN settings for 'latest'. Fixing Fastly VCL commands to process 404s. Opened ticket, re-organized the order of the expressions. |
| 29 | +Created QA environment. Actually using the cppal-dev environment. Re-DNS servers. |
| 30 | +Discussing and planning a feature in website-v2 to improve doc page load times by a factor of 4, by caching doc pages in postgresql instead of always loading them across the network from S3. |
| 31 | +Improved the install scripts for local developer workstations, specifically the logic and steps of the Linux install. |
| 32 | + |
| 33 | +### Doc Previews and Doc Builds |
| 34 | + |
| 35 | +A few Boost libraries depend on [Antora](https://antora.org/), and the number will expand in the future. An existing problem with Antora is that the component isomorphic-git doesn't support submodules, while all Boost libraries are submodules. |
| 36 | + |
| 37 | +I have opened a draft pull request on isomorphic-git to include a subset of submodule capabilities, allowing it to operating on already-checked-out submodules. That would be sufficient to handle most cases of doc builds. Since the original author of isomorphic-git departed, there is at most a part-time maintainer. Review processes are somewhat slow. Further work needs to be done. But it's progressing and doesn't appear to be blocked, although there is a hurdle that a correct isomorphic-git update for submodules will need to modify 60+ git commands, each of which has a test suite and varying source code files. |
| 38 | + |
| 39 | +### boost-ci |
| 40 | + |
| 41 | +Nearly all CI jobs that use boost-ci set B2_CI_VERSION=1. We're now working on eliminating the need for this variable by making it a default. That will avoid an error when the variable isn't set properly. CI configuration becomes one step easier. Running reports to find which repos are affected. In-process. |
| 42 | + |
| 43 | +### Infrastructure Monitoring |
| 44 | + |
| 45 | +The upstream Ansible roles to deploy Prometheus and Grafana were redesigned, and migrated from a 'role' to a 'collection'. In order to stay up-to-date and use the latest pip packages, I converted the Alliance's Prometheus/Grafana server to the new system and re-wrote the 'node exporter' modules which are customized to install on multiple operating systems, windows/macos/linux. |
| 46 | + |
| 47 | +Deployed new server. |
| 48 | + |
| 49 | +Further monitoring of Drone (number of runners). Postgresql (all db statistics). |
| 50 | + |
| 51 | +### Jenkins |
| 52 | + |
| 53 | +The latest Jenkins jobs send email notifications on failure. Working on designing adjustments to those steps to remove false-positives, which are caused by plugin bugs. It's valuable to receive accurate email notifications, allowing prompt investigation of the job issues. |
| 54 | + |
| 55 | +Debugging Bloom. Added Decimal. Int128. |
| 56 | + |
| 57 | +Upgraded all plugins, server. |
| 58 | + |
| 59 | +### Boost release process boostorg/release-tools |
| 60 | + |
| 61 | +Boost release 1.88.0. |
| 62 | +Worked with release managers to debug the publish scripts. Opened issues on website-v2 about the release process. |
| 63 | +Helped multiple boost authors with various docs errors affecting superproject builds. |
| 64 | + |
| 65 | +### Drone |
| 66 | + |
| 67 | +- Rebuilt vs2022 runners. |
| 68 | +- IBM invoicing issues. not uncommon. |
| 69 | +- IBM password expirations issues due to their configuration defaults. |
| 70 | +- Disabled hyperthreading on runners. |
| 71 | + |
| 72 | +### GHA |
| 73 | + |
| 74 | +Rebuilt windows-2025 runners. |
| 75 | + |
| 76 | +### Benchmarks |
| 77 | +New dedicated benchmark runners for boostorg/bloom. |
| 78 | + |
| 79 | + |
| 80 | + |
0 commit comments