Repository navigation
Release v7.4.3 - #656
Merged
Merged
Release v7.4.3#656
Conversation
…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>
✅ Deploy Preview for jsboundaries ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
6 similar comments
|
|
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Release v7.4.3
Publishes the README of the plugin with the playground links and the
is-core-moduleupgrade ofelements, and deploys the website playground to www.jsboundaries.dev. The website keeps version 7.4.1:packages/website/docs/is the same asversioned_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
@boundaries/elementsto 3.3.3,@boundaries/configto 1.0.2 and@boundaries/policiesto 1.0.2.elements v3.3.3
Changed
is-core-moduleto 2.18.0. The modules described ascoredo not change.config v1.0.2
Changed
@boundaries/elementsto 3.3.3.policies v1.0.2
Changed
@boundaries/elementsto 3.3.3 and@boundaries/configto 1.0.2.website (unreleased, version 7.4.1 unchanged)
Added
/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
--jsb-fainttoken says that it is meant for shapes, not for text.*.playwright.tsand*.constants.tsfiles, so the helpers of the browser tests never become routes.elementPathselector property.Fixed
checkAllOrigins, only controllers can importaxios. The sample ESLint message for the model importing a view is the one ESLint prints.checkAllOrigins, without which the policy aboutreduxnever applied.boundaries/dependenciesrule page writes theboundaries/filespatterns from the root of itssrc/project, so that its Correct and Incorrect examples are what ESLint reports.boundaries/dependencies,boundaries/entry-pointandboundaries/externalrule pages document thepoliciesoption, withrulesas its deprecated alias, and their sample error messages are the ones ESLint prints with the configuration of each page.boundaries/no-privatepage says that its message is customized with itsmessageoption.boundaries/dependenciesrule, and its copy button keeps their indentation.importKindandtargetexamples of the Legacy Policy Configuration page have valid syntax and consistent indentation, and their copy button no longer copies a stray.line.chore
Changed
@boundaries/playgroundpackage holds the playground that the website renders, with Playwright page objects (build:playwright) checked against their jsdom siblings (check:pom-parity). The newtest/website-e2eproject checks the website and the playground in Chromium, in thetest-browsersjob of the build workflow and incheck:allbefore publishing (feat: Website playground #649).tsxfiles and forbids fixed waits in Playwright files, and new agent rules cover the playground components, their tests and Playwright (feat: Website playground #649)pnpm/action-setupto v6.1.1,sonarqube-scan-actionto v8.4.1,@babel/coreto 7.29.13, andbaseline-browser-mappingto 2.11.35 in the website (fix(deps): update all patch dependencies (patch) #629)nxto 24.0.5,cspellto 10.4.1 andserveto 14.2.7, andeslint-plugin-jsdocto 65.4.5 in the shared ESLint config (fix(deps): update all patch dependencies (patch) #629, fix(deps): update dependency eslint-plugin-jsdoc to v65.4.4 #632, fix(deps): update all patch dependencies (patch) #639)@playwright/testto 1.65.0, andoxlintto 1.92.0 in the examples (fix(deps): update all minor dependencies (minor) #631)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