forked from grafana/grafana
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Packages: update versioning and release process (grafana#18195)
- Loading branch information
Showing
14 changed files
with
140 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,50 @@ | ||
## Grafana frontend packages | ||
|
||
## Releasing new version | ||
## Versioning | ||
We use [Lerna](https://github.com/lerna/lerna) for packages versioning and releases | ||
|
||
All packages are versioned according to the current Grafana version: | ||
- Grafana v6.3.0-alpha1 -> @grafana/* packages @ 6.3.0-alpha.1 | ||
- Grafana v6.2.5 -> @grafana/* packages @ 6.2.5 | ||
- Grafana - master branch version (based on package.json, i.e. 6.4.0-pre) -> @grafana/* packages @ 6.4.0-pre-<COMMIT-SHA> (see details below about packages publishing channels) | ||
|
||
> Please note that @grafana/toolkit, @grafana/ui, @grafana/data & @grafana/runtime packages are considered ALPHA even though they are not released as alpha versions | ||
### Stable releases | ||
> **Even though packages are released under a stable version, they are considered ALPHA until further notice!** | ||
Stable releases are published under `latest` tag on npm. | ||
|
||
### Alpha and beta releases | ||
Alpha and beta releases are published under `next` tag on npm. | ||
|
||
### Automatic pre-releases | ||
Every commit to master that has changes within `packages` directory is a subject of npm packages release. | ||
*ALL* packages will be released under version from lerna.json file with commit SHA added to it: | ||
|
||
``` | ||
<lerna.json version>-<COMMIT_SHA> | ||
``` | ||
|
||
Automatic prereleases are published under `canary` dist tag. | ||
|
||
### Manual release | ||
1. Run `packages:prepare` script from root directory. This will perform cleanup, run all tests and bump version for all packages. Also, it will create `@packages@[version]` tag and version bump commit with `Packages: publish [version]` message. | ||
2. Run `packages:build` script that will prepare distribution packages. | ||
3. Run `packages:publish` to publish new versions | ||
- add `--dist-tag next` to publish under `next` tag | ||
4. Push version commit | ||
> All of the steps below should be performed on a release branch, according to Grafana Release Guide | ||
> Make sure you are logged in to npm in your terminal and that you are a part of Grafana org on npm | ||
1. Run `yarn packages:prepare` script from root directory. This will perform tests on the packages and prompt for version of the packages. The version should be the same as the one being released. | ||
- Make sure you use semver convention. So, *place a dot between prerelease id and prelease number*!!! i.e. 6.3.0-alpha.1 | ||
- Make sure you confirm the version bump when prompted! | ||
2. Commit changes (lerna.json & package.json files) - *"Packages version update: \<VERSION\>"* | ||
3. Run `yarn packages:build` script that will prepare distribution packages in `packages/grafana-*/dist`. These directories are going to be published to npm | ||
4. Depending whether or not it's a prerelease: | ||
- When releasing a prelease run `packages:publishNext` to publish new versions. | ||
- When releasing a stable version run `packages:publishLatest` to publish new versions. | ||
|
||
5. Push version commit to the release branch | ||
|
||
### Building individual packages | ||
To build induvidual packages run `grafana-toolkit package:build --scope=<ui|toolkit|runtime|data>` | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
# Grafana Data Library | ||
|
||
This package holds the root data types and functions used within Grafana. | ||
> **@grafana/data is currently in ALPHA**. Core API is unstable and can be a subject of breaking changes! | ||
This package holds the root data types and functions used within Grafana. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
# Grafana Runtime library | ||
|
||
This package allows access to grafana services. It requires Grafana to be running already and the functions to be imported as externals. | ||
> **@grafana/runtime is currently in ALPHA**. Core API is unstable and can be a subject of breaking changes! | ||
This package allows access to grafana services. It requires Grafana to be running already and the functions to be imported as externals. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
#!/usr/bin/env bash | ||
|
||
GRAFANA_TAG=${1:-} | ||
RELEASE_CHANNEL="latest" | ||
|
||
if echo "$GRAFANA_TAG" | grep -q "^v"; then | ||
_grafana_version=$(echo "${GRAFANA_TAG}" | cut -d "v" -f 2) | ||
else | ||
echo "Provided tag is not a version tag, skipping packages release..." | ||
exit | ||
fi | ||
|
||
if grep -q "beta" <<< "$GRAFANA_TAG"; then | ||
RELEASE_CHANNEL="next" | ||
fi | ||
|
||
echo "$_grafana_version" | ||
|
||
# Get current version from lerna.json | ||
# Since this happens on tagged branch, the lerna.json version and package.json file SHOULD be updated already | ||
# as specified in release guideline | ||
PACKAGE_VERSION=$(grep '"version"' lerna.json | cut -d '"' -f 4) | ||
|
||
echo "Releasing grafana packages @ ${PACKAGE_VERSION} under ${RELEASE_CHANNEL} channel" | ||
|
||
if [ $RELEASE_CHANNEL == "latest" ]; then | ||
SCRIPT="publishLatest" | ||
elif [ $RELEASE_CHANNEL == "next" ]; then | ||
SCRIPT="publishNext" | ||
else | ||
echo "Unknown channel, skipping packages release" | ||
exit | ||
fi | ||
|
||
echo $'\nBuilding packages' | ||
yarn packages:build | ||
|
||
echo $'\nPublishing packages' | ||
yarn packages:${SCRIPT} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters