* Revert "Chore: Bump terser to fix security vulnerability (#53052)"
This reverts commit 7ae74d2a18.
* feat: use tsc and rollup directly with esbuild and publishConfig, files props
* refactor(grafana-data): fix isolatedModules re-export type error
* refactor(grafana-data): import paths from src not package name
* refactor(rollup): fix dts output.file
* chore(grafana-schema): delete dashboard_experimental.gen.ts - cannot work with isolatedModules
* refactor(grafana-e2e-selectors): fix export types isolatedModules error
* refactor(grafana-runtime): fix isolatedModules re-export type error
* refactor(grafana-ui): fix isolatedModules re-export type error
* feat(grafana-ui): use named imports for treeshaking
* refactor(grafana-ui): use named imports for treeshaking
* feat: react and react-dom as peerDeps for packages
* feat(grafana-ui): emotion packages as peerDeps
* feat(grafana-e2e): use tsc, rollup, esbuild for bundling
* chore(packages): clean up redundant dependencies
* chore(toolkit): deprecate unused package:build task
* chore(schema): put back dashboard_experimental and exclude to prevent isolatedModules error
* docs(packages): update readme
* chore(storybook): disable isolatedModules for builds
* chore: relax peerDeps for emotion and react
* revert(grafana-ui): put @emotion dependencies back
* refactor: replace relative package imports with package name
* build(packages): set emitDeclaration false for typecheck scripts to work
* test(publicdashboarddatasource): move test next to implementation. try to appease the betterer gods
* chore(storybook): override ts-node config for storybook compilation
* refactor(grafana-data): use ternary so babel doesnt complain about expecting flow types
* chore(toolkit): prefer files and publishConfig package.json props over copying
* build(npm): remove --contents dist arg from publishing commands
* chore(packages): introduce sideEffects prop to package.json to hint package can be treeshaken
* chore(packages): remove redundant index.js files
* feat(packages): set publishConfig.access to public
* feat(packages): use yarn berry and npm for packaging and publishing
* refactor(packages): simplify rollup configs
* chore(schema): add comment explaining need to exclude dashboard_experimental
* revert(toolkit): put back clean to prevent cli failures
* ci(packages): run packages:pack before a canary publish
* chore(gitignore): add npm-artifacts directory to ignore list
* test(publicdashboarddatasource): fix module mocking
* chore(packages): delete package.tgz when running clean
* chore(grafana-data): move dependencies from devDeps to prevent build resolution errors
@ -26,10 +26,10 @@ Alpha and beta releases are published under the `next` tag on npm.
### Automatic prereleases
### Automatic prereleases
Every commit to main that has changes within the `packages` directory is a subject of npm packages release. _ALL_ packages must be released under version from lerna.json file with commit SHA added to it:
Every commit to main that has changes within the `packages` directory is a subject of npm packages release. _ALL_ packages must be released under version from lerna.json file with the drone build number added to it:
```
```
<lerna.jsonversion>-<COMMIT_SHA>
<lerna.jsonversion>-<DRONE_BUILD_NUMBER>
```
```
### Manual release
### Manual release
@ -41,8 +41,8 @@ Every commit to main that has changes within the `packages` directory is a subje
1. Run `yarn packages:prepare` script from the root directory. This performs tests on the packages and prompts for the version of the packages. The version should be the same as the one being released.
1. Run `yarn packages:prepare` script from the root directory. This performs tests on the packages and prompts for the 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 prerelease number_, i.e. 6.3.0-alpha.1
- Make sure you use semver convention. So, _place a dot between prerelease id and prerelease number_, i.e. 6.3.0-alpha.1
- Make sure you confirm the version bump when prompted!
- Make sure you confirm the version bump when prompted!
2. Commit changes (lerna.json and package.json files) - _"Packages version update: \<VERSION\>"_
2. Run `yarn packages:build` script that compiles distribution code in `packages/grafana-*/dist`.
3. Run `yarn packages:build` script that prepares distribution packages in `packages/grafana-*/dist`. These directories are going to be published to npm.
3. Run `yarn packages:pack` script to zip each package into `.tgz`. This is required for yarn berry to replace properties in the package.json files declared in `publishConfig`.
4. Depending whether or not it's a prerelease:
4. Depending whether or not it's a prerelease:
- When releasing a prerelease run `packages:publishNext` to publish new versions.
- When releasing a prerelease run `packages:publishNext` to publish new versions.
@ -56,7 +56,7 @@ Every commit to main that has changes within the `packages` directory is a subje
### Setting up @grafana/\* packages for local development
### Setting up @grafana/\* packages for local development
@ -71,11 +71,10 @@ In this guide you will set up [Verdaccio](https://verdaccio.org/) registry local
From your terminal:
From your terminal:
1. Modify `/etc/hosts` file and add the following entry: `127.0.0.1 grafana-npm.local`
1. Navigate to `devenv/local-npm` directory.
2. Navigate to `devenv/local-npm` directory.
2. Run `docker-compose up`. This will start your local npm registry, available at http://localhost:4873/
3. Run `docker-compose up`. This will start your local npm registry, available at http://grafana-npm.local:4873/
3. Run `npm login --registry=http://localhost:4873 --scope=@grafana` . This will allow you to publish any @grafana/\* package into the local registry.
4. Run `npm login --registry=http://grafana-npm.local:4873 --scope=@grafana` . This will allow you to publish any @grafana/\* package into the local registry.
4. Run `npm config set @grafana:registry http://localhost:4873`. This will config your npm to install @grafana scoped packages from your local registry.
5. Run `npm config set @grafana:registry http://grafana-npm.local:4873`. This will config your npm to install @grafana scoped packages from your local registry.
#### Publishing packages to local npm registry
#### Publishing packages to local npm registry
@ -84,18 +83,18 @@ You need to follow [manual packages release procedure](#manual-release). The onl
From your terminal:
From your terminal:
1. Run `yarn packages:prepare`.
1. Run `yarn packages:prepare`.
2. Commit changes in package.json and lerna.json files
2. Run `yarn packages:build`.
3. Build packages: `yarn packages:build`
3. Run `yarn packages:pack`.
4. Run `yarn packages:publishDev`.
4. Run `yarn packages:publishDev`.
5. Navigate to http://grafana-npm.local:4873 and verify that version was published
5. Navigate to http://localhost:4873 and verify that version was published
Locally published packages will be published under `dev` channel, so in your plugin package.json file you can use that channel. For example:
Locally published packages will be published under `dev` channel, so in your plugin package.json file you can use that channel. For example: