mochajs / mocha

☕️ simple, flexible, fun javascript test framework for node.js & the browser

Home Page:https://mochajs.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🛠 Repo: New release with no features (testing the release pipeline)

JoshuaKGoldberg opened this issue · comments

Tooling Suggestion Checklist

Overview

Spinning out of #5027: we need to be able to publish new releases of Mocha. None of us new maintainers have done that or gone through the specific release flow for Mocha before. This issue tracks us making sure we can.

Additional Info

https://github.com/mochajs/mocha/blob/53a4bafbdeb32576440b0a21787f2525585411c0/MAINTAINERS.md#mochas-release-process describes the release process.

Tried it out and I don't have publish permissions. Jotting down the steps I took here for future reference...

First, I visited https://github.com/mochajs/mocha/pulls?q=is%3Apr+is%3Amerged+merged%3A%3E2022-12-04 to get the PRs merged since the last release. This script generates a changelog list based on those PR names:

function printPullRequestLine(element) {
    // [#5069](https://github.com/mochajs/mocha/pull/5069): chore: remove unnecessary canvas dependency ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg))
    const href = element.getAttribute("href");
    const id = href.split("/").at(-1);
    const author = element.parentElement.querySelector(`[data-hovercard-type="user"]`).textContent;
    return `- [#${id}](https://github.com${href}): ${element.textContent} ([**@${author}**](https://github.com/${author}))`
}

Array.from(document.querySelectorAll(`[data-hovercard-type="pull_request"]`))
    .map(printPullRequestLine)
    .join("\n")

I then added those in CHANGELOG.md:

# 10.3.0-prerelease / 2024-01-18

This is a prerelease version to test our ability to release.
Other than removing or updating dependencies, it contains no intended user-facing changes.

## :nut_and_bolt: Other

- [#5069](https://github.com/mochajs/mocha/pull/5069): chore: remove unnecessary canvas dependency ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg))
- [#5068](https://github.com/mochajs/mocha/pull/5068): fix: add alt text to Built with Netlify badge ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg))
- [#5056](https://github.com/mochajs/mocha/pull/5056): chore: inline nyan reporter's write function ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg))
- [#5050](https://github.com/mochajs/mocha/pull/5050): docs: touchups to labels and a template title post-revamp ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg))
- [#5038](https://github.com/mochajs/mocha/pull/5038): docs: overhaul contributing and maintenance docs for end-of-year 2023 ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg))
- [#5029](https://github.com/mochajs/mocha/pull/5029): chore: remove stale workflow ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg))
- [#5024](https://github.com/mochajs/mocha/pull/5024): chore: remove nanoid as dependency ([**@Uzlopak**](https://github.com/Uzlopak))
- [#5023](https://github.com/mochajs/mocha/pull/5023): chore: remove touch as dev dependency ([**@Uzlopak**](https://github.com/Uzlopak))
- [#5022](https://github.com/mochajs/mocha/pull/5022): chore: remove uuid dev dependency ([**@Uzlopak**](https://github.com/Uzlopak))
- [#5021](https://github.com/mochajs/mocha/pull/5021): update can-i-use ([**@Uzlopak**](https://github.com/Uzlopak))
- [#5020](https://github.com/mochajs/mocha/pull/5020): chore: fix the ci ([**@Uzlopak**](https://github.com/Uzlopak))
- [#4974](https://github.com/mochajs/mocha/pull/4974): Add Node v19 to test matrix ([**@juergba**](https://github.com/juergba))
- [#4970](https://github.com/mochajs/mocha/pull/4970): fix [#4837](https://github.com/mochajs/mocha/issues/4837) Update glob due to vulnerability in dep ([**@jb2311**](https://github.com/jb2311))
- [#4962](https://github.com/mochajs/mocha/pull/4962): Fix deprecated warn gh actions ([**@outsideris**](https://github.com/outsideris))
- [#4927](https://github.com/mochajs/mocha/pull/4927): docs: use mocha.js instead of mocha in the example run ([**@nikolas**](https://github.com/nikolas))
- [#4918](https://github.com/mochajs/mocha/pull/4918): docs: fix fragment ID for yargs' "extends" documentation ([**@Spencer-Doak**](https://github.com/Spencer-Doak))
- [#4886](https://github.com/mochajs/mocha/pull/4886): docs: fix jsdoc return type of titlePath method ([**@F3n67u**](https://github.com/F3n67u))

These scripts created a preminor version and then tried to release:

npm version preminor -m "Release v%s" --preid preminor
npm publish --tag prerelease

Result: 403 permission denied. I'll need to find a previous maintainer-person to give publish permissions to my joshuakgoldberg on npm.

https://www.npmjs.com/package/mocha/v/10.3.0-preminor.0: is released under the next tag. You can install it with npm i mocha@next. 🚀

Great job! 🥳 🥳 🥳