diff --git a/.github/PULL_REQUEST_TEMPLATE/ouds-release-template.md b/.github/PULL_REQUEST_TEMPLATE/ouds-release-template.md index 4511ba9e7c..f262ea174c 100644 --- a/.github/PULL_REQUEST_TEMPLATE/ouds-release-template.md +++ b/.github/PULL_REQUEST_TEMPLATE/ouds-release-template.md @@ -4,20 +4,13 @@ - then, if bumping a minor or major version: - [ ] Manually search and replace `$current_version` in all files, meaning changes should happen in: - [ ] The style sheet loaded in `.storybook/preview-head.html` - - [ ] Some download links in the `README.md` - [ ] `docs_version` in `config.yml` and other references to the previous version - - [ ] `VERSION` in `js/src/base-component.js` - - [ ] `version_short` in `package.json` - - [ ] `scss/mixins/_banner.scss` - [ ] `scss/docs.scss` - [ ] Several markdown files and markdown extended files - [ ] Add docs version to `site/data/docs-versions.yml` - - [ ] Update the home news for the next release - - [ ] Move `site/content/docs/x.y` to `site/content/docs/x.y+1` - - [ ] Move `site/static/docs/x.y` to `site/static/docs/x.y+1` - - [ ] Make sure the migration guide is updated only for the next version - - [ ] (Major version) Manually update the version in `nuget/ouds-web.nuspec` and `nuget/ouds-web.sass.nuspec` - [ ] Check that the changes in the migration guide only apply to the latest version + - [ ] (Major version) Manually update the version in `nuget/ouds-web.nuspec` and `nuget/ouds-web.sass.nuspec` + - [ ] Update the home news for the next release - check wrong matches in `CHANGELOG.md`, and maybe `site/content/docs//migration.md` - :warning: check the `package-lock.json` and `package.json` content, only "@ouds/web" should have its version changed! - [ ] if the year changed recently, happy new year :tada: but please change © year in `.scss` main files (reboot, grid, utilities, and main file) as well as in `NOTICE.txt`. @@ -28,28 +21,26 @@ - [ ] Make sure to import all the bad named commits - [ ] Commit and push `dist` with a `chore(release): vx.y.z` commit message - [ ] Merge on `ouds/main` -- [ ] Tag your version, and push your tag using `git tag vx.y.z-ouds-web` and `git push vx.y.z-ouds-web` -- [ ] Pack and publish - - `npm pack` +- [ ] Tag your version, and push your tag using `git tag -s vx.y.z-ouds-web` and `git push origin vx.y.z-ouds-web` +- [ ] Pack and publish for the common part and all the brands + - `npm run pack` - if you are already logged in to NPM (with a personal account, for example), [you'd better use a repository scoped `.npmrc` file](https://stackoverflow.com/questions/30114166/how-to-have-multiple-npm-users-set-up-locally) - Publish: - if you're releasing a pre-release, use `--tag`, e.g. for v1-alpha1 `npm publish ouds-web-1.0.0-alpha1.tgz --tag next` - - `npm publish` - + - `npm run publish` - [ ] check release on [NPM](https://www.npmjs.com/package/@ouds/web), [Nuget](https://www.nuget.org/packages/@ouds/web/), [Packagist](https://packagist.org/packages/orange-opensource/orange-boosted-bootstrap)… - [ ] publish documentation on `main` of the [ouds-web-doc](https://github.com/Orange-OpenSource/ouds-web-doc) repo: - - [ ] copy `../_site` to the `main` branch - - [ ] don't forget to update Storybook as well and double-check that pages are referenced + - [ ] run `npm run storybook-build` from `Orange-Boosted-Bootstrap` (be careful that `release-sri` doesn't update `config.yml`s) + - [ ] remove `storybook` folder from `ouds-web-doc` + - [ ] copy `Orange-Boosted-Bootstrap/_site` to the `ouds-web-doc#main` branch - [ ] check every `index.html` used as redirections to redirect to the new release - [ ] when bumping minor or major version: ensure `dist` URLs in examples' HTML has changed - [ ] double-check everything before pushing, starting by searching for forgotten old version number occurrences - - [ ] Make the new release banner appears in the previous version of the doc (e.g. in v5.3 when releasing the v5.4.0 doc) - + - [ ] Make the new release banner appears in the previous version of the doc (e.g. in v5.3 when releasing the v5.4.0 doc, search for `navbar navbar-expand supra d-none` and replace by `navbar navbar-expand supra`) +- [ ] Run Algolia crawler manually for the new documentation to be indexed in the search engine (https://dashboard.algolia.com/apps/AKIHKMSEKB/dashboard) - [ ] [create a GitHub release](https://github.com/Orange-OpenSource/Orange-Boosted-Bootstrap/releases/new): - - attach the 2 zip files + - attach the 2 zip files per brand - paste the CHANGELOG / Ship list in the release's description - +- [ ] make an announcement in [GitHub Discussions](https://github.com/Orange-OpenSource/Orange-Boosted-Bootstrap/discussions/categories/announcements) (+ pin the new GH Discussion) +- [ ] make an announcement on internal communication channels and publish posts :tada: - [ ] [publish on Nuget](https://github.com/Orange-OpenSource/Orange-Boosted-Bootstrap/wiki/Generate-NuGet-packages) diff --git a/package.json b/package.json index 0375bfabd2..a9954f92d9 100644 --- a/package.json +++ b/package.json @@ -74,6 +74,8 @@ "docs-serve-only": "sirv _site --no-clear --port 9001", "lockfile-lint": "lockfile-lint --allowed-hosts npm --allowed-schemes https: --empty-hostname false --type npm --path package-lock.json", "update-deps": "ncu -u -x eslint,eslint-config-xo,eslint-plugin-unicorn,karma-browserstack-launcher,karma-rollup-preprocessor,sass", + "pack": "npm pack && cd packages/orange-compact && npm pack && cd ../sosh && npm pack && cd ../orange && npm pack", + "publish": "npm login && npm publish --access public && cd packages/orange-compact && npm publish --access public && cd ../sosh && npm publish --access public && cd ../orange && npm publish --access public", "release": "npm-run-all storybook-build release-zip*", "release-sri": "node build/generate-sri.mjs", "release-version": "node build/change-version.mjs", diff --git a/stories/create-stories-from-doc.js b/stories/create-stories-from-doc.js index ba3a5a4f52..4c4f2fb392 100644 --- a/stories/create-stories-from-doc.js +++ b/stories/create-stories-from-doc.js @@ -11,6 +11,7 @@ const fs = require('node:fs') const path = require('node:path') const puppeteer = require('puppeteer') // eslint-disable-line import/no-extraneous-dependencies +const packageJson = require('../package.json') function createDirectoryIfNeeded(path) { if (fs.existsSync(path)) { @@ -53,6 +54,7 @@ const toPascalCase = str => { // Get all stories that might be displayed const files = fs.readdirSync(path.resolve(__dirname, `../site/src/content/docs/components/`)).map(fileName => [toPascalCase(fileName.replace('.mdx', '')), 'components']) const snippets = fs.readFileSync(path.resolve(__dirname, '../site/src/assets/partials/snippets.js'), { encoding: 'utf8' }) +const docsVersion = packageJson.version.split('.').slice(0, 2).join('.') const outputDirectory = `${__dirname}/auto` createDirectoryIfNeeded(outputDirectory); @@ -71,7 +73,7 @@ createDirectoryIfNeeded(outputDirectory); // 'Error: Execution context was destroyed, most likely because of a navigation.': await Promise.all([ page.waitForNavigation(), - page.goto(`file://${__dirname}/../_site/docs/${file[1]}/${convertToKebabCase(file[0])}/index.html`), + page.goto(`file://${__dirname}/../_site/orange/docs/${docsVersion}/${file[1]}/${convertToKebabCase(file[0])}/index.html`), page.waitForNavigation() ])