Skip to content

Release v7.4.3 - #656

Merged
javierbrea merged 11 commits into
masterfrom
release
Nov 12, 2026
Merged

javierbrea merged 11 commits into
masterfrom
release

Conversation

@javierbrea

Copy link
Copy Markdown
Owner

Release v7.4.3

Publishes the README of the plugin with the playground links and the is-core-module upgrade of elements, and deploys the website playground to www.jsboundaries.dev. The website keeps version 7.4.1: packages/website/docs/ is the same as versioned_docs/version-7.4.1/, so its changes are listed in their own section and stay under [Unreleased] in its changelog.

eslint-plugin v7.4.3

Changed

  • chore: The README links to the playground, with a button next to the documentation one and a section after the installation. Its package list names the published packages without referring to the repository.
  • chore: Upgrade @boundaries/elements to 3.3.3, @boundaries/config to 1.0.2 and @boundaries/policies to 1.0.2.

elements v3.3.3

Changed

  • chore: Upgrade is-core-module to 2.18.0. The modules described as core do not change.

config v1.0.2

Changed

  • chore: Upgrade @boundaries/elements to 3.3.3.

policies v1.0.2

Changed

  • chore: Upgrade @boundaries/elements to 3.3.3 and @boundaries/config to 1.0.2.

website (unreleased, version 7.4.1 unchanged)

Added

  • feat(Website playground: try a config against a sketched project #539): A playground at /playground/, linked from the navbar and the home: sketch a project and its boundaries config, and see how each file is classified and which imports are allowed, in the browser, evaluated in a background thread that never blocks the page. A link keeps the whole project, to share it or to open it from the docs, and a new Playground guide explains how to use it.

Changed

  • chore(Raise the contrast of the playground text below 4.5:1 #634): The comment of the --jsb-faint token says that it is meant for shapes, not for text.
  • chore(Add a Playwright sanity suite for the website and the playground #640): The 404 page marks its content with a test id, and the pages plugin skips *.playwright.ts and *.constants.ts files, so the helpers of the browser tests never become routes.
  • feat: The home shows the Robert C. Martin quote right below the hero and the playground right after "How it works", and its section labels are larger.
  • feat: The footer links to the Acknowledgments page once.
  • docs: The Overview and Classification pages say that the module layer has no descriptors, and link to the settings that decide when a module is external.
  • docs: The Policies, Elements, Files, Modules, Selectors and Settings pages leave deprecated options and syntax to their Legacy pages and link to them. The Legacy pages now also cover the deprecated rules, the legacy selectors in policies and the elementPath selector property.
  • docs: The text alternatives of the Selectors diagrams describe what the diagrams show.

Fixed

  • docs: The policies of the Overview page now do what they say: with checkAllOrigins, only controllers can import axios. The sample ESLint message for the model importing a view is the one ESLint prints.
  • docs: The Complete Example of the Policies page sets checkAllOrigins, without which the policy about redux never applied.
  • docs: The boundaries/dependencies rule page writes the boundaries/files patterns from the root of its src/ project, so that its Correct and Incorrect examples are what ESLint reports.
  • docs: The boundaries/dependencies, boundaries/entry-point and boundaries/external rule pages document the policies option, with rules as its deprecated alias, and their sample error messages are the ones ESLint prints with the configuration of each page.
  • docs: The rule pages name the Policies page in their links to its Message Templating section, and the boundaries/no-private page says that its message is customized with its message option.
  • fix(Raise the contrast of the playground text below 4.5:1 #634): The dimension label of the home drawing has enough contrast to read in both themes.
  • docs: The JavaScript tab of the last step of the Quick Start marks every added line of the boundaries/dependencies rule, and its copy button keeps their indentation.
  • docs: The importKind and target examples of the Legacy Policy Configuration page have valid syntax and consistent indentation, and their copy button no longer copies a stray . line.

chore

Changed

Agreement

Please check the following boxes after you have read and understood each item.

Closing issues

closes #539
closes #551
closes #552
closes #553
closes #554
closes #555
closes #634
closes #635
closes #640

🤖 Generated with Claude Code

javierbrea and others added 11 commits November 5, 2026 12:55
…release inventory (#626)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
The website gets a playground at `/playground/`: sketch a project and its boundaries config, and see how each file is classified and which of its dependencies are allowed, evaluated in the browser by the same `@boundaries/config` and `@boundaries/policies` as the plugin. It was designed in [RFC #538](#538) and is tracked in #539 (milestone [Playground](https://github.com/javierbrea/eslint-plugin-boundaries/milestone/45)). Each part was reviewed in its own PR into `feat/539/playground`, listed below.

### For users

- The files of a project are sketched as a tree or as text, the `settings` and `rules` of `eslint.config.js` are written in a JSON5 editor that lints them, and dependencies are added through a picker and shown as import statements.
- Each dependency shows its verdict and the policy that decided it. The inspector describes the file and the dependency in focus as the selectors see them, and the problems panel lists the disallowed dependencies and the config errors.
- The evaluation runs in a web worker, so a slow project never blocks the page.
- A link holds the whole project, so it can be shared. The top bar has examples, Help, Reset and Share.
- The docs have a Playground guide and Open in playground buttons on the Quick start, the Overview, the Policies page and the `boundaries/dependencies` rule page, in `docs/` and in the 7.4.1 snapshot. The bug report template asks for a playground link.
- Desktop only: below 997 px the page shows a note and never loads the playground chunk.

### Projects

- `packages/playground` (`@boundaries/playground`, private): the component, host-agnostic through `ProjectSource` and `StateStore`, with the `/share` entry for the docs and the `/playwright` entry for browser specs. Its layering is lint-enforced; `packages/playground/AGENTS.md` and the `playground-components` and `playground-testing` rules describe it.
- `packages/website`: the page that hosts the playground in a lazy chunk, the `OpenInPlayground` docs component, the guide, its own Playwright page objects, and the changelog entries under `Unreleased`.
- `test/website-e2e` (new, private): a Playwright sanity suite of the production build in Chromium, at a desktop and a narrow viewport, in the `test-browsers` job of CI.
- Shared: the `playwright-testing` rule, `scripts/check-pom-parity.js` and `scripts/check-bundle-imports.js`, the fixed-wait lint of `support/eslint-config`, and the `build:playwright` and `check:pom-parity` targets.
- No published package changes: `elements`, `config`, `policies` and `eslint-plugin` are untouched.

### Pull requests

| PR | Issue | Change |
| --- | --- | --- |
| #599 | #551 | Scaffold the package and the website shell |
| #621 | #552 | M1: identify the files of a sketched project |
| #630 | #553 | M2: verdicts of the dependencies |
| #633 | #554 | M3: share by URL and embed in the docs |
| #637 | — | Scroll the inspector instead of cutting its lists |
| #638 | — | Describe the dependency in focus in the inspector |
| #641 | #635 | Evaluate the project in a web worker |
| #642 | #555 | Document the playground |
| #643 | — | Confirm Share on the button, explain the rest in a dialog |
| #644 | #634 | Raise the contrast of the text below 4.5:1 |
| #645 | #640 | Playwright page objects owned by the components |
| #646 | #640 | Check the website and the playground in Chromium |
| #648 | — | Remove the playground plan |

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* docs: Improve the website docs, home and footer

- Overview and Classification: the module layer has no descriptors, and settings decide when a module is external.
- Policies, Elements, Files, Modules, Selectors and Settings leave deprecated options to their Legacy pages and link to them; the Legacy pages gain the deprecated rules, the legacy selectors in policies and the elementPath selector property.
- Quick Start: every added line of the last step is marked in the JavaScript tab.
- Selectors: the text alternatives of the diagrams describe them.
- Home: the Robert C. Martin quote goes below the hero, the playground after "How it works", and the section labels are larger.
- Footer: a single link to the Acknowledgments page.

The changes go in docs/ and in the 7.4.1 snapshot alike.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs: Fix the examples of the Legacy policies page

The importKind examples get the commas they need and lose a stray "." line, the target example gets a consistent indentation, and the Legacy elements page says that mode prints a deprecation warning.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* docs: Link the playground from the README

The README shows two buttons, to the documentation and to the playground, in place of the line that linked the website and the quick start, and a Playground section after the installation. The quick start keeps its link at the end of "How it works".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs: Describe the packages of the README without "this repository"

The README is also published on npm, where "This repository holds the packages" did not fit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Apply suggestion from @devin-ai-integration[bot]

Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
… v1.0.2 and policies v1.0.2 (#654)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ite changelog (#655)

The playground is first released with the website changes that v7.4.3 deploys, so the chore(#640) entry no longer lists the test ids of its page. The changelog rule extends to features what it said about packages.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@javierbrea javierbrea added the type: task A general task or action item to be completed label Nov 12, 2026
@javierbrea javierbrea self-assigned this Nov 12, 2026
@netlify

netlify Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for jsboundaries ready!

Name Link
🔨 Latest commit 306d20e
🔍 Latest deploy log https://app.netlify.com/projects/jsboundaries/deploys/6af5e743f686c3a070e9e2b6
😎 Deploy Preview https://deploy-preview-656--jsboundaries.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 100.0%. remained the same — release into master

6 similar comments
@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 100.0%. remained the same — release into master

@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 100.0%. remained the same — release into master

@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 100.0%. remained the same — release into master

@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 100.0%. remained the same — release into master

@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 100.0%. remained the same — release into master

@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 100.0%. remained the same — release into master

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Passed Quality Gate passed for 'javierbrea_eslint-plugin-boundaries_elements'

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
0.0% Coverage on New Code
0.0% Duplication on New Code

See analysis details on SonarQube Cloud

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Passed Quality Gate passed for 'javierbrea_eslint-plugin-boundaries_config'

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
0.0% Coverage on New Code
0.0% Duplication on New Code

See analysis details on SonarQube Cloud

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Passed Quality Gate passed for 'javierbrea_eslint-plugin-boundaries_policies'

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
0.0% Coverage on New Code
0.0% Duplication on New Code

See analysis details on SonarQube Cloud

@sonarqubecloud

Copy link
Copy Markdown

@javierbrea
javierbrea merged commit 24ffcb1 into master Nov 12, 2026
48 of 49 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment