02 Oct 2026
Planet Mozilla
Mozilla Data YouTube Channel: Mozillians sharing the 2021 SciPy Conference experience
The 2021 SciPy conference (https://www.scipy2021.scipy.org/) involved the showcasing of the latest open source Python projects for advancement in scientific computing. Mozilla was a diversity sponsor and a few Mozillians attended and shared their experience of the event.
02 Oct 2026 4:24am GMT
Mozilla Data YouTube Channel: Last Lecture: Writing the Data Docs
Will Lachance gives a last lecture on writing data documentation at Mozilla.
02 Oct 2026 3:38am GMT
The Rust Programming Language Blog: Demoting i686 Windows targets to std-only
With Rust 1.100.0, the following changes to 32-bit Windows targets will happen:
i686-pc-windows-msvcTier 1 with host tools target will be demoted to Tier 1 without host tools.i686-pc-windows-gnuTier 2 with host tools target will be demoted to Tier 2 without host tools.
Builds of the standard library will continue to be distributed, but host tools such as the compiler will be no longer available. i686-pc-windows-msvc as a Tier 1 target still undergoes CI testing.
To build 32-bit Windows binaries, cross-compiling from a still-supported host toolchain (such as a 64-bit Windows ones) will be required from now on.
Background
Desktop and Server 32-bit only x86 CPUs are no longer sold for over 15 years, and general 32-bit Windows support has ended in October 2025. This means that the development platforms these targets are meant for hardly exist these days, and even if they do exist they typically aren't capable enough for development.
Even on the modern x86_64 hardware, building i686 Windows toolchains has proven to be problematic. We have encountered compiler binaries crashing when built with the i686 MSVC target, and the GNU C++ toolchain failing with OOMs during LLVM build.
Considering all these things, cross-compiling these targets from a better supported one is what we have found to be the best solution forward. As part of that, we stopped producing host tools for these targets. For the time being, the prebuilt standard library is still available, and in case of i686-pc-windows-msvc still tested on CI.
What Changes?
After Rust 1.100, it will no longer be possible to install toolchains on 32-bit Windows hosts. We recommend cross-compiling from a still-supported host (such as a 64-bit Windows toolchain) instead. Other 32-bit platforms are not impacted by this change.
For more details about these demotions, see RFC 3999 for i686-pc-windows-msvc demotion, and MCP 1020 for i686-pc-windows-gnu demotion.
02 Oct 2026 12:00am GMT
01 Oct 2026
Planet Mozilla
Mozilla Data YouTube Channel: Monitoring Sensitive Data: How do we monitor data we don't store?
We try to be responsible with data. For example, we: - store as little sensitive data as possible - monitor changes in incoming data on which we've built models But what happens when those two approaches conflict? How do we monitor changes in incoming data that we don't want to store? This talk explains the schema we use to monitor changes in what people are searching for in Firefox...even when we deliberately don't store some of what people are searching for.
01 Oct 2026 11:23pm GMT
Thunderbird Blog: Thunderbird for iOS: A First Look at the Native iPhone Email App in Development

The team has been working hard behind the scenes laying a strong foundation for the Thunderbird iOS app. Rather than leveraging existing code, we are building natively from scratch. This fresh start allows us to take everything we've learned from Thunderbird Desktop and Android to ensure a fast, reliable, and modern experience on your iPhone right from the start.
Our ultimate goal is seamless cross-device experience. Whether you're sitting at your desktop computer, checking messages on the go, your workflow should feel effortless and unified.
Right now, we are focused heavily on getting the core foundations right. We are excited about the momentum because having clean architecture today means we can layer on exciting new features much faster in the future.
Below we've captured some of our work in progress. Nothing is final, but we wanted to share what we are cooking up so far. If you have feedback, keep reading on. At the bottom of the post we have a link to a user research study where we want to hear from you and what you want to see from Thunderbird for iOS.
Hassle-free setup
We know people are really busy, often doing more than one thing at a time. We're making login fast, secure, and fully automatic, so whether you're signing in with a single click or setting up multiple accounts, you can get to your inbox quickly.
Solid reliable connections
An email app is only as good as its connection. Behind the scenes, we're building a background sync that maintains a steady connection with your provider that keeps your inbox up to date while respecting your battery life.
Core daily tools
Your daily email routine should feel effortless. We're polishing the essentials: a clutter-free, easy-to-read inbox layout paired with a clean, modern editor that lets you format messages smoothly without getting in your way.
Designed for growth
Thunderbird has always belonged to its community. We're structuring the app with clean code and an experimental feature flag system so it's easy for community developers to contribute. This means power users will be able to test out new experimental features early, and external contributors can easily help us extend what the app can do.
When can you try it?
Our goal is to have a first version ready for community testing in the next few months.
Building with our community, not just for people, is core to what we are trying to do. To help us decide what to build next after our first release, we'd love your input. If you had to pick the top three things that matter most to your daily email routine, what would they be?
A note to the community
Lastly, we know how long many of you have been asking for and waiting for Thunderbird on iOS. Whether you've dropped a comment on our forums, tagged us on social media, or simply kept an eye on our progress, thank you for your patience!
Bringing Thunderbird to iPhone and iPad isn't just about building an app; it's about doing it right so it serves you reliably for years to come. Today, we want to pop open the hood, share where we are, and work with everyone to design the best possible experience.
The post Thunderbird for iOS: A First Look at the Native iPhone Email App in Development appeared first on The Thunderbird Blog.
01 Oct 2026 10:14pm GMT
Mozilla Data YouTube Channel: Glean Dictionary Looker Demo
A quick demonstration of the Glean Dictionary's new integration with Mozilla's instance of Looker.
01 Oct 2026 5:48pm GMT
The Mozilla Blog: Under the Hood: Prompt tuning Shake to Summarize for recipes
Following the rollout of Firefox's Shake to Summarize feature to Android devices this May, we wanted to take a closer look at the modeling work behind the feature. In a previous blog post, we discussed our model selection process. Now that Shake to Summarize has been available on both iOS and Android for a few months, we wanted to take it a step further and outline our approach to prompt development.
This is the story of a Shake to Summarize use case that required a little extra prompt tuning: online recipes.
Framing the Problem
The first step in developing a useful prompt is clearly describing what you want the LLM to do. LLMs thrive on specificity, so the more sharply you can define your task, the better your results are likely to be.
This is especially important when using smaller LLMs (like we are here), since these little models are not as good at reading between the lines and intuiting unstated intentions as their more powerful cousins are.
For this application, we were looking to create summaries. On the face of it, this seems pretty straightforward. However, as we iterated on prompts, we quickly discovered that what constitutes a "good" summary depends largely on what one is summarizing.
For example, a useful summary of a novel should provide us with a quick overview of the plot without getting into too many specific details; we wouldn't expect the summary to contain anything from the text verbatim.
In contrast, a summary of a recipe website should include the recipe essentially as written. If the recipe says "cook lovingly" we might be OK with shortening it to "cook," but if it calls for 4 cups of vegetable broth, a Tbsp of oregano and a tsp of thyme, we want these details relayed to us exactly. Merely stating, "this recipe calls for some broth and some spices" would not be adequate.
Forming the Prompt
From here, it became clear that we wanted not just one "summarize" instruction, but a whole set of instructions - one for each category of webpage that we wished to summarize. We worked with the product team to compile a list of article types that we were targeting for this feature. For each article type, we then gave a brief description of what a good summary would look like:
Recipe - Ingredients as written, along with the key steps, time required, and any tips given by the author or commenters
News - Only the important details: what happened, when, and what would be the likely consequences to the reader
How-to - Start with the required materials, skills, tools, etc., along with the main steps and any specific warnings called out by the author
Review - Highlight the bottom line rating. If it is a product review, include the pros and cons, the price, and who the target audience is.
Research - Key finding and level of confidence the researchers have in their results as well as the projected real-world impact.
Opinion - The main argument, along with any key evidence cited in support
We then wrapped this list in some general instructions to ground the model in the task and came up with our initial prompt (formatted for readability) [source]:
You are a Content Summarizer. You create mobile-optimized summaries by first understanding what users actually need from each type of content.
Process:
Step 1: Identify and Adapt.
Step 2: Based on content type, prioritize:
Recipe - Servings, Total time, Ingredients list, Key steps, Tips.
News - What happened, when, where.
How-to - Total time, Materials, Key steps, Warnings.
Review - Bottom line rating, price.
Opinion - Main arguments, Key evidence.
Personal Blog - Author, main points.
Fiction - Author, summary of plot.
All other content types - Provide a brief summary of no more than 6 sentences.
Step 3: Format for mobile using concise language and paragraphs with 3 sentences maximum.
Bold critical details (numbers, warnings, key terms).
We Foxfooded the above prompt and found that it mostly worked pretty well. The summaries the model produced were concise, accurate, and informative.
The only exception was recipes.
We found that, when the prompt above was used for recipes, the model tended to summarize too much - often leaving out key ingredients, or in some cases, leaving out the recipe entirely.
For example, when asked to summarize a lentil soup recipe the model returned:
The webpage provides a detailed recipe for a vegan lentil soup, which the author claims is the best they've ever made. The soup is made with pantry staples like lentils, diced tomatoes, vegetable broth, and spices (cumin, curry powder, thyme), along with fresh vegetables (onion, carrots, garlic) and greens (kale or collard greens). A key step is blending a portion of the soup to create a creamy texture without dairy.
The summary is accurate, so far as it goes, but it isn't exactly useful. If our goal is to have the summary be a quick way to access the recipe itself, without having to read through the narrative preamble, this wouldn't cut it.
Focusing the Prompt
To address this problem, we needed to be more explicit with the instructions we gave the model when summarizing recipes: we needed to tell it which information we were interested in and which it could safely discard.
Although we could have added this extra guidance directly to the prompt above, doing so risked causing the model to over-index on the recipe formatting and ignore the other article types. Instead, we developed a separate prompt which contained only the recipe instructions and directed recipe summarization requests to use it, rather than the general one [source].
To perform this routing, we used the structured data embedded in each webpage. While this categorization could have been handled by another model pass, metadata from the webpage itself allowed us to quickly and deterministically identify the page categories without additional inference overhead. To capture cases where this data is either missing or inaccurate, we also maintain some lightweight recipe guidance in the general prompt.
After this change, the summary returned by the model for the above recipe became much more usable (shortened for brevity):
Servings: 6
Total Time: 50 minutes
Prep Time: 10 minutes
Cook Time: 40 minutes
Ingredients
- ¼ cup extra virgin olive oil
- 1 medium yellow or white onion, chopped
- 2 carrots, peeled and chopped
- …
Instructions
- Warm the olive oil in a large Dutch oven or pot over medium heat.
- Add the chopped onion and carrot, cooking until the onion softens and turns translucent, about 5 minutes.
- …
Tips
- Use an immersion blender for easier blending without transferring soup.
- …
Nutrition
- Calories: 320
- …
With this change in place, we ran a quick test over a curated set of recipe sites and found that the new system was more than twice as likely to return a complete and accurate summary than our previous one. Success!
The system was now working as expected: summaries were useful and recipes were complete.
Reflections
From this experience we learned that the model produced the best results when it was told explicitly what we wanted it to do. When the instructions were vague or left too much up to the model, performance suffered.
To this end, we found that framing this problem as a routing problem - where the specific kinds of articles are routed to specific prompts - worked well. Since the task of summarization is not monolithic, our summarization pipeline should not be either.
Even though our current approach has only a single category-specific prompt, we hypothesize that the system would see further gains by using dedicated prompts for other page types as well.
More broadly, this experience reinforced an important lesson for us: improving AI systems is not solely about building larger or more capable models. Some of the biggest gains come from reducing ambiguity, narrowing the task, and designing systems that help the model succeed. Within the right harness, smaller, open source models can deliver great value.
While building more capable models continues to advance the field, our experience shows that thoughtful system design and solid engineering still matter.
The post Under the Hood: Prompt tuning Shake to Summarize for recipes appeared first on The Mozilla Blog.
01 Oct 2026 4:00pm GMT
Mozilla Data YouTube Channel: An opinionated intro to NLP (text analytics)
Rebecca BurWei from Mozilla Data Science gives an introduction to Natural Language Processing.
01 Oct 2026 1:06pm GMT
Mozilla Data YouTube Channel: Data Incident Process
Mike Droettboom talks about Data @ Mozilla's process for handling incidents.
01 Oct 2026 10:49am GMT
The Rust Programming Language Blog: Announcing Rust 1.99.0
The Rust team is happy to announce a new version of Rust, 1.99.0. Rust is a programming language empowering everyone to build reliable and efficient software.
If you have a previous version of Rust installed via rustup, you can get 1.99.0 with:
$ rustup update stable
If you don't have it already, you can get rustup from the appropriate page on our website, and check out the detailed release notes for 1.99.0.
If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (rustup default beta) or the nightly channel (rustup default nightly). Please report any bugs you might come across!
What's in 1.99.0 stable
extern "C" variadics
Rust 1.99.0 stabilizes defining C-ABI variadic functions with "C" and "C-unwind" ABIs. Variadic functions defined this way use a variable argument list (...) and accept an arbitrary number of arguments. Rust could already call externally-defined variadic functions (e.g., libc::printf). With Rust 1.99, these functions can now be written in Rust itself:
/// SAFETY: must be called with (at least) 2 i32 arguments.
unsafe extern "C" fn sum(mut args: ...) -> i32 {
// SAFETY: guaranteed by the caller.
let a = unsafe { args.next_arg::<i32>() };
let b = unsafe { args.next_arg::<i32>() };
a + b
}
fn foo() -> i32 {
unsafe { sum(0i32, 2i32) }
}
The type of ... is VaList, which is ABI-compatible with the C va_list type across targets. What types can be read from a VaList is guarded by the VaArgSafe trait.
For more details on c-variadic functions, see the Reference. This release also stabilizes support for defining naked variadic functions with non-"C" ABIs, which must be written via inline assembly.
Layout information from raw pointers
This release settles the safety requirements for retrieving the size and alignment on raw pointers to both Sized (trivially safe, already possible on stable) and non-Sized types.
This is done by stabilizing three functions:
Recommend against round-trip unleaking after Box::leak
While there are no changes to the language semantics in Rust 1.99, we have updated the documentation on Box::leak to recommend against patterns that later deallocate that memory. This was done because such code was found to have problematic interactions with current and future potential compiler optimizations, and is especially problematic with the upcoming stabilization of custom allocators. Instead, Box::into_non_null or Box::into_raw should be preferred.
This guidance also applies to other leak functions in the standard library.
Stabilized APIs
IntoIteratorforBox<[T; N]>IntoIteratorfor&Box<[T; N]>IntoIteratorfor&mut Box<[T; N]>VecDeque::retain_backcore::ffi::VaListBox::into_non_nullBox::from_non_nullVec::into_partsVec::from_partscore::mem::size_of_val_rawcore::mem::align_of_val_rawcore::alloc::Layout::for_value_rawString::from_utf8_lossy_ownedstring::FromUtf8Error::into_utf8_lossyFusedIterator for StepBy<I>std::fs::set_timesstd::fs::set_times_nofollow
Other changes
Check out everything that changed in Rust, Cargo, and Clippy.
Contributors to 1.99.0
Many people came together to create Rust 1.99.0. We couldn't have done it without all of you. Thanks!
01 Oct 2026 12:00am GMT
30 Sep 2026
Planet Mozilla
About:Community: A fresh Firefox and MozFest count down
Hi Mozillian,
In this edition, we're exploring the new Firefox design, Mozilla's recent partnership with Mistral to expand choice in AI-powered browsing, and several ways to get involved with MozFest. You can join a livestream about the value of bringing open-source communities together in person, volunteer at MozFest in Barcelona, or take part in the latest privacy discussion from the Firefox community on Reddit.
Read on for the latest updates and opportunities to participate!
More modern. More flexible. Still Firefox.
Firefox 157 introduces a new Firefox design with updated colors, icons and themes that make the browser feel more modern while preserving the familiar Firefox experience. The release also brings back Compact Mode and adds easier theme selection, new wallpapers and more ways to customize the New Tab page. Underneath the new look, Firefox remains independent and open source, with built-in privacy protections and controls that let you decide how your browser works, including how AI features appear.
Mozilla and Mistral partner to expand AI choice
Mozilla and Mistral have announced a partnership aimed at increasing competition and preserving user choice in AI-powered browsing. As part of the collaboration, the open-source Mistral Small 4 model is coming to Firefox Smart Window Beta as a new option for users in the US and Canada. Smart Window Beta is also expanding to France with official French-language support, with additional European markets planned. Users can continue choosing from multiple AI models, reinforcing Firefox's commitment to avoiding lock-in and keeping the web open to different technologies and providers.
Does open source need IRL? The case for MozFest
Is showing up in person important for open source? Join the Owners Not Renters livestream on Tuesday, September 29, to hear the story behind MozFest and explore why gathering in person still matters for open-source communities ahead of MozFest, taking place October 28-30 in Barcelona. Kali Villarosa (MoFo), Seher Shafiq (MoFo) and Brian Behlendorf (co-founded Apache) will join host Marcus Rein for an open conversation, followed by a live Q&A. Bring your questions and your hot takes!
MozFest call for Volunteers
From 28-30 October 2026, the Mozilla Foundation will host the Mozilla Festival in Barcelona, bringing together people from diverse fields to explore how we can work collectively to "re-wild" the web. To help bring the Festival to life, we're building a team of volunteers. By joining, you'll help deliver a major event in support of Mozilla's mission while also having opportunities to participate in sessions throughout the three-day Festival.
From the Reddit Community
Privacy conversations are going mainstream, and Firefox has been at this for 20+ years. In light of a recent video making the rounds about the importance of privacy, the Firefox Team shared a rundown of built-in privacy features (ad blocking, tracking protection, encrypted sync, a free VPN, and more). Jump in at r/firefox and share your own privacy tips and configs!
P.S.
Enjoyed these updates? Subscribe to the Mozilla Community Newsletter and get the latest updates delivered straight to your inbox.
30 Sep 2026 5:01pm GMT
This Week In Rust: This Week in Rust 671
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
Newsletters
Observations/Thoughts
- Can safe Rust ever beat Google's C Brotli?
- Building a DMA based driver for the RP2350 I2C (safety not included)
- Advanced soft-bodies for games with the Rapier physics engine
- Supporting native Rust in Workers with the new Emscripten target for wasm-bindgen
- Rusty thoughts on "Parse, don't validate"
- The state of SIMD in Rust in 2026
- How do you stop being a Rust novice?
- We Have Named Arguments at Home: a reply to the blog post Arguing about arguments mentioned in the last issue
- Upstream Rust maintenance report (August-September 2026)
- Rust in the kernel? What about Rust without the kernel!
- Compiling the kernel with gccrs
- Listening to the radio with Rust
- Native support for Rust on the GPU
Rust Walkthroughs
- How to speed up the Rust compiler in September 2026
- Building Real-Time Notifications with SSE and Pub/Sub
- Green Threads from Scratch
- A Type Stronger than the Sum of its Components
- Deser: Rethinking Rust Serialization
- Dropping Swift from our Bevy iOS crates
- Pining for Arc Downcasting in Rust
- Topcoat is pushing the boundary of server applications with Rust
- Rust Reborrowing, Aliasing, and Mutable References
- A very condensed introduction of the basics of Rust
- [video] Making Our GPUI App Interactive with State and Events
- [ES] Domain-Flow-Effects (DFE): an architecture designed for Rust
Miscellaneous
Crate of the Week
This week's crate is ying-profiler, a native Rust sampling memory profiler.
Thanks to Evan Chan 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.
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.
- unsynced - strace frontend fails on pwritev2 with offset -1 (current file offset)
- unsynced - Model hard links (link/linkat) instead of warning
- unsynced - Add an ext4 data=writeback persistence profile
- MemoryWhale - Cover friendly errors for incomplete
mwarguments - MemoryWhale - Lock down
mw --helpoutput - dataprof - Remote Parquet refusal messages should say to download the file when the server ignores Range
- dataprof -
ScoreBounds::dimension_scoresdocs still list estimated key counts as unbounded - dataprof - The progress
finishedevent under-counts rows when a row cap stops the incremental engine
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
546 pull requests were merged in the last week
Compiler
- computing
crate_hashfrom metadata encoding instead of HIR (implements #94878) - detect missing else in let statement
- give noalias back to refs in closures
- implement forced keywords (
k#) - use SmallVec in LocalizedConstraintGraph
Library
- add
DivandMulforComplex<{float}> - alloc: stabilise
Allocator - additional
NonZeroconversions - allow elided (
'static) lifetimes inthread_local! - implement
PartialEq<VecDeque<U>>forVec<T>,&[T],&mut [T],[T; N],&[T; N]and&mut [T; N] - make dropping an empty BTreeMap free
- stabilize SyncView
- stabilize
Box::take - stabilize
Result::into_{ok,err} - stabilize
funnel_shifts(includingconst) - stabilize
mem::conjure_zst - stabilize
vec_try_remove - use wrapping arithmetic in
from_str_radix
Cargo
builtin-deps: add builtin dependencies manifest syntaxconfig: add build.profile, install.profilemetadata: mirror package features infeatures_v2builtin-deps: fix builtin dependencies manifest validationdiag: Don't report unused normal deps when static libs are skippedpackage: preserve feature metadata in normalized manifests
Rustdoc
- correctly check that an item is not
doc(hidden)with--generate-link-to-definition - fix intra doc link resolution when a doc comment is composed of both inner and outer doc comment
- fix invalid jump to def link when
#[rustc_allow_incoherent_impl]is involved - fix quadratic naming of duplicate sidebar links
Clippy
while_let_loop: detect the pattern when the loop has a label- add new
try_from_instead_of_from_strlint - don't suggest
Box::leakinnonnull_unchecked_on_box_ptr - fix
collapsible_matchconsuming/mutation checking - fix
match_str_casematching str inside or patterns - improve doc attr span tracking for proc-macro
Rust-Analyzer
- don't fail extension activation when the server fails to start
- add
type_matchrelevance for type-alias - coercion safe fn to unsafe fn
- complete 'false' in cfg attribute
- complete attr value inside string without quotes
- const eval cast of single-variant
enum - deduplicate 'derive' and 'test' attribute macro
- do not type match unknown type
- don't clear semantic tokens cache on refresh
- hover show impl header when impl with trait
- panic in async closures with higher-ranked trait bounds
- return UB instead of panicking when reading the discriminant of an uninhabited
enum
Rust Compiler Performance Triage
This week was fairly positive. We had no pure regressions, and most of the results came from a few architectural improvements with mixed or mostly positive impact. Some improvements also come from addressing previously triaged regression caused by missing no_alias annotation for references in closures.
The biggest improvement this week is in rustdoc, from tackling quadratic behaviour when generating sidebar links. This was reported by a user, but the effect didn't show up in our benchmarks, so we added a special stress test for it.
Triage done by @panstromek. Revision range: 3670d253..c1070d69
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions ❌ (primary) |
0.6% | [0.2%, 0.8%] | 8 |
| Regressions ❌ (secondary) |
1.4% | [0.1%, 5.8%] | 30 |
| Improvements ✅ (primary) |
-0.6% | [-1.7%, -0.2%] | 192 |
| Improvements ✅ (secondary) |
-1.5% | [-82.5%, -0.1%] | 101 |
| All ❌✅ (primary) | -0.6% | [-1.7%, 0.8%] | 200 |
0 Regressions, 2 Improvements, 6 Mixed; 3 of them in rollups 26 artifact comparisons made in total
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
- Stop using dlltool for generating import libraries on MinGW
- Stabilize
ptr::try_cast_aligned - [disposition: close] 1.99 beta crater regression: overflow evaluating the requirement
- implement FCW for
rustc_allowed_through_unstable_modulesitems - fix
VisibleForLeakCheckinRegionOutlivesfast path - Stabilize
debug_closure_helpers - Support type-relative assoc item paths in generic param defaults & const param types
- FCW for
#[panic_handler]onunsafe fn. - Stabilize
optimizeattribute - Allow unary operand types to be inferred later
- Feat -
#[inline(always)] + #[target_feature(enable = "....")]#2 - Tracking Issue for
CStr::display - Syntactically reject leading parenthesized precise capturing lists in bare trait object types (
(use<…>)+)
No Items entered Final Comment Period this week for Language Team, Language Reference, Leadership Council 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
Upcoming Events
Rusty Events between 2026-09-30 - 2026-10-28 🦀
Virtual
- 2026-09-30 | Virtual (Cardiff, UK) | Rust and C++ Cardiff
- 2026-10-01 | Virtual | Rust Foundation & JetBrains
- 2026-10-02 | Virtual | Rust Girona
- 2026-10-03 | Virtual (Amsterdam, NL) | Bevy Game Development
- 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-10 | Hybrid (Kuala Lumpur, Malaysia) | Rust Malaysia Meetup
- 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
- 2026-10-22 | Virtual (Berlin, DE) | Rust Berlin
- 2026-10-27 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-10-27 | Virtual (London, UK) | Women in Rust
Asia
- 2026-10-09 | Hybrid (Kuala Lumpur, MY) | Rust Malaysia Meetup
Europe
- 2026-09-30 | Basel, CH | Rust Basel
- 2026-09-30 | Berlin, DE | Rust Berlin
- 2026-10-01 | Berlin, DE | Rust Berlin
- 2026-10-01 | Oxford, GB | Oxford ACCU/Rust Meetup.
- 2026-10-05 | München, DE | Rust Munich
- 2026-10-08 | Oslo, NO | Rust Oslo
- 2026-10-08 | 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-10-01 | Saint Louis, MO, US | STL Rust
- 2026-10-03 | Boston, MA, US | Boston Rust Meetup
- 2026-10-08 | Lehi, UT, US | Utah Rust
- 2026-10-08 | New York, NY, US | Rust NYC
- 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
- 2026-10-21 | San Francisco, CA, US | Bay Area Rust
- 2026-10-28 | Austin, TX, US | Rust ATX
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
The community is obnoxiously helpful. I asked a simple question on the Rust community Discord server. What is the best way to read a file in Rust? I expected a straightforward response. Instead, I got back a 2,000-word essay on the inner workings of IO, buffering, error handling, and ownership, plus links to four different blog posts and three different approaches depending on file size, and a working code example.
...
The Rust community has weaponized education against me. I'm now a better engineer than I was yesterday against my will.
Thanks to MusicalNinjaDad 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
30 Sep 2026 4:00am GMT
29 Sep 2026
Planet Mozilla
Mozilla Addons Blog: Nova is here: what changes for your Firefox theme
On September 29, Firefox 157 shipped Nova, the biggest refresh of the Firefox interface since Proton back in 2021. The browser frame is cleaner, the sidebar plays a bigger role, and vertical tabs are a first-class layout. Your theme continues to load, and most color and image properties work as they did before.
What does change is where those colors and images display, how some of them look next to each other, and a handful of properties that no longer have a visible effect. Most themes will look fine. Some, especially themes built around a background image, look different enough that you will want to take a look.
This post walks through what changed compared with the Proton interface, what to check in your theme, and what is still being worked on. If you only have five minutes, jump to the checklist.
What changed in the browser frame
The toolbar and sidebar now sit flush with the window edges, with no gaps between them.
For your theme, this means your frame color and background image have less empty space around them, and the edges where the toolbar, sidebar, and page meet are more visible.
| Area | Proton | Nova (Firefox 157) |
|---|---|---|
| Toolbar and sidebar | Flush with the window, no gaps or floating borders | Same as before |
| Horizontal tabs | Theme background applied to the tab strip | Same as before |
| Vertical tabs | Tab bar color on the tab strip | Tab bar color also shows on the toolbar |
| Sidebar | Separate panel | Shares the theme background with the toolbar area |
colors, accents and tabs
Accent color. The default Firefox theme uses Nova's purple accent. Every other theme, including yours, uses the operating system's accent color for buttons and other accented controls. Themes cannot set the accent color through the manifest, and is why your theme cannot show the purple you see in the default theme.
Focus and link colors. Firefox still applies its own blue and cyan to focus rings and some links when a theme other than the default is active.
The selected tab. Proton always drew a shadow under the selected tab, which helped it stand out even when a theme did not style it. Nova removes that shadow. If your theme relies on it, the selected tab can blend into the tab strip. Set the selected tab colors, with tab_selected and tab_line, so the selected tab stands out.
Button hover colors. Your button_background_hover and button_background_active colors also apply to buttons on the tab strip, and for buttons that sit on your frame background with vertical tabs. A solid color picked to match the toolbar can almost disappear there. Semi-transparent colors, for example rgba(0, 0, 0, 0.15) for hover and rgba(0, 0, 0, 0.3) for pressed, work on both backgrounds.
Sidebar and vertical tabs
- The sidebar shares your background. The theme background now continues under the sidebar, so the sidebar and the toolbar area appear as one surface.
- Set sidebar colors explicitly. Use
sidebarandsidebar_textfor sidebar panels. If you leave them out, Firefox picks colors for you, relevant to your theme's color. sidebar_borderis now a separator. The sidebar splitter is gone; the property now colors the line between the sidebar and the page.- Sidebar buttons follow your text color. Buttons and icons in the sidebar are derived from your text color rather than your toolbar button colors, so they can look slightly different from the toolbar.
- Vertical tabs and the toolbar. With vertical tabs, your tab bar color is also applied to the toolbar. If those two colors were chosen to contrast, check how they look together.
- Expand on hover. In Firefox 157, a sidebar that expands on hover may not show your theme's background. This is fixed in Firefox 158.
Properties that changed or no longer work
Some theme properties behave differently in Nova. Your theme still loads if it uses them; they just have no visible effect, or style something different.
| Property | In Nova |
|---|---|
ntp_text |
No longer styles the new tab page search box |
popup_text |
No longer styles the address bar dropdown; other popups still use it |
sidebar_highlight |
No visible effect; the default highlight color is used |
sidebar_highlight_text |
No visible effect |
toolbar_bottom_separator |
Acts as a separator next to or below the toolbar and around the page |
The theme manifest reference on MDN is being updated with these changes.
Themes with background images
Themes using images are where you are most likely to see a difference. Your image can now show behind the sidebar and vertical tabs, and an image designed for a wide, short toolbar rarely looks good stretched or tiled down a vertical panel. In our testing of popular themes, the image themes that look off in the sidebar mostly did before Nova too. We did test a number of themes but we invite you to do your own testing. Nova makes the sidebar more visible, so the issues are easier to notice.
You can now choose where your images go with the backgrounds_area property, available from Firefox 156:
- "auto" (the default): Firefox decides from
additional_backgrounds_alignment. If any image is aligned to the vertical center or bottom, images stay in the top toolbars; otherwise they cover the whole window. - "window": images cover the whole window, including behind the sidebar and vertical tabs.
- "top_toolbars": images stay in the toolbars at the top of the window, and the sidebar uses your frame color.
If your image was made for the toolbar only, "top_toolbars" with a frame color that suits the image is usually the quickest fix.
Also set a toolbar color, even a semi-transparent one. Without it, notification bars that appear above the page sit directly on your image and can be hard to read.
New Gradient Support
Nova's color themes use gradients, and you can too. The Nova theme manifests are the best working example; look at how they set colors for each surface, including the sidebar. backgrounds_area applies to gradients the same way it applies to images. Older versions of Firefox ignore color properties they don't recognize, so your theme still loads there; if you use a feature older versions reject, set strict_min_version in your manifest.
Checklist: what to check in your theme
Install your theme in Firefox 157 and look at it in each of these states:
- Horizontal tabs and vertical tabs.
- Sidebar closed, open, and expanded on hover. Also toggle "Customize sidebar" while the sidebar is open or expanded.
- Compact density, if your users are likely to use it (under settings -> appearance density(.
- A private window.
- Light and dark system settings, since the accent follows the operating system.
- Hover over the buttons on the tab strip.
Then, if something looks off:
- Set
tab_selectedandtab_lineso the selected tab stands out without Firefox's old shadow. - Set
sidebarandsidebar_textto colors that match your theme. - Use semi-transparent
button_background_hoverandbutton_background_activecolors. - Check that your tab bar and toolbar colors work together with vertical tabs enabled.
- For image themes, choose a
backgrounds_areaand set a toolbar color. - Remove or ignore properties that no longer have an effect.
- Publish an update on AMO so your users get the changes.
What we are still working on
Nova will evolve after launch. Firefox 158 ships on October 13 with the expand-on-hover sidebar fix. We are also working on these, with no release date yet:
- Focus and link colors that fit your theme instead of the fixed blue and cyan.
- A
popup_iconscolor for icons in menus and panels, separate from toolbar icons. - Theme colors for hover and selected states inside sidebar panels.
- Better hover states for tab strip buttons.
We will post again when these land.
For users who prefer the old look
Some of your users may miss Proton. From September 29, Mozilla is featuring a Firefox Proton theme in the Add-ons Manager for anyone who wants the previous look. It is a normal theme, so users can switch between it and yours at any time.
Resources
- Theme manifest reference on MDN: every color, image, and property, including
backgrounds_area. - Static themes on Extension Workshop : updated for Nova.
- Nova theme manifests: worked examples for gradients and sidebar colors; the themes themselves are on AMO, for example Nova Sun.
Questions?
We want your theme to look its best in Nova. If something looks wrong and the checklist does not fix it, tell us on Discourse and include a link to your theme and a screenshot. Those reports help us find the cases that need a Firefox fix rather than a theme change.
Thank you for making Firefox look like you and like your users.
The post Nova is here: what changes for your Firefox theme appeared first on Mozilla Add-ons Community Blog.
29 Sep 2026 3:34pm GMT
The Mozilla Blog: More modern. More flexible. Still Firefox.
What comes to mind when you think of Firefox? Is it our best-in-class privacy features and ad blocking capabilities? Our partnerships with Wrexham, NVIDIA or Mistral? Or maybe our adorable mascot Kit?
If you've been following Firefox this year, you've seen us add new ways to get things done while giving you more choice over how you browse. That includes browsing two pages side by side, adding an extra layer of privacy with built-in VPN, blocking trackers for smoother scrolling and faster load times, and deciding how AI shows up in Firefox.
For the past few months, many of you have also been trying out our new Firefox design in Nightly and sharing your thoughts with us as we continued to refine the experience.
Today, we're rolling out that design with FX 157 to everyone using Firefox across desktop and mobile devices. Firefox has done a lot of growing over the last year; now it looks the part.
A more modern Firefox
When we first shared our plans to design Firefox for the future, we said we wanted Firefox to feel "current, but not generic. Warm, but still precise."
That design ethos now carries across all of Firefox. We've refreshed the colors, icons and themes throughout the browser, from the tabs and toolbars you use every day to your New Tab page, Private Browsing experience and more, with no cost to your browser performance.
This shared design language across desktop and mobile gives Firefox a consistent foundation for new features and experiences, while keeping the personality that makes Firefox unique.
Make Firefox yours
We've added more choices for how Firefox looks and works, including the return of a feature many of you asked for:
Compact Mode is back. As people started trying the new design, we heard from many of you who wanted to fit more into your browser window. Compact Mode reduces the size of your tabs and toolbar to give more of your screen to the web, with an auto-compact option for smaller screens.

Find your look. A new theme picker makes it easier to explore different looks for Firefox, with new themes and wallpapers to choose from.

Set up New Tab your way. Choose what you want to see on your homepage. Now, you have a dedicated space to pin and organize shortcuts so sites you use all the time stay put.

Refined, not reinvented
Themes and wallpapers may change over time, but the things that made people choose Firefox in the first place are still the same. We're still independent and open source, with privacy protections built into the browser and controls that put you in charge of how Firefox works for you.
This carries through everything we build, from the height of your toolbars and what belongs on your New Tab page to which AI features show up in your browser, which model you choose and what context you want it to have.
Today's Firefox is a renewal, grounded in the same principles that have shaped it from the beginning, with a new design built to carry Firefox forward.
For those who have come with us on this journey, thank you for helping us shape the future of Firefox.
If you've been away on hiatus, welcome back. Try the latest Firefox and let us know what you think.
The post More modern. More flexible. Still Firefox. appeared first on The Mozilla Blog.
29 Sep 2026 1:00pm GMT
Mozilla Data YouTube Channel: GLAM Datasets
Marina Samuel and Anthony Miyaguchi talk about the ETL pipeline created for the GLAM project (https://github.com/mozilla/glam).
29 Sep 2026 9:57am GMT
Mozilla Data YouTube Channel: Data Club Lightning Talk: Jan-Erik Rediger - Your personal Glean data pipeline
This talk was given as part of the Data Club Lightning Talk Session on February 11th, 2022. More on https://blog.mozilla.org/data/2022/02/25/this-week-in-glean-your-personal-glean-data-pipeline Information about Glean: https://mozilla.github.io/glean/book/index.html
29 Sep 2026 8:18am GMT




