Created
December 10, 2025 07:48
-
-
Save juliandescottes/e523634a756c35cae7a8de6fbfe6da1a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |
| <title>DevTools Cycle Tasks Generator</title> | |
| <style type="text/css"> | |
| body { | |
| margin: 40px 50px; | |
| font-family: sans-serif; | |
| } | |
| #output { | |
| padding: 20px; | |
| overflow: hidden; | |
| white-space: pre-wrap; | |
| } | |
| #input-container { | |
| align-items: center; | |
| display: grid; | |
| grid-column-gap: 10px; | |
| grid-row-gap: 10px; | |
| grid-template-columns: max-content max-content; | |
| margin: 10px 0; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <h1>DevTools Cycle Tasks Generator</h1> | |
| <p>Fill in the cycle version</p> | |
| <div id="input-container"> | |
| <label>Cycle Version</label><input id="cycle-version" placeholder="99"> | |
| </div> | |
| <h1>Output</h1> | |
| <p>The output is updated automatically when changing the cycle version above.</p> | |
| <button id="copy-to-clipboard" style="margin:auto">Copy to clipboard</button> | |
| <p> | |
| Create a new bug blocking the <a href="https://bugzilla.mozilla.org/enter_bug.cgi?format=__default__&blocked=1704796&product=DevTools&component=General">cycle tasks meta</a>. | |
| </p> | |
| <pre id="output" style="border: 1px solid grey"></pre> | |
| <script type="text/javascript"> | |
| const getTemplate = async () => { | |
| const cycleVersion = parseInt(document.getElementById("cycle-version").value, 10); | |
| if (!cycleVersion || isNaN(cycleVersion)) { | |
| return `Invalid cycle version: ${cycleVersion}`; | |
| } | |
| const dateRequest = await fetch("https://whattrainisitnow.com/api/release/schedule/?version=" + cycleVersion); | |
| const dateJson = await dateRequest.json(); | |
| const softFreeze = dateJson.soft_code_freeze.split(" ")[0]; | |
| const mergeDay = dateJson.merge_day.split(" ")[0]; | |
| const backwardCleanupVersion = cycleVersion - 2; | |
| const smokeTestReleaseVersion = cycleVersion - 1; | |
| const previousMarionetteVersion = cycleVersion - 2; | |
| const marionetteVersion = cycleVersion - 1; | |
| const qaVersion = cycleVersion - 1; | |
| const template = | |
| `Soft Freeze / Merge Date: ${softFreeze} / ${mergeDay} (from the [Release train page](https://whattrainisitnow.com/)) | |
| More details about any of those tasks can be found at: https://firefox-source-docs.mozilla.org/devtools/release.html | |
| Anytime during the release: | |
| - [ ] outdated backward compatibility code removed ([doc](https://firefox-source-docs.mozilla.org/devtools/backend/backward-compatibility.html), [searchfox](https://searchfox.org/mozilla-central/search?path=devtools&q=%40backward-compat%20{%20version%20${backwardCleanupVersion}%20})) | |
| - [ ] outdated telemetry probes removed ([bz query](https://mzl.la/3cCGDd3)) | |
| - [ ] in devtools-qa bugs, needinfo the triage owner (or the assignee if they are a team member) to test the bug in beta channel ([bz query](https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&status_whiteboard_type=substring&list_id=16055636&o1=equals&status_whiteboard=[devtools-qa]&v1=fixed&f1=cf_status_firefox${qaVersion})) | |
| Close to the end of the release (eg 1 week before code freeze) | |
| - [ ] Update MDN data for the Compatibility panel follow [devtools/shared/compatibility/README.md](https://searchfox.org/mozilla-central/source/devtools/shared/compatibility/README.md) | |
| - [ ] Check the browser information in the Compatibility Panel is up to date (example: version number for Firefox Nightly should be ${cycleVersion}): | |
| - Steps: Open the Inspector, then select the Compatibility side panel, and click on Settings to see the list of all browsers | |
| - [ ] smoke test for remote debugging against version ${smokeTestReleaseVersion} ([doc](https://firefox-source-docs.mozilla.org/devtools/release.html#smoke-test-remote-debugging)) | |
| - [ ] smoke test for remote debugging against the same version (version ${cycleVersion}) ([same doc](https://firefox-source-docs.mozilla.org/devtools/release.html#smoke-test-remote-debugging)) | |
| - [ ] check xpcshell debugging ([doc](https://firefox-source-docs.mozilla.org/devtools/release.html#check-xpcshell-debugging)) | |
| Marionette and BiDi: | |
| - [ ] close to the end of release (~1 week), based on the [list of bugs fixed during the release](https://bugzilla.mozilla.org/buglist.cgi?list_id=16664529&v1=fixed&resolution=FIXED&f2=cf_status_firefox${previousMarionetteVersion}&query_format=advanced&o1=equals&f1=cf_status_firefox${marionetteVersion}&o2=notequals&status_whiteboard=%5Bwebdriver%3Arelnote%5D&columnlist=component%2Cresolution%2Cassigned_to%2Cshort_desc%2Cbug_type%2Cstatus_whiteboard&status_whiteboard_type=substring&v2=fixed), update Marionette release notes on MDN for ${marionetteVersion}: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/${marionetteVersion}#webdriver_conformance_marionette. | |
| - [ ] right after the release of Firefox ${marionetteVersion}, send a mail to the [dev-webdriver](https://groups.google.com/a/mozilla.org/g/dev-webdriver) mailing list. | |
| For reference: [full list of Marionette and BiDi bugs fixed during the release](https://bugzilla.mozilla.org/buglist.cgi?o1=equals&v3=fixed&v2=%5Bwptsync%20downstream%5D&f1=cf_status_firefox${marionetteVersion}&f2=status_whiteboard&o3=notequals&component=Agent&component=Marionette&component=WebDriver%20BiDi&v1=fixed&resolution=FIXED&list_id=16664522&query_format=advanced&f3=cf_status_firefox${previousMarionetteVersion}&o2=notsubstring&columnlist=component%2Cresolution%2Cassigned_to%2Cshort_desc%2Cbug_type%2Cstatus_whiteboard&product=Remote%20Protocol). | |
| Template suggestion for the Marionette email (adjust wording if relevant): | |
| \`\`\` | |
| Firefox ${marionetteVersion} has just been released, containing updates for our WebDriver (BiDi, Marionette) support. | |
| You can find all the details in the change log for web developers: | |
| https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/${marionetteVersion}#webdriver_conformance_webdriver_bidi_marionette | |
| \`\`\` | |
| See https://docs.google.com/document/d/1t8pR_lcTkjZjX1ddOf6tyvPY8dtE519Vlu8wXX58x_E for detailed explanations about Marionette tasks, or contact :whimboo / :jdescottes for help | |
| Nice to have: | |
| - [ ] Generate webidl-pure-allowlist.js and webidl-deprecated-list.js ([doc](https://firefox-source-docs.mozilla.org/devtools/release.html#generate-webidl-pure-allowlist-js-and-webidl-deprecated-list-js))`; | |
| return template; | |
| } | |
| const outputEl = document.getElementById("output"); | |
| const inputContainer = document.getElementById("input-container"); | |
| const copyToClipboardEl = document.getElementById("copy-to-clipboard"); | |
| const selectTemplateText = () => { | |
| const range = document.createRange(); | |
| range.selectNodeContents(outputEl); | |
| const sel = window.getSelection(); | |
| sel.removeAllRanges(); | |
| sel.addRange(range); | |
| return sel; | |
| } | |
| const updateOutput = async () => { | |
| outputEl.innerHTML = await getTemplate(); | |
| } | |
| // Event listeners | |
| inputContainer.addEventListener("input", updateOutput); | |
| outputEl.addEventListener("click", selectTemplateText); | |
| copyToClipboardEl.addEventListener("click", e => { | |
| const sel = selectTemplateText(); | |
| document.execCommand('copy'); | |
| // Timeout is just here to give some user feedback: text gets selected and | |
| // then unselected | |
| setTimeout(() => sel.removeAllRanges(), 100); | |
| }); | |
| // Update initial output. | |
| updateOutput(); | |
| </script> | |
| </body> | |
| </html> |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
https://html-preview.github.io/?url=https://gist.githubusercontent.com/juliandescottes/e523634a756c35cae7a8de6fbfe6da1a/raw/54f7de0a0b7cfb622f4c4f577874343d0a844ee8/release_task_generator.html