FluidFramework/build-tools
Michael Zhen e8d8c654e1
(docs): update build-docs to deploy v2 artifacts (#22934)
Update to deployment and docs generation: adjustments to deploy v2
artifact instead of main artifacts. Note: while the update aims to
deploy artifacts from the latest release branches instead of main, the
actual website build is still done on the main branch. This will prevent
the pipeline from deploying docs which were generated with an outdated
version of the website.
Notable changes:

deploy-docs:
- shifted most of the stages from build-docs to deploy-docs
- build-docs now runs check_branch_version -> upload-json -> trigger
deploy

build-docs:
- shifted check_branch_version to the top since its output is required
to properly in the upload json step

upload-json-step:
- added a new upload step which uploads artifacts with the name
"latest-v*.tar.gz"
- takes in new parameters from check_branch_version to ensure it only
uploads with this name when the pipeline is running on the latest
release branch

latestVersions:
- since upload-json-step requires majorVersion, I figured it was best to
include it as an output variable for the function as it seems more
robust compared to relying on a string parsing script in the pipeline
itself

download-apis:
- update such that it only downloads "latest-v*.tar.gz" instead of the
main branch artifacts
2024-11-18 15:30:43 -08:00
..
.vscode build(build-tools): Add vscode workspace for build-tools (#22810) 2024-10-15 12:06:53 -07:00
feeds flub list uses --outFile arg instead of console redirect (#17927) 2023-10-21 21:50:08 -07:00
packages (docs): update build-docs to deploy v2 artifacts (#22934) 2024-11-18 15:30:43 -08:00
patches build(build-tools): Upgrade jssm and jssm-viz, patch jssm-viz (#22880) 2024-10-25 16:17:04 +00:00
.czrc
.gitignore
.npmignore
.npmrc build: Set prefer-frozen-lockfile=true in all .npmrc files (#21922) 2024-07-16 18:19:41 -07:00
.prettierignore build(build-tools): Use biome for formatting instead of prettier (#19113) 2024-03-06 01:11:28 +00:00
.releaseGroup build: Remove lerna from client and build-tools (#16161) 2023-08-17 13:04:31 -07:00
CHANGELOG.md chore(build-tools): Update release group changelog (#22972) 2024-11-07 18:01:11 -08:00
README.md docs(build-tools): Add info about testing build-tools against client (#22682) 2024-09-30 23:08:15 +00:00
RELEASE_NOTES.md build: Include and format package.json and other projects (#13938) 2023-02-02 11:33:40 -08:00
api-extractor-base.json build(client): Enable biome as default formatter (#21298) 2024-06-17 16:57:07 -07:00
biome.jsonc improvement(fluid-build): Support include/ignore settings in Biome task (#21826) 2024-08-19 20:30:58 +00:00
commitlint.config.cjs build: Include and format package.json and other projects (#13938) 2023-02-02 11:33:40 -08:00
lerna.json [bump] build-tools: 0.51.0 => 0.52.0 (minor) (#23091) 2024-11-14 12:09:02 -08:00
package.json [bump] build-tools: 0.51.0 => 0.52.0 (minor) (#23091) 2024-11-14 12:09:02 -08:00
pnpm-lock.yaml refactor(build-tools): Replace chalk with picocolors (#23034) 2024-11-11 15:50:08 -08:00
pnpm-workspace.yaml build: Narrow workspace definitions (#19047) 2024-01-04 02:45:45 +00:00
syncpack.config.cjs build(build-cli): Upgrade jssm-viz and remove patch (#22941) 2024-10-30 13:02:08 -07:00

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.

Testing build-tools changes in the client release group

It is very useful to test changes in build-tools against the client release group because the test coverage of build-tools is limited, and manually testing locally with the client will expose obvious things like broken incremental builds, etc.

The easiest way to test build-tools in client is to use pnpm overrides. You can use the following command from the root of the repo to update the root package.json and lockfile to link to the local version of build-tools:

npm pkg set pnpm.overrides.@fluidframework/build-tools=link:./build-tools/packages/build-tools pnpm.overrides.@fluid-tools/build-cli=link:./build-tools/packages/build-cli
pnpm i --no-frozen-lockfile

Once done, when you run pnpm build from the root, it will invoke the local in-repo versions of flub and fluid-build.

[!TIP] Note that if you make changes to build-tools, you'll need to rebuild build-tools for those changes to take effect in the client release group.

You cannot merge in this state, but it allows you to test changes locally, including applying the results of new repo policies, re-generating type tests with updated code, etc.

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.