From 012af98f15df67e7350381088cd5658f6dc4c8dc Mon Sep 17 00:00:00 2001 From: Stacey Van Herk <13419300+svanherk@users.noreply.github.com> Date: Tue, 14 Nov 2023 09:55:29 -0500 Subject: [PATCH] feat: US158339 - Add update-package-lock and new release token (#136) * Add update-package-lock workflow * Update dependabot * Go to node 20 * Switch to new token and update README --- .github/CODEOWNERS | 1 + .github/dependabot.yml | 19 +++++---- .github/workflows/release.yml | 2 +- .github/workflows/update-package-lock.yml | 25 ++++++++++++ .nvmrc | 2 +- README.md | 47 +++++------------------ 6 files changed, 46 insertions(+), 50 deletions(-) create mode 100644 .github/workflows/update-package-lock.yml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index cf94d91..bafd67d 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1,2 @@ * @BrightspaceUI/gaudi-dev +package-lock.json diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 5b98913..8406a63 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,12 +1,11 @@ version: 2 updates: -- package-ecosystem: npm - directory: "/" - schedule: - interval: weekly - open-pull-requests-limit: 10 - versioning-strategy: widen - ignore: - - dependency-name: mocha - versions: - - ">= 8.1.a, < 8.2" + - package-ecosystem: npm + directory: "/" + schedule: + interval: weekly + open-pull-requests-limit: 10 + ignore: + # update-package-lock workflow already handles minor/patch updates + - dependency-name: "*" + update-types: ["version-update:semver-minor", "version-update:semver-patch"] diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c870ab9..c442b13 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -22,6 +22,6 @@ jobs: - name: Semantic Release uses: BrightspaceUI/actions/semantic-release@main with: - GITHUB_TOKEN: ${{ secrets.D2L_GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.D2L_RELEASE_TOKEN }} NPM: true NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/update-package-lock.yml b/.github/workflows/update-package-lock.yml new file mode 100644 index 0000000..5394293 --- /dev/null +++ b/.github/workflows/update-package-lock.yml @@ -0,0 +1,25 @@ +name: Update package-lock.json +on: + schedule: + - cron: "30 12 * * 3" # Wed 8:30AM EDT. 7:30AM EST. + workflow_dispatch: # manual trigger +jobs: + update: + name: Update + timeout-minutes: 10 + runs-on: ubuntu-latest + steps: + - uses: Brightspace/third-party-actions@actions/checkout + with: + token: ${{ secrets.PR_GITHUB_TOKEN }} + - uses: Brightspace/third-party-actions@actions/setup-node + with: + node-version-file: .nvmrc + cache: 'npm' + - name: Update package-lock.json + uses: BrightspaceUI/actions/update-package-lock@main + with: + AUTO_MERGE_METHOD: squash + AUTO_MERGE_TOKEN: ${{ secrets.PR_GITHUB_TOKEN }} + APPROVAL_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.PR_GITHUB_TOKEN }} diff --git a/.nvmrc b/.nvmrc index 0cee939..12cf442 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -18 +20 diff --git a/README.md b/README.md index 745b65e..e3e3915 100644 --- a/README.md +++ b/README.md @@ -258,7 +258,11 @@ const separator = getSeparator({ nonBreaking: true }); // -> ',\xa0' in en-US Options: - **nonBreaking**: a Boolean flag, whether to use non-breaking spaces instead of standard spaces; default is `false` -## Running the test harness +## Developing and Contributing + +After cloning the repo, run `npm install` to install dependencies. + +### Running the test harness Start a [@web/dev-server](https://modern-web.dev/docs/dev-server/overview/) that hosts the test harness: @@ -268,45 +272,12 @@ npm start This will let you test the intl library in a browser, and will update live with any changes. -## Contributing +### Contributing Contributions are welcome, please submit a pull request! -## Versioning & Releasing - -> TL;DR: Commits prefixed with `fix:` and `feat:` will trigger patch and minor releases when merged to `main`. Read on for more details... - -The [semantic-release GitHub Action](https://github.com/BrightspaceUI/actions/tree/main/semantic-release) is called from the `release.yml` GitHub Action workflow to handle version changes and releasing. - -### Version Changes - -All version changes should obey [semantic versioning](https://semver.org/) rules: -1. **MAJOR** version when you make incompatible API changes, -2. **MINOR** version when you add functionality in a backwards compatible manner, and -3. **PATCH** version when you make backwards compatible bug fixes. - -The next version number will be determined from the commit messages since the previous release. Our semantic-release configuration uses the [Angular convention](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular) when analyzing commits: -* Commits which are prefixed with `fix:` or `perf:` will trigger a `patch` release. Example: `fix: validate input before using` -* Commits which are prefixed with `feat:` will trigger a `minor` release. Example: `feat: add toggle() method` -* To trigger a MAJOR release, include `BREAKING CHANGE:` with a space or two newlines in the footer of the commit message -* Other suggested prefixes which will **NOT** trigger a release: `build:`, `ci:`, `docs:`, `style:`, `refactor:` and `test:`. Example: `docs: adding README for new component` - -To revert a change, add the `revert:` prefix to the original commit message. This will cause the reverted change to be omitted from the release notes. Example: `revert: fix: validate input before using`. - -### Releases - -When a release is triggered, it will: -* Update the version in `package.json` -* Tag the commit -* Create a GitHub release (including release notes) -* Deploy a new package to NPM - -### Releasing from Maintenance Branches - -Occasionally you'll want to backport a feature or bug fix to an older release. `semantic-release` refers to these as [maintenance branches](https://semantic-release.gitbook.io/semantic-release/usage/workflow-configuration#maintenance-branches). +### Versioning and Releasing -Maintenance branch names should be of the form: `+([0-9])?(.{+([0-9]),x}).x`. +This repo is configured to use `semantic-release`. Commits prefixed with `fix:` and `feat:` will trigger patch and minor releases when merged to `main`. -Regular expressions are complicated, but this essentially means branch names should look like: -* `1.15.x` for patch releases on top of the `1.15` release (after version `1.16` exists) -* `2.x` for feature releases on top of the `2` release (after version `3` exists) +To learn how to create major releases and release from maintenance branches, refer to the [semantic-release GitHub Action](https://github.com/BrightspaceUI/actions/tree/main/semantic-release) documentation.