From b6c8c3f3d948c8b694b9de69445ea55f5d57832d Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Wed, 19 Nov 2025 15:28:40 -0500 Subject: [PATCH] Remove migrated scripts (#43095) These scripts have been migrated to: https://github.com/zed-industries/release_notes Release Notes: - N/A --- script/get-preview-channel-changes | 127 ------------------------ script/get-stable-channel-release-notes | 101 ------------------- 2 files changed, 228 deletions(-) delete mode 100755 script/get-preview-channel-changes delete mode 100755 script/get-stable-channel-release-notes diff --git a/script/get-preview-channel-changes b/script/get-preview-channel-changes deleted file mode 100755 index 6ba274eabc1a9c850e53c86ddafb73a26c0c5d34..0000000000000000000000000000000000000000 --- a/script/get-preview-channel-changes +++ /dev/null @@ -1,127 +0,0 @@ -#!/usr/bin/env node --redirect-warnings=/dev/null - -const { execFileSync } = require("child_process"); -let { GITHUB_ACCESS_TOKEN } = process.env; -const GITHUB_URL = "https://github.com"; -const SKIPPABLE_NOTE_REGEX = /^\s*-?\s*n\/?a\s*/ims; -const PULL_REQUEST_WEB_URL = "https://github.com/zed-industries/zed/pull"; -const PULL_REQUEST_API_URL = "https://api.github.com/repos/zed-industries/zed/pulls"; -const DIVIDER = "-".repeat(80); - -main(); - -async function main() { - if (!GITHUB_ACCESS_TOKEN) { - try { - GITHUB_ACCESS_TOKEN = execFileSync("gh", ["auth", "token"]).toString(); - } catch (error) { - console.log(error); - console.log("No GITHUB_ACCESS_TOKEN, and no `gh auth token`"); - process.exit(1); - } - } - - const STAFF_MEMBERS = new Set( - ( - await ( - await fetch("https://api.github.com/orgs/zed-industries/teams/staff/members?per_page=100", { - headers: { - Authorization: `token ${GITHUB_ACCESS_TOKEN}`, - Accept: "application/vnd.github+json", - }, - }) - ).json() - ).map(({ login }) => login.toLowerCase()), - ); - - const isStaffMember = (githubHandle) => { - githubHandle = githubHandle.toLowerCase(); - return STAFF_MEMBERS.has(githubHandle); - }; - - // Get the last two preview tags - const [newTag, oldTag] = execFileSync("git", ["tag", "--sort", "-committerdate"], { encoding: "utf8" }) - .split("\n") - .filter((t) => t.startsWith("v") && t.endsWith("-pre")); - - // Print the previous release - console.log(`Changes from ${oldTag} to ${newTag}\n`); - - // Get the PRs merged between those two tags. - const pullRequestNumbers = getPullRequestNumbers(oldTag, newTag); - - // Get the PRs that were cherry-picked between main and the old tag. - const existingPullRequestNumbers = new Set(getPullRequestNumbers("main", oldTag)); - - // Filter out those existing PRs from the set of new PRs. - const newPullRequestNumbers = pullRequestNumbers.filter((number) => !existingPullRequestNumbers.has(number)); - - // Fetch the pull requests from the GitHub API. - console.log("Merged Pull requests:"); - console.log(DIVIDER); - for (const pullRequestNumber of newPullRequestNumbers) { - const pullRequestApiURL = `${PULL_REQUEST_API_URL}/${pullRequestNumber}`; - - const response = await fetch(pullRequestApiURL, { - headers: { - Authorization: `token ${GITHUB_ACCESS_TOKEN}`, - }, - }); - - const pullRequest = await response.json(); - const releaseNotesHeader = /^\s*Release Notes:(.+)/ims; - - const releaseNotes = pullRequest.body || ""; - let contributor = pullRequest.user?.login ?? "Unable to identify contributor"; - const captures = releaseNotesHeader.exec(releaseNotes); - let notes = captures ? captures[1] : "MISSING"; - notes = notes.trim(); - const isStaff = isStaffMember(contributor); - - if (SKIPPABLE_NOTE_REGEX.exec(notes) != null) { - continue; - } - - const credit = getCreditString(pullRequestNumber, contributor, isStaff); - contributor = isStaff ? `${contributor} (staff)` : contributor; - - console.log(`PR Title: ${pullRequest.title}`); - console.log(`Contributor: ${contributor}`); - console.log(`Credit: (${credit})`); - - console.log("Release Notes:"); - console.log(); - console.log(notes); - - console.log(DIVIDER); - } -} - -function getCreditString(pullRequestNumber, contributor, isStaff) { - let credit = ""; - - if (pullRequestNumber) { - const pullRequestMarkdownLink = `[#${pullRequestNumber}](${PULL_REQUEST_WEB_URL}/${pullRequestNumber})`; - credit += pullRequestMarkdownLink; - } - - if (contributor && !isStaff) { - const contributorMarkdownLink = `[${contributor}](${GITHUB_URL}/${contributor})`; - credit += `; thanks ${contributorMarkdownLink}`; - } - - return credit; -} - -function getPullRequestNumbers(oldTag, newTag) { - const pullRequestNumbers = execFileSync("git", ["log", `${oldTag}..${newTag}`, "--oneline"], { encoding: "utf8" }) - .split("\n") - .filter((line) => line.length > 0) - .map((line) => { - const match = line.match(/#(\d+)/); - return match ? match[1] : null; - }) - .filter((line) => line); - - return pullRequestNumbers; -} diff --git a/script/get-stable-channel-release-notes b/script/get-stable-channel-release-notes deleted file mode 100755 index cbaf6497eeee7f6642c4b8b884cb42c3774047d5..0000000000000000000000000000000000000000 --- a/script/get-stable-channel-release-notes +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env node --redirect-warnings=/dev/null - -// This script should be ran before `bump-zed-minor-versions` - -// Prints the changelogs for all preview releases associated with the most -// recent preview minor version. - -// Future TODO: Have the script perform deduplication of lines that were -// included in both past stable and preview patches that shouldn't be mentioned -// again in this week's stable minor release. - -// Future TODO: Get changelogs for latest cherry-picked commits on preview and -// stable that didn't make it into a release, as they were cherry picked - -const { execFileSync } = require("child_process"); -let { GITHUB_ACCESS_TOKEN } = process.env; -const GITHUB_TAGS_API_URL = "https://api.github.com/repos/zed-industries/zed/releases/tags"; -const DIVIDER = "-".repeat(80); - -main(); - -async function main() { - if (!GITHUB_ACCESS_TOKEN) { - try { - GITHUB_ACCESS_TOKEN = execFileSync("gh", ["auth", "token"]).toString(); - } catch (error) { - console.log(error); - console.log("No GITHUB_ACCESS_TOKEN and no `gh auth token`"); - process.exit(1); - } - } - - const allTags = execFileSync("git", ["tag", "--sort", "-committerdate"], { encoding: "utf8" }) - .split("\n") - .filter((t) => t.length > 0); - const latestPreviewTag = allTags.filter((t) => t.startsWith("v") && t.endsWith("-pre"))[0]; - const latestPreviewMinorVersion = latestPreviewTag.split(".")[1]; - const latestPreviewTagRegex = new RegExp(`^v(\\d+)\\.(${latestPreviewMinorVersion})\\.(\\d+)-pre$`); - - const parsedPreviewTags = allTags - .map((tag) => { - const match = tag.match(latestPreviewTagRegex); - if (match) { - return { - tag, - version: { - major: parseInt(match[1]), - minor: parseInt(match[2]), - patch: parseInt(match[3]), - }, - }; - } - return null; - }) - .filter((item) => item !== null) - .sort((a, b) => a.version.patch - b.version.patch); - - const matchingPreviewTags = parsedPreviewTags.map((item) => item.tag); - - console.log("Fetching release information for preview tags:"); - console.log(DIVIDER); - - for (const tag of matchingPreviewTags) { - const releaseApiUrl = `${GITHUB_TAGS_API_URL}/${tag}`; - - try { - const response = await fetch(releaseApiUrl, { - headers: { - Authorization: `token ${GITHUB_ACCESS_TOKEN}`, - }, - }); - - if (!response.ok) { - console.log(`Failed to fetch release for ${tag}: ${response.status}`); - continue; - } - - const release = await response.json(); - - console.log(`\nRelease: ${release.name || tag}`); - console.log(`Tag: ${tag}`); - console.log(`Published: ${release.published_at}`); - console.log(`URL: ${release.html_url}`); - console.log("\nRelease Notes:"); - console.log(release.body || "No release notes"); - console.log(DIVIDER); - } catch (error) { - console.log(`Error fetching release for ${tag}:`, error.message); - } - } - - const patchUpdateTags = parsedPreviewTags.filter((tag) => tag.version.patch != 0).map((tag) => tag.tag); - - console.log(); - console.log("Please review the release notes associated with the following patch versions:"); - for (const tag of patchUpdateTags) { - console.log(`- ${tag}`); - } - console.log("Remove items that have already been mentioned in the current published stable versions."); - console.log("https://github.com/zed-industries/zed/releases?q=prerelease%3Afalse&expanded=true"); -}