|
| 1 | +# FDC3 website readme |
| 2 | + |
| 3 | +## Releasing new versions of the Standard |
| 4 | + |
| 5 | +To create a new version of the website, a number of NPM scripts need to be run that will create the version and update certain content within it (as automatically as possible). There are then a number of additional manual steps to run. |
| 6 | + |
| 7 | +1. Enter the website directory and make sure the site has been built: |
| 8 | + |
| 9 | + ```bash |
| 10 | + cd website |
| 11 | + npm run build |
| 12 | + ``` |
| 13 | + |
| 14 | +2. Then run the versioning script - this should work cross-platform, but can be brittle... |
| 15 | + - edit *website/package.json* and replace the version number in the `version` script to the version number you wish to create: |
| 16 | + `version": "cross-env-shell VERSION=2.1 ...` |
| 17 | + - Run it: |
| 18 | + |
| 19 | + ```bash |
| 20 | + npm run version |
| 21 | + ``` |
| 22 | + |
| 23 | + - Check the reported version number is as expected and that the scripts ran without errors. |
| 24 | + |
| 25 | +3. Check that the version script has done what it needs to: |
| 26 | + - The new website version should exist in _website/versioned_docs_ |
| 27 | + - Links to schema files should have been updated to the versioned links, e.g. check *website/versioned_docs/version-2.1/context/ref/Context.md* has a link like <https://fdc3.finos.org/schemas/2.1/context/context.schema.json> (where '2.1' would be 'next' in the pre-draft) |
| 28 | + - The overview docs (often called spec.md) should have had '(next)' in their titles replaced with the version, e.g. '(2.1)', e.g. check *website/versioned_docs/version-2.1/api/spec.md* |
| 29 | + - A new set of schemas should exist in *website/static/schemas* |
| 30 | + - Check all schema files/folders got copied, including *api/*, *context/*, *bridging/*, *bridgingAsyncAPI/* and the *appd* files. |
| 31 | + - Check that their `$id` fields were updated to match their new URLs, e.g. *website/static/schemas/2.1/context/context.schema.json* should have an `$id` that looks like: `"$id": "https://fdc3.finos.org/schemas/2.1/context/context.schema.json"` (where '2.1' would be 'next' in the pre-draft) |
| 32 | + - Check that the appD schema's `version` field has been updated, i.e. *website/static/schemas/2.1/appd.schema.json* should have `"version": "2.1",` (where '2.1' would be 'next' in the pre-draft) |
| 33 | +
|
| 34 | +4. Make a number of additional manual changes: |
| 35 | + - Edit the titles of *website/versioned_docs/version-2.1/fdc3-intro.md* and *website/versioned_docs/version-2.1/fdc3-standard.md* to remove '(pre-draft') |
| 36 | + - Edit the titles of *docs/fdc3-intro.md* and *docs/fdc3-standard.md* to use the next planned version number |
| 37 | + - Edit the last Standard version's abstract to update its status and dates, e.g. *website/versioned_docs/version-2.0/fdc3-standard.md* |
| 38 | + - Edit the new Standard version's abstract to update its status and dates, e.g. *website/versioned_docs/version-2.1/fdc3-standard.md* |
| 39 | + - Edit the `Version` element of `themeConfig.navbar.items` in *website/docusaurus.config.js* to include the new version as the first element. |
| 40 | +
|
| 41 | +5. Edit CHANGELOG.md to mark the unreleased changes as teh new version and create a new unreleased section for the next version. |
| 42 | + - Note that the title of the release section usually includes a compare link for the previous version. These are based on tags - the tag needed will not exist yet, but is created in a later step. It should be fine to set it to what the tag name will be. |
| 43 | +
|
| 44 | +6. If creating a new NPM module version at the same time, then |
| 45 | + - Return to the root of the repository (i.e. parent dir of the *website* dir) and edit *package.json*, |
| 46 | + - Set the `version` filed to the new standard version - but consider appending a beta label, e.g.: `"version": "2.1.0-beta.1",` |
| 47 | + - The new NPM module will be built and submitted to NPM via a Github action automatically when this PR is merged. |
| 48 | +
|
| 49 | +7. Test you changes locally by running the site: |
| 50 | +
|
| 51 | + ```bash |
| 52 | + cd website |
| 53 | + npm run build |
| 54 | + npm run start |
| 55 | + ``` |
| 56 | +
|
| 57 | +8. Create a PR and send out details for other maintainers to review and test. |
| 58 | +
|
| 59 | +9. Merge the PR - website and NPM module will be deployed automatically. |
| 60 | +
|
| 61 | +10. Goto <https://github.com/finos/FDC3/releases> and create a new release and tag for the new version. |
| 62 | + - Copy the change log into the release description. |
0 commit comments