Skip to content

Latest commit

 

History

History
 
 

build-tools

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.

Documenting build-tools changes

Build-tools uses conventional commits to generate changelogs, not changesets. Use a conventional-commit PR title and describe the user impact in the PR body. Update the relevant command or package documentation.

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. Uncomment the entries under the overrides: key for "build-tools" in the repo root's pnpm-workspace.yaml, then refresh the lockfile:

overrides:
  # Uncomment all or some below and run `pnpm install --no-frozen-lockfile` to apply
  # these overrides to use locally built build-tools packages.
  "@fluid-tools/build-cli": "link:./build-tools/packages/build-cli"
  "@fluid-tools/build-infrastructure": "link:./build-tools/packages/build-infrastructure"
  "@fluid-tools/version-tools": "link:./build-tools/packages/version-tools"
  "@fluidframework/build-tools": "link:./build-tools/packages/build-tools"
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

You can contribute to Fluid Framework in these ways:

For detailed instructions, read the repo documentation.

This project follows the Microsoft Open Source Code of Conduct. For more information, read the Code of Conduct frequently asked questions. For questions or comments, contact opencode@microsoft.com.

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.

Help

Read the Fluid Framework documentation for information about Fluid Framework concepts and APIs.

To request information that the documentation does not contain, create an issue.

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.