[build] Re-enable package lock (#7584)
* include package lock * migrate to npm ci * remove cache busting doc and replace with npm run clean --------- Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov> Co-authored-by: Andrew Henry <akhenry@gmail.com>
This commit is contained in:
		| @@ -1,4 +1,7 @@ | ||||
| version: 2.1 | ||||
| orbs: | ||||
|   node: circleci/node@5.2.0 | ||||
|   browser-tools: circleci/browser-tools@1.3.0 | ||||
| executors: | ||||
|   pw-focal-development: | ||||
|     docker: | ||||
| @@ -11,47 +14,17 @@ executors: | ||||
|     machine: | ||||
|       image: ubuntu-2204:current | ||||
|       docker_layer_caching: true | ||||
| parameters: | ||||
|   BUST_CACHE: | ||||
|     description: "Set this with the CircleCI UI Trigger Workflow button (boolean = true) to bust the cache!" | ||||
|     default: false | ||||
|     type: boolean | ||||
| commands: | ||||
|   build_and_install: | ||||
|     description: "All steps used to build and install. Will use cache if found" | ||||
|     description: "All steps used to build and install." | ||||
|     parameters: | ||||
|       node-version: | ||||
|         type: string | ||||
|     steps: | ||||
|       - checkout | ||||
|       - restore_cache_cmd: | ||||
|           node-version: << parameters.node-version >> | ||||
|       - node/install: | ||||
|           node-version: << parameters.node-version >> | ||||
|       - run: npm install --no-audit --progress=false | ||||
|   restore_cache_cmd: | ||||
|     description: "Custom command for restoring cache with the ability to bust cache. When BUST_CACHE is set to true, jobs will not restore cache" | ||||
|     parameters: | ||||
|       node-version: | ||||
|         type: string | ||||
|     steps: | ||||
|       - when: | ||||
|           condition: | ||||
|             equal: [false, << pipeline.parameters.BUST_CACHE >>] | ||||
|           steps: | ||||
|             - restore_cache: | ||||
|                 key: deps--{{ arch }}--{{ .Branch }}--<< parameters.node-version >>--{{ checksum "package.json" }}-{{ checksum ".circleci/config.yml" }} | ||||
|   save_cache_cmd: | ||||
|     description: "Custom command for saving cache." | ||||
|     parameters: | ||||
|       node-version: | ||||
|         type: string | ||||
|     steps: | ||||
|       - save_cache: | ||||
|           key: deps--{{ arch }}--{{ .Branch }}--<< parameters.node-version >>--{{ checksum "package.json" }}-{{ checksum ".circleci/config.yml" }} | ||||
|           paths: | ||||
|             - ~/.npm | ||||
|             - node_modules | ||||
|       - node/install-packages | ||||
|   generate_and_store_version_and_filesystem_artifacts: | ||||
|     description: "Track important packages and files" | ||||
|     steps: | ||||
| @@ -71,9 +44,6 @@ commands: | ||||
|     steps: | ||||
|       - run: npm run cov:e2e:report || true | ||||
|       - run: npm run cov:e2e:<<parameters.suite>>:publish | ||||
| orbs: | ||||
|   node: circleci/node@5.1.0 | ||||
|   browser-tools: circleci/browser-tools@1.3.0 | ||||
| jobs: | ||||
|   npm-audit: | ||||
|     parameters: | ||||
| @@ -111,8 +81,6 @@ jobs: | ||||
|             TESTFILES=$(circleci tests glob "src/**/*Spec.js") | ||||
|             echo "$TESTFILES" | circleci tests run --command="xargs npm run test" --verbose | ||||
|       - run: npm run cov:unit:publish | ||||
|       - save_cache_cmd: | ||||
|           node-version: <<parameters.node-version>> | ||||
|       - store_test_results: | ||||
|           path: dist/reports/tests/ | ||||
|       - store_artifacts: | ||||
|   | ||||
							
								
								
									
										1
									
								
								.github/PULL_REQUEST_TEMPLATE.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/PULL_REQUEST_TEMPLATE.md
									
									
									
									
										vendored
									
									
								
							| @@ -17,7 +17,6 @@ Closes <!--- Insert Issue Number(s) this PR addresses. Start by typing # will op | ||||
| * [ ] Has this been smoke tested? | ||||
| * [ ] Have you associated this PR with a `type:` label? Note: this is not necessarily the same as the original issue. | ||||
| * [ ] Have you associated a milestone with this PR? Note: leave blank if unsure. | ||||
| * [ ] Is this a breaking change to be called out in the release notes? | ||||
| * [ ] Testing instructions included in associated issue OR is this a dependency/testcase change? | ||||
|  | ||||
| ### Reviewer Checklist | ||||
|   | ||||
							
								
								
									
										2
									
								
								.github/workflows/e2e-couchdb.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/e2e-couchdb.yml
									
									
									
									
										vendored
									
									
								
							| @@ -28,7 +28,7 @@ jobs: | ||||
|           restore-keys: | | ||||
|             ${{ runner.os }}-node- | ||||
|  | ||||
|       - run: npm install --cache ~/.npm --no-audit --progress=false | ||||
|       - run: npm ci --no-audit --progress=false | ||||
|  | ||||
|       - name: Login to DockerHub | ||||
|         uses: docker/login-action@v3 | ||||
|   | ||||
							
								
								
									
										2
									
								
								.github/workflows/e2e-flakefinder.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/e2e-flakefinder.yml
									
									
									
									
										vendored
									
									
								
							| @@ -31,7 +31,7 @@ jobs: | ||||
|             ${{ runner.os }}-node- | ||||
|  | ||||
|       - run: npx playwright@1.39.0 install | ||||
|       - run: npm install --cache ~/.npm --no-audit --progress=false | ||||
|       - run: npm ci --no-audit --progress=false | ||||
|  | ||||
|       - name: Run E2E Tests (Repeated 10 Times) | ||||
|         run: npm run test:e2e:stable -- --retries=0 --repeat-each=10 --max-failures=50 | ||||
|   | ||||
							
								
								
									
										2
									
								
								.github/workflows/e2e-perf.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/e2e-perf.yml
									
									
									
									
										vendored
									
									
								
							| @@ -29,7 +29,7 @@ jobs: | ||||
|             ${{ runner.os }}-node- | ||||
|  | ||||
|       - run: npx playwright@1.39.0 install | ||||
|       - run: npm install --cache ~/.npm --no-audit --progress=false | ||||
|       - run: npm ci --no-audit --progress=false | ||||
|       - run: npm run test:perf:localhost | ||||
|       - run: npm run test:perf:contract | ||||
|       - run: npm run test:perf:memory | ||||
|   | ||||
							
								
								
									
										2
									
								
								.github/workflows/e2e-pr.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/e2e-pr.yml
									
									
									
									
										vendored
									
									
								
							| @@ -35,7 +35,7 @@ jobs: | ||||
|  | ||||
|       - run: npx playwright@1.39.0 install | ||||
|       - run: npx playwright install chrome-beta | ||||
|       - run: npm install --cache ~/.npm --no-audit --progress=false | ||||
|       - run: npm ci --no-audit --progress=false | ||||
|       - run: npm run test:e2e:full -- --max-failures=40 | ||||
|       - run: npm run cov:e2e:report || true | ||||
|       - shell: bash | ||||
|   | ||||
							
								
								
									
										4
									
								
								.github/workflows/npm-prerelease.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/npm-prerelease.yml
									
									
									
									
										vendored
									
									
								
							| @@ -15,7 +15,7 @@ jobs: | ||||
|       - uses: actions/setup-node@v4 | ||||
|         with: | ||||
|           node-version: lts/hydrogen | ||||
|       - run: npm install | ||||
|       - run: npm ci | ||||
|       - run: | | ||||
|           echo "//registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN" >> ~/.npmrc | ||||
|           npm whoami | ||||
| @@ -31,7 +31,7 @@ jobs: | ||||
|         with: | ||||
|           node-version: lts/hydrogen | ||||
|           registry-url: https://registry.npmjs.org/ | ||||
|       - run: npm install | ||||
|       - run: npm ci | ||||
|       - run: npm publish --access=public --tag unstable | ||||
|         env: | ||||
|           NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | ||||
|   | ||||
							
								
								
									
										2
									
								
								.github/workflows/pr-platform.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/pr-platform.yml
									
									
									
									
										vendored
									
									
								
							| @@ -45,7 +45,7 @@ jobs: | ||||
|           restore-keys: | | ||||
|             ${{ runner.os }}-${{ matrix.node_version }}- | ||||
|  | ||||
|       - run: npm install --cache ~/.npm --no-audit --progress=false | ||||
|       - run: npm ci --no-audit --progress=false | ||||
|  | ||||
|       - run: npm test | ||||
|  | ||||
|   | ||||
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -47,6 +47,3 @@ index.html.bak | ||||
| .nyc_output | ||||
| coverage | ||||
| codecov | ||||
|  | ||||
| # :( | ||||
| package-lock.json | ||||
|   | ||||
							
								
								
									
										3
									
								
								.npmrc
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								.npmrc
									
									
									
									
									
								
							| @@ -2,6 +2,3 @@ loglevel=warn | ||||
|  | ||||
| #Prevent folks from ignoring an important error when building from source | ||||
| engine-strict=true | ||||
|  | ||||
| # Dont include lockfile | ||||
| package-lock=false | ||||
							
								
								
									
										14
									
								
								TESTING.md
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								TESTING.md
									
									
									
									
									
								
							| @@ -91,12 +91,14 @@ There are a few reasons that your GitHub PR could be failing beyond simple faile | ||||
| ### Local=Pass and CI=Fail | ||||
| Although rare, it is possible that your test can pass locally but fail in CI. | ||||
|  | ||||
| #### Busting Cache | ||||
| In certain circumstances, the CircleCI cache can become stale. In order to bust the cache, we've implemented a runtime boolean parameter in Circle CI creatively name BUST_CACHE. To execute: | ||||
| 1. Navigate to the branch in Circle CI believed to have stale cache. | ||||
| 1. Click on the 'Trigger Pipeline' button. | ||||
| 1. Add Parameter -> Parameter Type = boolean , Name = BUST_CACHE ,Value = true | ||||
| 1. Click 'Trigger Pipeline' | ||||
| ### Reset your workspace | ||||
| It's possible that you're running with dependencies or a local environment which is out of sync with the branch you're working on. Make sure to execute the following: | ||||
|  | ||||
| ```sh | ||||
| nvm use | ||||
| npm run clean | ||||
| npm install | ||||
| ``` | ||||
|  | ||||
| #### Run tests in the same container as CI | ||||
|  | ||||
|   | ||||
							
								
								
									
										12284
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										12284
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -91,7 +91,7 @@ | ||||
|     "webpack-merge": "5.10.0" | ||||
|   }, | ||||
|   "scripts": { | ||||
|     "clean": "rm -rf ./dist ./node_modules ./package-lock.json ./coverage ./html-test-results ./test-results ./.nyc_output ", | ||||
|     "clean": "rm -rf ./dist ./node_modules ./coverage ./html-test-results ./test-results ./.nyc_output ", | ||||
|     "start": "npx webpack serve --config ./.webpack/webpack.dev.js", | ||||
|     "start:prod": "npx webpack serve --config ./.webpack/webpack.prod.js", | ||||
|     "start:coverage": "npx webpack serve --config ./.webpack/webpack.coverage.js", | ||||
|   | ||||
| @@ -23,27 +23,46 @@ | ||||
| import EventEmitter from 'EventEmitter'; | ||||
| import _ from 'lodash'; | ||||
|  | ||||
| /** | ||||
|  * @typedef {Object} Selectable | ||||
|  * @property {HTMLElement} element The HTML element that is selectable | ||||
|  * @property {Object} context The context of the selectable, which may include a DomainObject | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @typedef {import('../../openmct').OpenMCT} OpenMCT | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * Manages selection state for Open MCT | ||||
|  * @private | ||||
|  */ | ||||
| export default class Selection extends EventEmitter { | ||||
|   /** | ||||
|    * @param {OpenMCT} openmct The Open MCT instance | ||||
|    */ | ||||
|   constructor(openmct) { | ||||
|     super(); | ||||
|  | ||||
|     /** @type {OpenMCT} */ | ||||
|     this.openmct = openmct; | ||||
|     /** @type {Selectable[]} */ | ||||
|     this.selected = []; | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * Gets the selected object. | ||||
|    * @returns {Selectable[]} The currently selected objects | ||||
|    * @public | ||||
|    */ | ||||
|   get() { | ||||
|     return this.selected; | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * Selects the selectable object and emits the 'change' event. | ||||
|    * | ||||
|    * @param {Selectable|Selectable[]} selectable An object or array of objects with element and context properties | ||||
|    * @param {object} selectable an object with element and context properties | ||||
|    * @param {Boolean} isMultiSelectEvent flag indication shift key is pressed or not | ||||
|    * @private | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 John Hill
					John Hill