FluidFramework/build-tools
Tyler Butler d2995daf42
feat(build-cli): New command transform:releaseNotes (#22466)
## The problem

Our goal is to automate the release process as much as possible. To that
end, now that we have a release notes generator, we'd like to
automatically upload those notes to the GitHub release as part of the
automated release.

Unfortunately, when we generate changelogs as part of release, we
consume and delete all the changesets for the release. However, we
generate a markdown file with the release notes as part of the release,
and that gets committed to the repo. Alas, we need the markdown to be
slightly different when posted to GitHub releases, and we don't have the
input changesets anymore, so we can't easily regenerate them in
automation (we'd need to find the commit in which the changesets were
consumed, go to the commit before, regenerate - it's not trivial).

## The proposed change

Since we have the release notes files in the repo, I have created a new
command, `transform:releaseNotes`, which takes the in-repo release notes
file as input, and outputs a modified markdown file for use in the
release pipeline. For example:

`flub transform releaseNotes --inFile RELEASE_NOTES/2.2.0.md --outFile
out.md`

---------

Co-authored-by: Alex Villarreal <716334+alexvy86@users.noreply.github.com>
Co-authored-by: jzaffiro <110866475+jzaffiro@users.noreply.github.com>
2024-09-13 17:01:47 -07:00
..
.vscode
feeds
packages feat(build-cli): New command transform:releaseNotes (#22466) 2024-09-13 17:01:47 -07:00
patches
.czrc
.gitignore
.npmignore
.npmrc
.prettierignore
.releaseGroup
CHANGELOG.md
README.md
RELEASE_NOTES.md
api-extractor-base.json
biome.jsonc
commitlint.config.cjs
lerna.json [bump] build-tools: 0.46.0 => 0.47.0 (minor) (#22496) 2024-09-13 09:03:42 -07:00
package.json [bump] build-tools: 0.46.0 => 0.47.0 (minor) (#22496) 2024-09-13 09:03:42 -07:00
pnpm-lock.yaml feat(build-cli): New command transform:releaseNotes (#22466) 2024-09-13 17:01:47 -07:00
pnpm-workspace.yaml
syncpack.config.cjs

README.md

@fluid-tools/build-tools

This folder contains packages used for building and managing the contents of Fluid Framework repositories and implementing the Fluid Framework release process.

@fluid-tools/build-cli (aka flub)

A build and release tool for the Fluid Framework GitHub repositories. flub is intended to replace the existing fluid build-tools, primarily by reusing existing build-tools functionality and wrapping it in a more consistent, maintainable CLI using oclif.

@fluidframework/build-tools

This package contains both CLI tools and supporting code. This is the home of all the "classic" Fluid build tools, like policy-check, fluid-bump-version, etc.

Note: Don't add new CLI commands to this package. Instead, add a new command to the build-cli package and import the functionality you need from this package.

@fluid-tools/version-tools

This package contains APIs and a CLI for working with semantic versioning version strings and ranges, especially those using Fluid-specific version schemes.

Contribution Guidelines

There are many ways to contribute to Fluid.

Detailed instructions for working in the repo can be found in the Wiki.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

This project may contain Microsoft trademarks or logos for Microsoft projects, products, or services. Use of these trademarks or logos must follow Microsofts Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.

Help

Not finding what you're looking for in this README? Check out fluidframework.com.

Still not finding what you're looking for? Please file an issue.

Thank you!

Trademark

This project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.

Use of these trademarks or logos must follow Microsoft's Trademark & Brand Guidelines.

Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.