@embroider/try
Advanced tools
| name: Plan Release | ||
| on: | ||
| workflow_dispatch: | ||
| push: | ||
| branches: | ||
| - main | ||
| - master | ||
| pull_request_target: # This workflow has permissions on the repo, do NOT run code from PRs in this workflow. See https://securitylab.github.com/research/github-actions-preventing-pwn-requests/ | ||
| types: | ||
| - labeled | ||
| - unlabeled | ||
| concurrency: | ||
| group: plan-release # only the latest one of these should ever be running | ||
| cancel-in-progress: true | ||
| jobs: | ||
| should-run-release-plan-prepare: | ||
| name: Should we run release-plan prepare? | ||
| runs-on: ubuntu-latest | ||
| outputs: | ||
| should-prepare: ${{ steps.should-prepare.outputs.should-prepare }} | ||
| steps: | ||
| - uses: release-plan/actions/should-prepare-release@v1 | ||
| with: | ||
| ref: 'main' | ||
| id: should-prepare | ||
| create-prepare-release-pr: | ||
| name: Create Prepare Release PR | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 5 | ||
| needs: should-run-release-plan-prepare | ||
| permissions: | ||
| contents: write | ||
| issues: read | ||
| pull-requests: write | ||
| if: needs.should-run-release-plan-prepare.outputs.should-prepare == 'true' | ||
| steps: | ||
| - uses: release-plan/actions/prepare@v1 | ||
| name: Run release-plan prepare | ||
| with: | ||
| ref: 'main' | ||
| env: | ||
| GITHUB_AUTH: ${{ secrets.GITHUB_TOKEN }} | ||
| id: explanation | ||
| - uses: peter-evans/create-pull-request@v8 | ||
| name: Create Prepare Release PR | ||
| with: | ||
| commit-message: "Prepare Release ${{ steps.explanation.outputs.new-version}} using 'release-plan'" | ||
| labels: "internal" | ||
| sign-commits: true | ||
| branch: release-preview | ||
| title: Prepare Release ${{ steps.explanation.outputs.new-version }} | ||
| body: | | ||
| This PR is a preview of the release that [release-plan](https://github.com/embroider-build/release-plan) has prepared. To release you should just merge this PR 👍 | ||
| ----------------------------------------- | ||
| ${{ steps.explanation.outputs.text }} |
| # For every push to the primary branch with .release-plan.json modified, | ||
| # runs release-plan. | ||
| name: Publish Stable | ||
| on: | ||
| workflow_dispatch: | ||
| push: | ||
| branches: | ||
| - main | ||
| - master | ||
| paths: | ||
| - '.release-plan.json' | ||
| concurrency: | ||
| group: publish-${{ github.head_ref || github.ref }} | ||
| cancel-in-progress: true | ||
| jobs: | ||
| publish: | ||
| name: "NPM Publish" | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: write | ||
| id-token: write | ||
| attestations: write | ||
| steps: | ||
| - uses: actions/checkout@v6 | ||
| - uses: pnpm/action-setup@v4 | ||
| - uses: actions/setup-node@v6 | ||
| with: | ||
| node-version: 22 | ||
| registry-url: 'https://registry.npmjs.org' | ||
| cache: pnpm | ||
| - run: npm install -g npm@latest # ensure that the globally installed npm is new enough to support OIDC | ||
| - run: pnpm install --frozen-lockfile | ||
| - name: Publish to NPM | ||
| run: NPM_CONFIG_PROVENANCE=true pnpm release-plan publish | ||
| env: | ||
| GITHUB_AUTH: ${{ secrets.GITHUB_TOKEN }} |
| { | ||
| "solution": { | ||
| "@embroider/try": { | ||
| "impact": "patch", | ||
| "oldVersion": "1.0.0", | ||
| "newVersion": "1.0.1", | ||
| "tagName": "latest", | ||
| "constraints": [ | ||
| { | ||
| "impact": "patch", | ||
| "reason": "Appears in changelog section :bug: Bug Fix" | ||
| }, | ||
| { | ||
| "impact": "patch", | ||
| "reason": "Appears in changelog section :memo: Documentation" | ||
| }, | ||
| { | ||
| "impact": "patch", | ||
| "reason": "Appears in changelog section :house: Internal" | ||
| } | ||
| ], | ||
| "pkgJSONPath": "./package.json" | ||
| } | ||
| }, | ||
| "description": "## Release (2026-02-03)\n\n* @embroider/try 1.0.1 (patch)\n\n#### :bug: Bug Fix\n* `@embroider/try`\n * [#4](https://github.com/embroider-build/try/pull/4) Add repository field to package.json ([@ef4](https://github.com/ef4))\n\n#### :memo: Documentation\n* `@embroider/try`\n * [#7](https://github.com/embroider-build/try/pull/7) adding a readme ([@ef4](https://github.com/ef4))\n\n#### :house: Internal\n* `@embroider/try`\n * [#5](https://github.com/embroider-build/try/pull/5) adding release plan ([@ef4](https://github.com/ef4))\n\n#### Committers: 1\n- Edward Faulkner ([@ef4](https://github.com/ef4))\n" | ||
| } |
+20
| # Changelog | ||
| ## Release (2026-02-03) | ||
| * @embroider/try 1.0.1 (patch) | ||
| #### :bug: Bug Fix | ||
| * `@embroider/try` | ||
| * [#4](https://github.com/embroider-build/try/pull/4) Add repository field to package.json ([@ef4](https://github.com/ef4)) | ||
| #### :memo: Documentation | ||
| * `@embroider/try` | ||
| * [#7](https://github.com/embroider-build/try/pull/7) adding a readme ([@ef4](https://github.com/ef4)) | ||
| #### :house: Internal | ||
| * `@embroider/try` | ||
| * [#5](https://github.com/embroider-build/try/pull/5) adding release plan ([@ef4](https://github.com/ef4)) | ||
| #### Committers: 1 | ||
| - Edward Faulkner ([@ef4](https://github.com/ef4)) |
+47
| # @embroider/try | ||
| A tiny utility to support matrix testing. | ||
| ## List | ||
| `pnpm -s @embroider/try list` | ||
| Processes your `.try.mjs` file and emits JSON that can be used in GitHub Actions to create your `strategy.matrix`. | ||
| ## Apply | ||
| `pnpm dlx @embroider/try apply $SCENARIO_NAME` | ||
| Applies a scenario to your project by editing package.json, etc. Use this before the regular `pnpm install` or `npm install` in order to test differing dependencies. | ||
| ## Config File: .try.mjs | ||
| ```ts | ||
| export default interface { | ||
| scenarios: Scenario[]; | ||
| } | ||
| interface Scenario { | ||
| name: string; | ||
| // Values that will be merged into package.json: | ||
| // | ||
| // npm: { | ||
| // devDependencies: { | ||
| // 'ember-source': '^6.7.8' | ||
| // } | ||
| // } | ||
| npm?: { | ||
| devDependencies: Record<string, string>; | ||
| dependencies: Record<string, string>; | ||
| peerDependencies: Record<string, string>; | ||
| overrides: Record<string, string>; | ||
| }, | ||
| // Files that will be (over)written with the given contents | ||
| // | ||
| // files: { | ||
| // 'tsconfig.json': '{ compilerOptions: {} }' | ||
| // } | ||
| files?: Record<string, string>, | ||
| } | ||
| ``` |
+27
| # Release Process | ||
| Releases in this repo are mostly automated using [release-plan](https://github.com/embroider-build/release-plan/). Once you label all your PRs correctly (see below) you will have an automatically generated PR that updates your CHANGELOG.md file and a `.release-plan.json` that is used to prepare the release once the PR is merged. | ||
| ## Preparation | ||
| Since the majority of the actual release process is automated, the remaining tasks before releasing are: | ||
| - correctly labeling **all** pull requests that have been merged since the last release | ||
| - updating pull request titles so they make sense to our users | ||
| Some great information on why this is important can be found at [keepachangelog.com](https://keepachangelog.com/en/1.1.0/), but the overall | ||
| guiding principle here is that changelogs are for humans, not machines. | ||
| When reviewing merged PR's the labels to be used are: | ||
| - breaking - Used when the PR is considered a breaking change. | ||
| - enhancement - Used when the PR adds a new feature or enhancement. | ||
| - bug - Used when the PR fixes a bug included in a previous release. | ||
| - documentation - Used when the PR adds or updates documentation. | ||
| - internal - Internal changes or things that don't fit in any other category. | ||
| **Note:** `release-plan` requires that **all** PRs are labeled. If a PR doesn't fit in a category it's fine to label it as `internal` | ||
| ## Release | ||
| Once the prep work is completed, the actual release is straight forward: you just need to merge the open [Plan Release](https://github.com/embroider-build/try/pulls?q=is%3Apr+is%3Aopen+%22Prepare+Release%22+in%3Atitle) PR |
+11
-8
| { | ||
| "name": "@embroider/try", | ||
| "version": "1.0.0", | ||
| "version": "1.0.1", | ||
| "description": "Helper for trying multiple compatibility scenarios in CI", | ||
| "keywords": [], | ||
| "repository": "https://github.com/embroider-build/try", | ||
| "license": "MIT", | ||
| "author": "Edward Faulkner <edward@eaf4.com>", | ||
| "type": "module", | ||
| "bin": "cli.js", | ||
| "type": "module", | ||
| "devDependencies": { | ||
| "release-plan": "^0.17.4" | ||
| }, | ||
| "scripts": { | ||
| "test": "echo \"Error: no test specified\" && exit 1" | ||
| }, | ||
| "keywords": [], | ||
| "author": "Edward Faulkner <edward@eaf4.com>", | ||
| "license": "MIT", | ||
| "packageManager": "pnpm@10.4.1" | ||
| } | ||
| } | ||
| } |
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
10545
265.76%8
300%114
32.56%0
-100%48
Infinity%1
Infinity%