Release Engineering Guidelines

Pale Moon (and other applications on the Unified XUL Platform Stable Release train) utilize a four week release cycle. This is mainly due to Mozilla's similar move from a six to eight week cycle to releasing a new Firefox version every four weeks. Since we retain some historical similarity with our wayward sibling, both Application and Platform wise, we MUST take care to evaluate any Mozilla security fixes included in their releases.

However, the current practice that was formalized in an earlier version of this document has proven too inflexible with only allowing approximately three weeks of every four week release cycle for tangible development and testing of often complex and radical changes. Thus we have devised an improved strategy for maximum flexibility and efficiency while satisfying the security requirements imposed by Mozilla's increasingly frantic releases.

The Release Cycle

Pale Moon will primarily be alternating between the type of release every four weeks with a Major/Feature (including security fixes) release and a Minor/Security release. This will be similar in practice to how the releases worked pre-2020.

NOTE: There will be instances such as a particularly productive development period where it is desirable to make the next release a major one. As well as special occasions such as an approaching milestone release happening or emergency releases such as a target operating system specific out-of-band release or to address a found zero-day flaw. However, primarily we will be sticking with this alternating Major and Security release scheme.

Current release schedule for Pale Moon

The advantage or disadvantage (depending on your point of view) to a set calendar based cycle is that in general our releases are predictable by specific calendar days. As such, we have outlined the anticipated release schedule and it will be kept updated for any changes.

Each date is offset from Mozilla Firefox's release day by one week to allow requesting of security access and evaluation of any known Mozilla vulnerabilities. This also gives us the time to test and stabilize the codebase for release.

  • 29.1.0 - 2020-03-02 - Major Release
  • 29.1.1 - 2020-03-30 - Security Release
  • 29.2.0 - 2020-04-27 - Major Release
  • 29.2.1 - 2020-05-25 - Security Release
  • 29.3.0 - 2020-06-22 - Major Release
  • 29.3.1 - 2020-07-20 - Security Release

NOTE: Major releases do include security fixes (when applicable) and security releases may include minor changes.

Release Engineering Workflow

Our release engineering workflow happens over the course of one week starting with Firefox Release Day which tends to always be a Tuesday and will run through the week to the following Tuesday which is our release day as outlined above.

  • Tuesday - Firefox Release Day
    • The master branches will be placed under a "CLOSED TREE" type of condition where no high-risk patches and feature merges will be permitted until after merge day.
    • Security Access will be requested on all known Mozilla vulnerabilities described on the Mozilla Foundation Security Advisory.
  • Tuesday through Friday - Security Updates
    • Each known Mozilla security vulnerability will be evaluated and patched, if applicable.
  • Friday - Release Branch Preparations (Merge Day)
    • For Major Releases: The master branches will be merged to the release branches.
    • For Security Releases: The security patches and any minor patches will be cherry-picked to the release branches.
    • Application Release Notes and UXP Change Log will be drafted.
  • Friday through Monday - Build and Test Release Candidates
    • Build signed binaries for various target operating systems and make them available for final acceptance tests.
    • Test built binaries for any show-stoppers. Implement spot-fixes or back-out problematic code changes that are too big to tackle on short notice. Building new binaries (RC2, 3, etc.) as-needed.
  • Monday - Finalize Releases
    • Distribute final binaries to release mirrors.
    • Signal external mirrors.
    • Write final Application Release Notes and UXP Change Log.
    • Distribute final binaries to release mirrors.
  • Tuesday - Our Release Day
    • Put web pages live, enable new downloads.
    • Publish announcements on forum and to any applicable social media.

Site design and Branding © 2021 Moonchild Productions - All rights reserved
Any other content, brand names or logos are copyright or trademark to their respective owners.
Policies: Cookies - User Content - Privacy.

The Pale Moon Developer Site is powered by Project Selene 1.0.0a1.