You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# IMPORTANT: when publishing the Design System, comment out the following line to avoid publishing to GitHub Packages
10
9
@iqss:registry=https://npm.pkg.github.com/
10
+
# IMPORTANT: Comment out the line above when:
11
+
# 1. Publishing the Design System to npm, to avoid publishing to the GitHub Packages Registry.
12
+
# 2. Making a release of the application and installing latest version of Dataverse Client Javascript, to avoid installing from the GitHub Packages Registry (otherwise will lead to a npm error code ETARGET).
This document is about releasing a new version of the dataverse-frontend repository.
16
+
17
+
## Regular or Hotfix?
18
+
19
+
Early on, make sure it’s clear what type of release this is. The steps below describe making both regular releases. Suppose the current version is 1.0.0.
20
+
21
+
- Regular
22
+
- e.g. 1.1.0 (minor)
23
+
- e.g. 2.0.0 (major)
24
+
- Hotfix
25
+
- e.g. 1.1.1 (patch)
26
+
27
+
## Create Github Issue and Release Branch
28
+
29
+
First of all create an issue on Github to prepare the release, name it "Release dataverse-frontend vX.X.X".
30
+
31
+
On your local, create the release branch from the latest from develop and name it release/X.X.X .
32
+
33
+
## Update the version
34
+
35
+
To update the version run the command `npm version <X.X.X> --no-git-tag-version`. So if we are releasing version `3.5.0` the command will be:
36
+
37
+
```shell
38
+
npm version 3.5.0 --no-git-tag-version
39
+
```
40
+
41
+
This command will update the version in the `package.json` and `package-lock.json`.
42
+
43
+
## Use the Latest Dataverse Client Javascript Version
44
+
45
+
During development, the `@iqss/dataverse-client-javascript` package is installed from the [GitHub Packages Registry](https://github.com/IQSS/dataverse-client-javascript/pkgs/npm/dataverse-client-javascript), where we publish versions from PRs and the develop branch. However, for production we are going to use the latest published version of `@iqss/dataverse-client-javascript` package [from npm](https://www.npmjs.com/package/@iqss/dataverse-client-javascript?activeTab=versions).
46
+
47
+
⚠️ Before next step please ensure that any lines registering the `@iqss` scope with the GitHub Packages registry are commented out in the `.npmrc` file. Otherwise, you will encounter an error when trying to install the package as it will attempt to fetch the package from the GitHub registry instead of npm.
48
+
49
+
You can do this by running the following command in the root of the repository:
This command will update the `package.json` and `package-lock.json` files with the latest version of the `dataverse-client-javascript` package.
56
+
57
+
If a Dockerized image of the upcoming Dataverse release is available (see [gdcc dataverse tags](https://hub.docker.com/r/gdcc/dataverse/tags)), please update the `E2E_DATAVERSE_IMAGE_TAG` in `workflows/test.yml`. This will make e2e tests on github actions to run against the new dataverse version.
58
+
59
+
If everything looks good, you can push the changes to the repository.
60
+
61
+
## Merge "release branch" into "main"
62
+
63
+
Create a pull request to merge the `release` branch into the `main` branch.
64
+
Once important tests have passed (component and e2e) and the code has been reviewed, merge the pull request.
65
+
Optionally, still to be defined, the frontend should be deployed to a test environment to verify that everything works as expected against the latest Dataverse release.
66
+
67
+
## Create a Draft Release on GitHub and Tag the Version
68
+
69
+
After merging the `release` branch into the `main` branch, you should create a release on GitHub and tag the version.
70
+
71
+
Go to https://github.com/IQSS/dataverse-frontend/releases/new to start creating a draft release.
72
+
73
+
- Under "Choose a tag" you will be creating a new tag. Have it start with a "v" such as v3.5.0. Click "Create new tag on publish".
74
+
75
+
- Under "Target", choose "main".
76
+
77
+
- Under "Release title" use the same name as the tag such as v3.5.0.
78
+
79
+
- Add a description of the changes included in this release. Summarize the key updates, fixes, or features.
80
+
81
+
- Click "Save draft" because we do not want to publish the release yet.
82
+
83
+
At this point you can send around the draft release for any final feedback. Make corrections to the draft, if necessary. Publish once everything is ok.
84
+
85
+
## Merge "release branch" into "develop"
86
+
87
+
After merging the release branch into `main`, ensure the develop branch is updated with the latest changes.
88
+
89
+
```shell
90
+
git checkout develop
91
+
git merge release/X.X.X
92
+
git push origin develop
93
+
```
94
+
95
+
## Delete "release branch"
96
+
97
+
Once the release process is complete and the `release` branch has been merged into both `main` and `develop`, you can safely delete the `release` branch to keep the repository clean.
98
+
99
+
- Delete the branch locally from your repository.
100
+
- Delete the branch remotely from the remote repository.
101
+
102
+
This ensures that the `release` branch is no longer present in either your local or remote repositories.
0 commit comments