Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 4.2k
ci: introduce changesets#9502
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
ci: introduce changesets #9502
Changes from all commits
File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| { | ||
| "$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json", | ||
| "changelog": [ | ||
| "@svitejs/changesets-changelog-github-compact", | ||
| { "repo": "TanStack/query" } | ||
| ], | ||
| "commit": false, | ||
| "access": "public", | ||
| "baseBranch": "main", | ||
| "updateInternalDependencies": "patch", | ||
| "fixed": [], | ||
| "linked": [] | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| ## 🎯 Changes | ||
| <!-- What changes are made in this PR? Describe the change and its motivation. --> | ||
| ## ✅ Checklist | ||
| - [ ] I have followed the steps in the [Contributing guide](https://github.com/TanStack/query/blob/main/CONTRIBUTING.md). | ||
| - [ ] I have tested this code locally with `pnpm test:pr`. | ||
| ## 🚀 Release Impact | ||
| - [ ] This change affects published code, and I have generated a [changeset](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md). | ||
| - [ ] This change is docs/CI/dev-only (no release). |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,11 +1,6 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| name: ci | ||||||||||||||||||||||||||||||||||||||||||||||||||
| name: Release | ||||||||||||||||||||||||||||||||||||||||||||||||||
| on: | ||||||||||||||||||||||||||||||||||||||||||||||||||
| workflow_dispatch: | ||||||||||||||||||||||||||||||||||||||||||||||||||
| inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
| tag: | ||||||||||||||||||||||||||||||||||||||||||||||||||
| description: override release tag | ||||||||||||||||||||||||||||||||||||||||||||||||||
| required: false | ||||||||||||||||||||||||||||||||||||||||||||||||||
| push: | ||||||||||||||||||||||||||||||||||||||||||||||||||
| branches: [main, alpha, beta, rc, v4] | ||||||||||||||||||||||||||||||||||||||||||||||||||
| @@ -39,16 +34,20 @@ jobs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Stop Nx Agents | ||||||||||||||||||||||||||||||||||||||||||||||||||
| if: ${{ always() }} | ||||||||||||||||||||||||||||||||||||||||||||||||||
| run: npx nx-cloud stop-all-agents | ||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Publish | ||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Version Packages | ||||||||||||||||||||||||||||||||||||||||||||||||||
| run: pnpm run changeset:version | ||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Commit version files | ||||||||||||||||||||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||||||||||||||||||||
| git config --global user.name 'Tanner Linsley' | ||||||||||||||||||||||||||||||||||||||||||||||||||
| git config --global user.email 'tannerlinsley@users.noreply.github.com' | ||||||||||||||||||||||||||||||||||||||||||||||||||
| npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}" | ||||||||||||||||||||||||||||||||||||||||||||||||||
| pnpm run cipublish | ||||||||||||||||||||||||||||||||||||||||||||||||||
| git config --global user.email 'tannerlinsley@users.noreply.github.com' git add -A | ||||||||||||||||||||||||||||||||||||||||||||||||||
| git commit -m "ci: Version Packages" | ||||||||||||||||||||||||||||||||||||||||||||||||||
| git push | ||||||||||||||||||||||||||||||||||||||||||||||||||
| env: | ||||||||||||||||||||||||||||||||||||||||||||||||||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+39
to
+46
Contributor There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix git configuration and add conditional logic for version commits The current implementation has several issues:
- name: Commit version files
run: |
git config --global user.name 'Tanner Linsley'
- git config --global user.email 'tannerlinsley@users.noreply.github.com' git add -A- git commit -m "ci: Version Packages"- git push+ git config --global user.email 'tannerlinsley@users.noreply.github.com'+ git add -A+ if git diff --staged --quiet; then+ echo "No version changes to commit"+ else+ git commit -m "ci: Version Packages"+ git push+ fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents | ||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Publish Packages | ||||||||||||||||||||||||||||||||||||||||||||||||||
| run: pnpm run changeset:publish | ||||||||||||||||||||||||||||||||||||||||||||||||||
| env: | ||||||||||||||||||||||||||||||||||||||||||||||||||
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||||||||||||||||||||||||||||||||||||||||||||||||
| NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | ||||||||||||||||||||||||||||||||||||||||||||||||||
| TAG: ${{ inputs.tag }} | ||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Upload coverage to Codecov | ||||||||||||||||||||||||||||||||||||||||||||||||||
| uses: codecov/codecov-action@v4.6.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -155,79 +155,9 @@ You can use Gitpod (An Online Open Source VS Code like IDE which is free for Ope | ||
| [](https://gitpod.io/#https://github.com/TanStack/query) | ||
| ## Commit message conventions | ||
| ## Changesets | ||
| `TanStack/query` is using [Angular Commit Message Conventions](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines). | ||
| We have very precise rules over how our git commit messages can be formatted. This leads to **more readable messages** that are easy to follow when looking through the **project history**. | ||
| ### Commit Message Format | ||
| Each commit message consists of a **header**, a **body** and a **footer**. The header has a special | ||
| format that includes a **type**, a **scope** and a **subject**: | ||
| ```text | ||
| <type>(<scope>): <subject> | ||
| <BLANK LINE> | ||
| <body> | ||
| <BLANK LINE> | ||
| <footer> | ||
| ``` | ||
| The **header** is mandatory and the **scope** of the header is optional. | ||
| Any line of the commit message cannot be longer than 100 characters! This allows the message to be easier to read on GitHub as well as in various git tools. | ||
| ### Type | ||
| Must be one of the following: | ||
| - **feat**: A new feature | ||
| - **fix**: A bug fix | ||
| - **docs**: Documentation only changes | ||
| - **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semicolons, etc.) | ||
| - **refactor**: A code change that neither fixes a bug nor adds a feature | ||
| - **perf**: A code change that improves performance | ||
| - **test**: Adding missing or correcting existing tests | ||
| - **chore**: Changes to the build process or auxiliary tools and libraries such as documentation generation | ||
| ### Scope | ||
| The scope could be anything specifying place of the commit change. For example `query-core`, `react-query` etc... | ||
| You can use `*` when the change affects more than a single scope. | ||
| ### Subject | ||
| The subject contains succinct description of the change: | ||
| - use the imperative, present tense: "change" not "changed" nor "changes" | ||
| - don't capitalize first letter | ||
| - no dot (.) at the end | ||
| ### Body | ||
| Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes". The body should include the motivation for the change and contrast this with previous behavior. | ||
| ### Footer | ||
| The footer should contain any information about **Breaking Changes** and is also the place to [reference GitHub issues that this commit closes](https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue). | ||
| **Breaking Changes** should start with the word `BREAKING CHANGE:` with a space or two newlines. The rest of the commit message is then used for this. | ||
| ### Example | ||
| Here is an example of the release type that will be done based on a commit messages: | ||
| | Commit message | Release type | | ||
| | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------- | | ||
| | fix(pencil): stop graphite breaking when too much pressure applied | Patch Release | | ||
| | feat(pencil): add `graphiteWidth` option | ~~Minor~~ Feature Release | | ||
| | perf(pencil): remove `graphiteWidth` option<br/><br/>BREAKING CHANGE: The `graphiteWidth` option has been removed.<br/>The default graphite width of 10mm is always used for performance reasons. | ~~Major~~ Breaking Release | | ||
| ### Revert | ||
| If the commit reverts a previous commit, it should begin with `revert:`, followed by the header of the reverted commit. In the body it should say: `This reverts commit <hash>.`, where the hash is the SHA of the commit being reverted. | ||
lachlancollins marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| This repo uses [Changesets](https://github.com/changesets/changesets) to automate releases. If your PR should release a new package version (patch, minor, or major), please run run `pnpm changeset` and commit the file. If needed, changeset descriptions can be more descriptive, and will be included in the changelog. If your PR affects docs, examples, styles, etc., you probably don't need to generate a changeset. | ||
| ## Pull requests | ||
| @@ -237,7 +167,7 @@ Use an appropriate commit type. Be especially careful with breaking changes. | ||
| ## Releases | ||
| For each new commit added to `main` with `git push` or by merging a pull request or merging from another branch, a GitHub action is triggered and runs the `semantic-release` command to make a release if there are codebase changes since the last release that affect the package functionalities. | ||
| For each new commit added to `main`, a GitHub Workflow is triggered which runs the [Changesets Action](https://github.com/changesets/action). This generates a preview PR showing the impact of all changesets. When this PR is merged, the package will be published to NPM. | ||
lachlancollins marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| ## 🧪 Test | ||
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.