Migrate to pnpm (#2828)
* chore: 🤖 remove packageManager field from package.json
* chore: 🤖 migrate yarn resolutions to pnpm overrides
* chore: 🤖 generate pnpm-lock.yml by using: pnpm import yarn.lock
* chore: 🤖 remove yarn.lock file
* chore: 🤖 migrate workspace configuration
* chore: 🤖 remove .yarn and .yarnrc.yml config
* chore: 🤖 update .copyright.hcl to ignore root pnpm files
* chore: 🤖 migrate husky pre-commit hook from yarn to pnpm
* chore: 🤖 migrate package.json scripts from yarn to pnpm
* chore: 🤖 update rose package.json & build to use explicit deps
* chore: 🤖 remove unused cp metadata.json command in pjson script
The cp metadata.json to dist was added in:
d19a251
The addons/rose/metadata.json no longer exists so it can't be copied
* chore: 🤖 migrate electron-app package.json scripts to pnpm
* chore: 🤖 create pnpm workspace for electron-app w/ hoisted deps
* chore: 🤖 migrate electron-app yarn lockfile to pnpm lockfile
Used "pnpm import yarn.lock"
* chore: 🤖 migrate electron-app overrides
node-gyp isn't needed since the fork is used via @electron/node-gyp
see: https://github.com/electron/node-gyp?tab=readme-ov-file#node-gyp---nodejs-native-addon-build-tool
* chore: 🤖 add trusted deps to be built to onlyBuiltDependencies
This is a pnpm feature that increases security. By defining these
dependencies they are being trusted to allow install hooks,
including postinstall. See:
https://pnpm.io/settings#onlybuiltdependencies
* chore: 🤖 add electron-app pnpm files to copyright header ignore
* chore: 🤖 remove yarn references from .*ignore files
* chore: 🤖 migrate --yarn to --pnpm for ember-cli-update.json
This isn't clearly documented but something that is supported
and can be found in other ember apps:
https://github.com/search?q=--pnpm+ember-cli-update.json&type=code
* chore: 🤖 migrate ci and related scripts to use pnpm
The cache is migrated to use the cache supported by
actions/setup-node@v4, an action we are already using. This is the
recommended way by pnpm:
https://pnpm.io/continuous-integration#github-actions
This commit also ensures that all github actions are using
consistent versions of actions/setup-node and pnpm/action-setup
* docs: ✏️ update documentation to use pnpm instead of yarn
* chore: 🤖 use explicit asciinema-player dependency
Because we override styles on asciinema-player we depend on their
styles. What might be a minor non-breaking change in their version could
(and did) break our style expectations in our overrides.
* chore: 🤖 run pnpm install and commit lockfile changes
* chore: 🤖 Remove ember-inflector from being overidden
https://github.com/hashicorp/boundary-ui/pull/2828#discussion_r2110380711
* chore: 🤖 remove highlight.js from pnpm overrides
https://github.com/hashicorp/boundary-ui/pull/2828#discussion_r2109847938
* chore: 🤖 remove additional unnecessary files from ignore files
* docs: ✏️ fix pnpm doc links
* chore: 🤖 use corepack to specify packageManager in package.json
* chore: 🤖 let pnpm action in ci use packageManager for version
https://github.com/pnpm/action-setup?tab=readme-ov-file#version
* docs: ✏️ fix broken pnpm website links
This commit is contained in:
1 parent
daa23f66c4
commit
5a302b0bcc
53 files changed
+24335
-28008
No files matched your search
+14
-14
@@ -9,7 +9,7 @@ The desktop client UI for Boundary.
|
||||
- [Desktop client UI](#desktop-client-ui)
|
||||
- [Prerequisites](#prerequisites)
|
||||
- [Installation](#installation)
|
||||
- [Yarn Commands](#yarn-commands)
|
||||
- [Pnpm Commands](#pnpm-commands)
|
||||
- [Running / Development](#running--development)
|
||||
- [Developing Using Non-Release Versions of Boundary](#developing-using-non-release-versions-of-boundary)
|
||||
- [Environment Variables (DEV)](#environment-variables-dev)
|
||||
@@ -35,7 +35,7 @@ You will need the following things properly installed on your computer.
|
||||
|
||||
- [Git](https://git-scm.com/)
|
||||
- [Node.js](https://nodejs.org/)
|
||||
- [Yarn](https://yarnpkg.com/)
|
||||
- [Pnpm](https://pnpm.io/)
|
||||
- [Ember CLI](https://cli.emberjs.com/release/)
|
||||
- [Google Chrome](https://google.com/chrome/)
|
||||
|
||||
@@ -43,9 +43,9 @@ You will need the following things properly installed on your computer.
|
||||
|
||||
See [boundary-ui README](https://github.com/hashicorp/boundary-ui#installation) for installation instructions.
|
||||
|
||||
## Yarn Commands
|
||||
## Pnpm Commands
|
||||
|
||||
List of available project commands. `yarn run <command-name>`
|
||||
List of available project commands. `pnpm run <command-name>`
|
||||
|
||||
| Command | Description |
|
||||
| ------- | ----------- |
|
||||
@@ -74,15 +74,15 @@ List of available project commands. `yarn run <command-name>`
|
||||
|
||||
To run as web app:
|
||||
|
||||
- `yarn start`
|
||||
- `pnpm start`
|
||||
- Visit your app at [http://localhost:4201](http://localhost:4201).
|
||||
- Visit your tests at [http://localhost:4201/tests](http://localhost:4201/tests).
|
||||
|
||||
To run as a desktop app:
|
||||
|
||||
- `yarn start:desktop`
|
||||
- `pnpm start:desktop`
|
||||
|
||||
The Boundary CLI is NOT downloaded by default, to download and extract the CLI to `electron-app/cli` folder as part of the build, you need to set the environment variable `SETUP_CLI` to true. Example: `SETUP_CLI=true yarn start:desktop`.
|
||||
The Boundary CLI is NOT downloaded by default, to download and extract the CLI to `electron-app/cli` folder as part of the build, you need to set the environment variable `SETUP_CLI` to true. Example: `SETUP_CLI=true pnpm start:desktop`.
|
||||
The CLI version is defined in `electron-app/config/cli/VERSION`.
|
||||
|
||||
### Developing Using Non-Release Versions of Boundary
|
||||
@@ -111,8 +111,8 @@ for your target [environment](#environment-variables-prod) and you have full per
|
||||
To build this UI for production, run the following commands from this folder:
|
||||
|
||||
```bash
|
||||
yarn install
|
||||
yarn build
|
||||
pnpm install
|
||||
pnpm build
|
||||
```
|
||||
|
||||
`BOUNDARY_DESKTOP_SIGNING_IDENTITY` environment variable must be provided
|
||||
@@ -139,7 +139,7 @@ These environment variables may be used to customized the build.
|
||||
|
||||
### Running Tests
|
||||
|
||||
- `yarn test` runs full tests in random order with coverage
|
||||
- `pnpm test` runs full tests in random order with coverage
|
||||
|
||||
Keep in mind that tests are executed in random order. This is intentional
|
||||
and helps to prevent hard-to-debug order dependencies among tests.
|
||||
@@ -167,7 +167,7 @@ Steps:
|
||||
|
||||
- Open a terminal and run `$ boundary dev`.
|
||||
- Open another terminal and navigate to `$ boundary-ui/ui/desktop` folder.
|
||||
- Run `$ yarn run e2e` and tests will start run.
|
||||
- Run `$ pnpm run e2e` and tests will start run.
|
||||
- You can check the screenshots the tests take: `desktop/tests/end2end/screenshots`.
|
||||
|
||||
### Troubleshooting
|
||||
@@ -182,7 +182,7 @@ The workaround to fix this issue is to reset/clear cookies and data (local stora
|
||||
|
||||
This issue will likely pop up if you are using Python v3.12 and above as `python-setuptools` is no longer included by default.
|
||||
|
||||
If you are running into issues with running the desktop client after a node upgrade you may need to rebuild some tools needed for building the electron app. Be sure to remove `node_models/` for `ui/desktop/` and `ui/desktop/electron-app/` to make sure you have a clean slate. First thing you will need to check is if you have `python-setuptools` installed. It is needed for node-gyp to rebuild the native tools for electron. If you are on a mac and use Homebrew, you can run `brew install python-setuptools`. If you aren't using Homebrew you can run use tthe following command: `python3 -m pip install setuptools`. You should be able to run `yarn start:desktop` now. This will trigger the rebuild for electron but if you want to be safe you can run `./electron-app/node_modules/.bin/electron-rebuild` before trying to start up the desktop client.
|
||||
If you are running into issues with running the desktop client after a node upgrade you may need to rebuild some tools needed for building the electron app. Be sure to remove `node_models/` for `ui/desktop/` and `ui/desktop/electron-app/` to make sure you have a clean slate. First thing you will need to check is if you have `python-setuptools` installed. It is needed for node-gyp to rebuild the native tools for electron. If you are on a mac and use Homebrew, you can run `brew install python-setuptools`. If you aren't using Homebrew you can run use tthe following command: `python3 -m pip install setuptools`. You should be able to run `pnpm start:desktop` now. This will trigger the rebuild for electron but if you want to be safe you can run `./electron-app/node_modules/.bin/electron-rebuild` before trying to start up the desktop client.
|
||||
|
||||
### Deploying
|
||||
|
||||
@@ -213,11 +213,11 @@ browserWindow.webContents.openDevTools()
|
||||
|
||||
To start the electron app with the inspector adding a breakpoint before code starts:
|
||||
|
||||
`$ yarn start:desktop --- --inspect-brk`.
|
||||
`$ pnpm start:desktop --- --inspect-brk`.
|
||||
|
||||
To avoid the breakpoint:
|
||||
|
||||
`$ yarn start:desktop --- --inspect`.
|
||||
`$ pnpm start:desktop --- --inspect`.
|
||||
|
||||
You can use any of [these clients](https://nodejs.org/en/docs/guides/debugging-getting-started/#inspector-clients), but we will use the chrome inspector client. Open chrome and on the url bar: `$ chrome://inspect` and click inspect on the electron instance.
|
||||
|
||||
|
||||
Reference in new issue
Block a user