23 Sep 2026
Planet Mozilla
Thunderbird Blog: Thunderbird Monthly Development Digest: September 2026

Greetings once more from the Thunderbird development team!
As the Northern hemisphere summer comes to an end and a slew of PTO, company holidays and projects have wrapped up, what better time to share progress and next steps on the work the Thunderbird Desktop Engineering team has on their plates!?
Exchange support moving well
The powerhouse Exchange engineering team had some great momentum over the summer and completed their work on implementation of the Graph protocol to support email accounts - well in advance of their deadline. They have since moved on to start work to support Exchange calendars using the Graph protocol which is a significant milestone given that our calendar code hasn't had significant changes for some time.
While some team members are now juggling multiple projects, good progress has been made to wrestle the foundations into place, with calendar discovery and persistence in place, along with display of calendar items. Following a brief hiatus to focus on other priorities, the team is once again back into gear.
Keep track of our Graph API Calendar implementation here.
Account Setup & Authentication
Since I last wrote, many of the account setup and account authentication improvements have landed (mostly in versions 156 & 157), unlocking some important security use cases which are becoming more frequently requested and mandated by organizations and legislation around the world.
While diving into the code is an enjoyable adventure, the newly-minted articles devoted to the topic of Oauth customization might be a better starting point for most:
Knowledge Base - Custom OAuth for Thunderbird
UI overhauls - why just one?!
The front end engineering team has completed the rebuild of our account setup manual configuration flows to include new protocol options and security customizations, so it is time to pick up where we left off on our Calendar UI rebuild.
The majority of the front end team is now either focused on Calendar Event data write operations stemming from the Event Read dialog (delete event, RSVPs, Reminders) - or beginning the largest part of the journey, which is the implementation of a new Calendar Create/Edit dialog, along with REDUX-based state management, a new WYSIWYG editor and more reusable components such as date pickers.
Follow the Calendar Event Create/Edit work here
While that work is underway, why not weave in some more improvements?!
After some extensive user research and testing, our design team has begun work to improve the Settings UI, starting with some updates to humanize and homogenize the various options, headings and guidance provided in that area of the application.
Read more about that journey here
Contributions are on the rise! Some AI guidance…
In the past few months, we've seen a wonderful increase in contributions from community members - partially thanks to our move away from Mercurial to a more familiar Git-based workflow - and partially thanks to many LLMs doing a great job of interpreting our public codebase and making it far more accessible. Or it could be that our team is just such a friendly bunch that we've attracted a great group of people willing to support.
Whatever the reason, we're happy to see new names. faces and ideas in our chats and review queue!!
Having said that…We've reached the point where the velocity of work is beginning to pile up and clog our review queue - so I felt it might be time to share some guidance to make the process easier for both external contributors and the internal review team. Bear in mind that while we use AI workflows in several areas, our goal is to preserve a codebase which can be maintained by humans. We're working on a policy that may word some of these points better, but from the past few months of my experience here's what I see as being helpful:
- Keep patches to a digestible size and understandable complexity - Contributions should save more development time than it takes to review. If the patch contribution creates heavy work for maintainers, it will be deprioritized - so the best approach is to break the work up into pieces that can be understood more easily and discussed together. Bear in mind that many cloud-based models aren't primarily designed to be frugal with token usage so it's easy for patches to grow (much) larger than they actually need to be to solve the problem. Be specific with prompts to minimize the surface area of changes so they are reviewable.
- Humanize or write comments (within code and throughout the code review process) by hand - While we've become accustomed to interacting with a variety of automated systems in our daily lives, a good chunk of the joy involved in our work is to share knowledge with each other and refine the code so that it can be reused and understood by humans.
- Be wary of license infringement - much of our work is under the MPL license and we must all take care not to introduce refactored code that originally came from licensed software which can be rewritten and translated using LLM, then relabelled under our licence.
- Be transparent - it will often help to share prompts and your model when submitting code for review. Refining all aspects of our workflow is important, and we can all benefit from a collective evolution of skills and prompts that improve over time with input from the team and community.
- We encourage contact with a member of the team to discuss approach and architecture in advance of spending time and tokens on a patch. Some areas of the codebase are already slated for redevelopment and it's not always obvious what is underway and planned. Having a quick conversation to say "Hey, I'm thinking about working on this" is a great start to landing something that spends less time in review and uses less tokens, energy & the world's natural resources.
- Of course if none of these guidelines are followed, we'll still be very happy to receive help from the wider community - the process may just take longer and be a bit less pleasant.
Enterprise
As parts of the world turn their infrastructure priorities toward digital sovereignty, we've seen an increase in interest from governments, institutions and organizations around the world who are looking to either improve their existing FOSS-based infrastructure or deploy for the first time. That has resulted in some focused efforts throughout Q3 to improve our Enterprise security and policy framework to bring it in line with the strides that the Firefox engineering team has made, and also roll out more Thunderbird-specific administrative mechanisms that allow granular control over end user configurations. Read more about your options and follow the work below:
Thunderbird Enterprise Policies and Relevant Preferences
Thunderbird Enterprise PoC Work Items
Maintenance, Upstream adaptations, Recent Features and Fixes
Waves of changes from upstream Firefox have continually kept the team on their toes throughout July & August, but the small but mighty gang have kept Daily builds largely intact each day. In addition, the team and contributor community have continued landing a series of reliability, stability, and usability improvements across the application. Recent highlights include:
- Nico has a series of calendar improvements in the works with several now cleared for landing: D319397, D320418, D320419
- Hurtmut has again come to the rescue with a number of patches but most recently solved a widespread filtering problem introduced upstream which will need to be uplifted as a matter of urgency.
- Richard pushed many patches since my last update, many related to upstream changes required after the Firefox project "Nova" was unleashed. He's also been on the lookout for other breaking changes such as XUL attribute modifications.
- Max was on fire and in constant comms with the team to deliver a large number of important changes but also helped to refine some of our processes relating to AI-driven workflows. Recently, he led an investigation into growing concerns over instability with connections with Gmail accounts in Bug 2028760.
- and many more which are listed in release notes for beta.
If you would like to see new features as they land, and help us find some early bugs, you can try running daily and check the pushlog to see what has recently landed. This assistance is immensely helpful for catching problems early.
-
Toby Pilling
Senior Manager, Desktop Engineering
The post Thunderbird Monthly Development Digest: September 2026 appeared first on The Thunderbird Blog.
23 Sep 2026 10:35pm GMT
Firefox Tooling Announcements: MozPhab 2.20.0 Released
Bugs resolved in Moz-Phab 2.20.0:
- bug 2066178 Drop support for Python 3.9
- bug 2068605 preserve file logging from moz-phab list --format json and moz-phab patch --raw
- bug 2071586 Review queue reminders should ignore group reviews (at least optionally)
- bug 2073088
moz-phab submitis getting the file size from hg/git even if it could infer it from the blob itself - bug 2074036 List index out of range
Discuss these changes in #engineering-workflow on Slack or #Conduit Matrix.
1 post - 1 participant
23 Sep 2026 4:45pm GMT
This Week In Rust: This Week in Rust 670
Hello and welcome to another issue of This Week in Rust! Rust is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at @thisweekinrust.bsky.social on Bluesky or @ThisWeekinRust on mastodon.social, or send us a pull request. Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub and archives can be viewed at this-week-in-rust.org. If you find any errors in this week's issue, please submit a PR.
Want TWIR in your inbox? Subscribe here.
Updates from Rust Community
Official
- Be alert: targeted attacks on prominent Rustaceans
- GitHub Actions leaking secrets when Miri output is cached
- Maintainer spotlight: Alejandra González (@blyxyas)
- Announcing a Maintainer in Residence: Scott Schafer for the Cargo team
Foundation
Project/Tooling Updates
- Fearless SIMD v1.0 is here
- Syncing Rust GCC backend or how to test Murphy's law
- Benchmarking Wild vs Mold
Observations/Thoughts
Rust Walkthroughs
- [video] Understanding Rust Ownership by Building a Zero-Copy Log Line Parser
- Finding Bugs
- Why datadiff matches arrays by key instead of computing tree edit distance
- [video] RustCurious lesson 10: Three Ways to Fix Any Borrowing Error
- Solving for faster SHA-1 collision detection
- Small and secure Docker images for Rust: Alpine vs Debian vs Scratch
Crate of the Week
This week's crate is fastlogging-rs, a fast logger which supports 8 different programming languages.
Thanks to brmmm3 for the self-suggestion!
Please submit your suggestions and votes for next week!
Calls for Testing
An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization.
If you are a feature implementer and would like your RFC to appear in this list, add a call-for-testing label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.
No calls for testing were issued this week by Rust, Cargo, Rustup or Rust language RFCs.
Let us know if you would like your feature to be tracked as a part of this list.
RFCs
Rust
Rustup
If you are a feature implementer and would like your RFC to appear on the above list, add the new call-for-testing label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.
Call for Participation; projects and speakers
CFP - Projects
Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
- sysknife - A successful automatic rollback renders to the operator as unknown
- sysknife - sysknife-setup --uninstall deletes .mcp.json whole, taking every other MCP server with it
- sysknife - audit export publishes request_hash, an unsalted hash over unredacted params, with no statement of its sensitivity
- Apache Iggy - Python SDK: expose consumer shutdown and offset drain timeout
- Apache Iggy - Python SDK: expose client disconnect and shutdown lifecycle methods
If you are a Rust project owner and are looking for contributors, please submit tasks here or through a PR to TWiR or by reaching out on Bluesky or Mastodon!
CFP - Events
Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.
If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a PR to TWiR or by reaching out on Bluesky or Mastodon!
Updates from the Rust Project
618 pull requests were merged in the last week
Compiler
- A couple polonius constraints perf improvements
- AST lowering cleanups
- an assortment of polonius tweaks
- check
tainted_by_errorin LateLint - even more cleanups for
rustc_builtin_macros - perf: keep the first macro syntax-context mapping inline
- suggest fully qualified path on method name collision
Library
- add
Dir::try_clone - add case mapping fast paths for Latin-1
- complex conjugate, negation and default
- constify comparison traits on sliced types
- implement const Iterator for Range
- stabilize
CommandExt::show_window - stabilize
feature(trim_prefix_suffix)({str,[T],Path}::trim_prefixand {str,[T]}::trim_suffix) - stabilize
windows_process_extensions_main_thread_handle
Cargo
build-rs: makeunstablecompile- account for (uplift) hardlinks when calculating clean file size
- fix: return correct package specs when resolving workspace deps
- remove -Zasymmetric-token / cargo:paseto
- report the number of errors with
build.warnings='deny'
Rustdoc
- Correctly handle
dyntrait methods linking for jump to def feature - Correctly handle intra-doc links on inlined same item with different names
Clippy
- add
must_use_without_reasonlint - fix
const_trait_implrelated infinite loop inneedless_borrows_for_generic_args - generalize
extend_with_draintoVecDequeandBinaryHeap - lint
suboptimal_flopsformul_add,custom_absandradiansin const context - lint nested
format_args!for uninlined args
Rust-Analyzer
- prioritise required items in trait autocomplete
- support completions inside
cfg!() - support hover on cfg predicate
- complete cfg value in string
- correct order deprecated const in builtin ty
- not complete attr args when before exists args
- watch include roots recursively once, not every directory
Rust Compiler Performance Triage
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
- No RFCs were approved this week.
Final Comment Period
Every week, the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
Tracking Issues & PRs
- Types FCP v2: Supertrait item shadowing stabilization
- declare C and C-unwind as mutually ABI-compatible
- Distinguish
repr(C)ZSTs from others in ABI compatibility rules - Implement Default for NumBuffer
- rustc: Stabilize the WebAssembly
wide-arithmeticfeature - Allow elided ('static) lifetimes in
thread_local! - Stabilize
mem::conjure_zst - Prevent mutating the global environment pointer in
CommandExt::execand opt to use execve and resolve path manually - Stabilize
debug_closure_helpers - Additional NonZero conversions
- Stabilize
funnel_shifts(includingconst) - Stabilize
Result::into_{ok,err} - windows: stabilise inherit_handles
- OUT_DIR is also set when running the program
- feat(config): Add build.profile, install.profile
- fix(git)!: Default to net.git-fetch-with-cli if git is present
- Formulate a
trusted-contributorsmarker team - Participation in Outreachy Dec 2026 (dedication of funds)
No Items entered Final Comment Period this week for Rust RFCs, Language Team, Language Reference or Unsafe Code Guidelines. Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.
New and Updated RFCs
- No New or Updated RFCs were created this week.
Upcoming Events
Rusty Events between 2026-09-23 - 2026-10-21 🦀
Virtual
- 2026-09-24 | Virtual (Berlin, DE) | Rust Berlin
- 2026-09-24 | Virtual (Charlottesville, VA, US) | Charlottesville Rust Meetup
- 2026-09-29 | Virtual (London, UK) | Women in Rust
- 2026-09-30 | Virtual (Cardiff, UK) | Rust and C++ Cardiff
- 2026-10-02 | Virtual | Rust Girona
- 2026-10-04 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-10-06 | Virtual (London, UK) | Women in Rust
- 2026-10-07 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2026-10-08 | Virtual (Berlin, DE) | Rust Berlin
- 2026-10-08 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2026-10-10 | Virtual (Gdansk, PL) | Stacja IT Trójmiasto
- 2026-10-13 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-10-14 - 2026-10-17 | Hybrid (Barcelona, ES) | EuroRust
- 2026-10-18 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-10-20 | Virtual (Washington, DC, US) | Rust DC
- 2026-10-21 | Hybrid (Vancouver, CA) | Vancouver Rust
Asia
- 2026-09-23 | Maharashtra, IN | Rust Pune
Europe
- 2026-09-24 | Aarhus, DK | Rust Aarhus
- 2026-09-24 | Amsterdam, NL | Rust Developers Amsterdam Group
- 2026-09-24 | Frankfurt, DE | Rust Rhein-Main
- 2026-09-24 | London, UK | Rust London User Group
- 2026-09-25 | Edinburgh, UK | Rust and Friends
- 2026-09-26 | Stockholm, SE | Stockholm Rust
- 2026-09-28 | Augsburg, DE | Rust Meetup Augsburg
- 2026-09-29 | Manchester, UK | Rust Manchester
- 2026-09-29 | Milano, IT | Rust Language Milan
- 2026-09-30 | Basel, CH | Rust Basel
- 2026-09-30 | Berlin, DE | Rust Berlin
- 2026-10-05 | München, DE | Rust Munich
- 2026-10-08 | Oslo, NO | Rust Oslo
- 2026-10-10 | Geneva, CH | Rust Geneva
- 2026-10-14 | Barcelona, ES | BcnRust
- 2026-10-14 - 2026-10-17 | Hybrid (Barcelona, ES) | EuroRust
- 2026-10-20 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig
North America
- 2026-09-23 | Austin, TX, US | Rust ATX
- 2026-09-23 | Austin, TX, US | Rust ATX
- 2026-09-24 | Atlanta, GA, US | Rust Atlanta
- 2026-09-26 | Boston, MA, US | Boston Rust Meetup
- 2026-10-01 | Saint Louis, MO, US | STL Rust
- 2026-10-03 | Boston, MA, US | Boston Rust Meetup
- 2026-10-08 | San Diego, CA, US | San Diego Rust
- 2026-10-10 | Boston, MA, US | Boston Rust Meetup
- 2026-10-14 | Los Angeles, CA, US | Rust Los Angeles
- 2026-10-20 | San Francisco, CA, US | San Francisco Rust Study Group
- 2026-10-21 | Hybrid (Vancouver, CA) | Vancouver Rust
Oceania
- 2026-09-29 | Barton, AU | Canberra Rust User Group
South America
- 2026-10-08 | Buenos Aires, AR | Rust en Español
If you are running a Rust event please add it to the calendar to get it mentioned here. Please remember to add a link to the event too. Email the Rust Community Team for access.
Jobs
Please see the latest Who's Hiring thread on r/rust
Quote of the Week
operational pedantics
Thanks to Jules Bertholet for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by:
- nellshamrell
- llogiq
- ericseppanen
- extrawurst
- U007D
- mariannegoldin
- bdillo
- opeolluwa
- bnchi
- KannanPalani57
- tzilist
Email list hosting is sponsored by The Rust Foundation
23 Sep 2026 4:00am GMT