diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f7da9f4e8..85d78082b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -109,19 +109,31 @@ $ cd docusaurus $ pnpm run deploy ``` -## Releasing - -- Run `rush change` for any PRs with changes that needs to get released - This will provide an interactive screen to add Change description. Please provide details here about the changes you are making thorugh this PR - This will generate a change files in JSON format which are later used to generate changelogs -- Commit the generated change files (JSON). - -> NOTE: Rush by default does NOT support conventional commits and developers needs to decide on the version bump (major/minor/patch). - -Read more about [best practices] -### To publish -- https://rushjs.io/pages/maintainer/publishing/#dry-run-mode - +## Process to publish packages + +### Developer flow +- Developers commit all code changes. +- Run `rush change --target-branch ` + - This generates *change files* +- Commit *change files* +- Push the PR and get it reviewd and merged + +### Publish flow +When its time to publish packages (as per release schedule) +- Pull latest from `master` branch +- Run `rush publish —apply` + - This is [dry run mode]. + - Changes are added to the changelog files for each package. + - The `package.json` files are updated with new version numbers and written to disk. Nothing is actually committed to the source repository or published at this point + - Review the CHANGELOG.md updates at this point +- Run `rush publish --apply --target-branch main --publish --add-commit-details` + - This will create a branch with `publish-*` + - Publish the packages + - And finally checkout back to *target branch* (`master` in this case) +- Checkout to publish branch that got created above +- Push the changes as PR to get the `CHANGELOG.md` updated to `master`. + +Read more about [rush publishing] and [best practices] [prettier]: https://www.npmjs.com/package/prettier @@ -132,3 +144,4 @@ Read more about [best practices] [rushjs with pnpm]: https://rushjs.io/pages/maintainer/package_managers/ [best practices]: https://rushjs.io/pages/best_practices/change_logs/#recommended-practices [pnpm]: https://pnpm.io/ +[rush publishing]: https://rushjs.io/pages/maintainer/publishing/#dry-run-mode diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index b6022f8cf..8d663a85d 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -4782,7 +4782,7 @@ packages: hasBin: true dependencies: browserslist: 4.21.4 - caniuse-lite: 1.0.30001443 + caniuse-lite: 1.0.30001444 normalize-range: 0.1.2 num2fraction: 1.2.2 picocolors: 0.2.1 @@ -6367,7 +6367,7 @@ packages: resolution: {integrity: sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==} hasBin: true dependencies: - caniuse-lite: 1.0.30001443 + caniuse-lite: 1.0.30001444 electron-to-chromium: 1.4.284 dev: false @@ -6376,7 +6376,7 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001443 + caniuse-lite: 1.0.30001444 electron-to-chromium: 1.4.284 node-releases: 2.0.8 update-browserslist-db: 1.0.10_browserslist@4.21.4 @@ -6606,13 +6606,13 @@ packages: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: browserslist: 4.21.4 - caniuse-lite: 1.0.30001443 + caniuse-lite: 1.0.30001444 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: false - /caniuse-lite/1.0.30001443: - resolution: {integrity: sha512-jUo8svymO8+Mkj3qbUbVjR8zv8LUGpGkUM/jKvc9SO2BvjCI980dp9fQbf/dyLs6RascPzgR4nhAKFA4OHeSaA==} + /caniuse-lite/1.0.30001444: + resolution: {integrity: sha512-ecER9xgJQVMqcrxThKptsW0pPxSae8R2RB87LNa+ivW9ppNWRHEplXcDzkCOP4LYWGj8hunXLqaiC41iBATNyg==} dev: false /capture-exit/2.0.0: @@ -7869,7 +7869,7 @@ packages: resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==} dependencies: call-bind: 1.0.2 - es-get-iterator: 1.1.2 + es-get-iterator: 1.1.3 get-intrinsic: 1.1.3 is-arguments: 1.1.1 is-array-buffer: 3.0.1 @@ -8543,8 +8543,8 @@ packages: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} dev: false - /es-get-iterator/1.1.2: - resolution: {integrity: sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==} + /es-get-iterator/1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: call-bind: 1.0.2 get-intrinsic: 1.1.3 @@ -8554,6 +8554,7 @@ packages: is-set: 2.0.2 is-string: 1.0.7 isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 dev: false /es-module-lexer/0.9.3: @@ -15761,7 +15762,7 @@ packages: dependencies: autoprefixer: 9.8.8 browserslist: 4.21.4 - caniuse-lite: 1.0.30001443 + caniuse-lite: 1.0.30001444 css-blank-pseudo: 0.1.4 css-has-pseudo: 0.10.0 css-prefers-color-scheme: 3.1.1 @@ -18191,6 +18192,13 @@ packages: engines: {node: '>=0.10.0'} dev: false + /stop-iteration-iterator/1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.4 + dev: false + /stream-each/1.2.3: resolution: {integrity: sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==} dependencies: diff --git a/rush.json b/rush.json index 6a1756dfa..f849edb42 100644 --- a/rush.json +++ b/rush.json @@ -694,7 +694,6 @@ "shouldPublish": true, "skipRushCheck": true }, - // Sample apps { "packageName": "poc-subapp",