Introduction
A picture is worth a thousand words
This picture has been on the front page of our wiki page describing Ubuntu Membership since I became an Ubuntu Member in February of 2016, just over nine years ago (and likely some time before then.) To some Ubuntu Members who may be new(er) to the project, it may simply look like a blurry picture with a collection of unfamiliar faces. I see it differently; it serves both as:
- a symbol of our collective perseverance, collaboration, warmth and humanity towards others; and
- a reminder that many Ubuntu Members have come before us, and many will follow us
As a community, we are collectively responsible for “carrying the torch.” In essence, we make a concerted effort to leverage our talents, experience, and wisdom to ensure the project lasts for another 20+ years to come, while continuously integrating fresh and exciting ideas which move the project forward. Our seemingly-trivial everyday efforts to identify processes that no longer serve us, enhance, optimize, and calibrate existing processes that do serve us, and the passion that drives our contributors to constantly iterate, scales upwards to enormous and incredible progress over time.
One of these collective efforts has been the move to Matrix. While I will spend limited time covering the rationale behind this move, there is an abundant supply of reading material on this site to browse at your convenience. This being said, Ubuntu Developer discussion has recently moved to Matrix, prompting the Ubuntu Development community to evaluate our communication strategies in light of this refresh.
A long-standing “TODO list” item has existed for a meeting management bot, almost equivalent to the existing meetingology, on Matrix. As of today, that item can be marked as complete, or at the very least, as a work in progress.
Meetingology Refresh: The New Meeting Management Bot
Based on a wide range of feedback over several years, I have written an initial prototype of a brand new Matrix bot designed to replace meetingology. With this bot, you can:
- Seamlessly manage simple meetings through an easy-to-remember set of commands.
- Conduct votes, set chairs, and most other functionality available in the original Meetingology.
- Leverage and integrate the enhanced communication features provided by Matrix such as emojis, Markdown syntax, and multi-line messages.
There is full support for:
- Meeting logs.
- Image attachments for meeting logs, available in a .tar.gz file afterwards.
- Voting on a motion via a specific reaction emoji.
- Adding a specific message to the meeting notes based on a reaction emoji.
- Per-team configuration, so each team can design their meetings how it fits them best. This should take less than 30 minutes to fully configure and test, front to back.
- A meeting report at the end, which can be customized per-team using Markdown and Jinja2 syntax.
- Automatic topic changes based on the topic, subtopic, and/or vote.
- Pre-sets for voters, meeting administrators, and people who need a reminder.
All of this code is written in Python 3, and is licensed under the GPL 3, a free software license.
How does it work, and how do I get started?
Shortly after this is published, I will do a full demonstration of a meeting in the Ubuntu Meeting Room channel on Matrix. This room will stay in testing mode until Wednesday, April 2, 2025 at 12:00 PM US/Central, at which point it will be considered ready for production.
You are welcome to join the channel and test the bot if:
- you are an Ubuntu Member; and
- you are an active member of a team or subteam (recursively) within the Ubuntu project (quorum not required for simple testing, but preferred for a final configuration); and
- you are willing to provide feedback on the bot, its functionality, and any outstanding bugs you spot.
If your team has a designated lead or governance body, I would prefer for them to sign off on the final configuration.
You can find the code here. Here are some general instructions and notes:
- If you are simply looking to add a configuration, please read
README.md
in the repository. - If you found a bug and would like to submit substantive code changes, please read
TODO.md
in its entirety, first. - Anyone in the MOTU team on Launchpad has access to push directly to
main
in this repository. This is because MOTUs have a certain level of baseline knowledge which makes it appropriate for this repository. This will not be changed in the near future; sorry, that’s final. - Assuming you have read the appropriate documentation and believe your changes are sane, you may push directly to the
main
branch. Anyone pushing to themain
branch is expected to do agit pull
/git fetch
directly beforehand and as they go along, to avoid conflicts. Do not admonish people for conflicts, please; just resolve them with a smile and move on. - I have documented this code as much as possible; the rest I personally believe is self-evident. The goal here is to abundantly comment everything, see
TODO.md
for more details.
FAQ
Question: I think this is wonderful, but I have an idea for how to make it better. I am a MOTU, and I know Python very well. Can I please add a new, shiny feature?
Answer: The short answer is, yes, go ahead. Be sure to read TODO.md
and ensure your changes do not make anyone sad on their meeting day (preferably, happy.)
Question: I spotted some wording that seems off, or some documentation that doesn’t read well. Can I fix it?
Answer: Yes. None of the code in the repository was ran through a spell-checker or grammar checker of any kind, but probably needs to be. This code was written over the span of about a day, with no AI assistance, entirely in Vim (as was this post.) Let’s see who can find a mistake.
Question: I am a team lead or a designated representative of a given team. This all seems wonderful, but I would really like someone to walk me through how to use the meeting bot before I use it for my team, and help me understand some of these features. Would that be possible?
Answer: Absolutely! Here is a list of people who are familiar with the bot and would be happy to assist you (feel free to add yourself to this list, helpful people):
- Simon Quigley
Question: I spotted a bug. Where do I report it?
Answer: There is no decent answer as of the time of writing, but mention it in Ubuntu Meeting Room and someone with permissions can add it to TODO.md.
Question: Why aren’t you using an issue tracker, CI, GitHub, or anything large and elaborate? Why is it just a single, somewhat-heavily-commented Python file?
Answer: Anyone with permissions is welcome to add any new functionality including CI or Python packaging (as stated in TODO.md
); they’re encouraged to, actually. Eventually this will git a GitHub mirror. Just to start, this is being done classical-style, straight on Launchpad.
Question: I really dislike feature Y. I really don’t like how it does Z in the meeting. Can I remove it?
Answer: No. You can add an option to disable it, then disable it for your team, but don’t remove code, please. As is common, the people who will be most vocal are the people in the 10% who like a feature the most, and the 10% who dislike a feature the most. If you are in the latter category, do not remove a feature, add an option to disable it, and disable it for your team.
Question: But I really don’t like this feature. It’s really counterproductive, and I can’t understand why anyone in their right mind would even consider implementing this, and, and, …
Answer: That’s not a question.
See the previous answer, I won’t budge. Thanks
Question: The bot decided to take a long nap (it was tired ) Who do I message?
Answer: I’m the most familiar with the bot and its setup, but Thomas Ward and Aaron Rainbolt also have access to the machine as a backup. All they need to do is SSH into [the sandbox], get into the [verylarge] container, and check the appropriate systemd logs.
Question: Can I add something to this FAQ?
Answer: Yes, but only if Simon says. (Seriously though, sure, as long as it’s self-evidently sane.)