Skip to content

Conversation

@TomStrepsil
Copy link
Contributor

@TomStrepsil TomStrepsil commented Oct 21, 2025

Issue

resolves #46

Details

Provide an example, within the expressjs harness, demonstrating a filesystem convention (enabled by #54) whereby features exist as parallel filesystems that "patch" modules on the mainline.

Include variations of:

  • files containing only constants
  • css modules
  • redux slices
    • all of the above use an objectProxyTogglePoint using a Proxy to retarget access to appropriate variations at access-time
  • react components
    • uses the default toggle point from the react-pointcuts package
  • redux reducer maps
    • a basic higher-order function toggle point, reliant on a getReducerMap factory function as the control

...to demonstrate potential toggle point configuration for these. The README.md for the example explains further.

To demonstrate the use of valtio (previously only mentioned in passing in the features package docs), this is used to make a reactive features store on the browser.

Scout Rule

  • updated to v5 of upload-artifact and download-artifact GitHub Actions

  • convert deprecated unstable_config_lookup_from_file to v10_config_lookup_from_file now that its stable awaiting next major version.

  • upgrade eslint to 9.38.0

  • change the "config example" to use "I am" rather than "I'm" after a weird playwright failure with the "large config" example that no longer rendered the html entity for the apostrophe properly. Not gonna fight it.

  • update @playwright/test to 1.56.0

Screenshots

image

3x button click:
image

change to "feature 1":
image

2x button click:
image

change to "feature 2":
image

click "⛓️‍💥"
image

change to "feature 3":
image

4x button click:
image

change to "feature 4":
image

reload, with "feature2" header, then change to "feature 5":
image

CheckList

  • PR starts with [ISSUE_ID].
  • Has been tested (where required) before merge to main.

TomStrepsil and others added 30 commits December 24, 2024 17:31
* rename to proper module namespace

* update docs links

* update versions

* web toggle point in readme title

* fixup changelog from revised 0.x range

* 2.0.0 -> 0.5.0 in oss version scheme

* fix broken link syntax in CHANGELOG

* consistent quoting

* more version history issues

* fixup module name in jsdoc

* add web
remove sdkInstanceProvider

* remove SDKInstanceProvider

* fixup jsdoc dedupe

* tweak

* clarity re: ssr package

* casing etc
* update workflows

* version

* typo

* update chromium linux snaps

* versions for serve update

* package.json repository field

* update root package.lock

* bugs & directories/doc fields

* fix changelog

---------

Co-authored-by: Tom Pereira <[email protected]>
move reducer replacement to a provider, rather than a toggle side-effect
@TomStrepsil TomStrepsil requested a review from a team as a code owner October 21, 2025 18:43
@TomStrepsil TomStrepsil marked this pull request as draft October 22, 2025 06:36
@TomStrepsil TomStrepsil marked this pull request as ready for review October 23, 2025 10:14
Copilot AI review requested due to automatic review settings November 10, 2025 08:52
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR updates dependencies and configurations across the monorepo, primarily focused on upgrading ESLint, @playwright/test, Next.js, and converting from deprecated ESLint flags.

  • Updated ESLint from ^9.15.0 to ^9.38.0 and converted deprecated unstable_config_lookup_from_file flag to v10_config_lookup_from_file
  • Updated @playwright/test from ^1.49.0 to ^1.56.0 across all packages
  • Updated Next.js from ^15.3.0 to ^15.5.6
  • Added new parallel-folder-convention example code in express example
  • Updated various package versions in lock file
  • Added missing TypeScript configuration and eslint comment to disable workspace warnings

Reviewed Changes

Copilot reviewed 88 out of 91 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
package.json Updated eslint version and other root dependencies
package-lock.json Comprehensive dependency version updates across packages
test/automation/package.json Updated @playwright/test version
test/automation/docs/CHANGELOG.md Documented @playwright/test upgrade
packages/webpack/package.json Updated eslint flag in lint script
packages/webpack/docs/CHANGELOG.md Documented eslint flag update and documentation fixes
packages/webpack/docs/README.md Updated technical documentation references
packages/ssr/package.json Updated eslint flag in lint script
packages/ssr/docs/CHANGELOG.md Documented eslint flag update
packages/react-pointcuts/src/withToggledHookFactory/index.js Simplified empty block comment
packages/react-pointcuts/package.json Updated eslint flag in lint script
packages/react-pointcuts/docs/CHANGELOG.md Documented eslint flag update and linebreak revert
packages/features/package.json Updated eslint flag in lint script
packages/features/docs/CHANGELOG.md Documented eslint flag update
examples/serve/package.json Updated eslint flags and @playwright/test version
examples/serve/docs/CHANGELOG.md Documented changes
examples/next/package.json Updated Next.js and @playwright/test versions
examples/next/playwright.config.ts Added eslint disable comment
examples/next/docs/CHANGELOG.md Documented updates
examples/next/README.md Removed outdated caveat about issue #50
examples/express/webpack.config.js Added extensive TypeScript configuration
examples/express/src/routes/parallel-folder-convention/* Added new example code files for parallel folder convention

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.1.5] - 2025-10-21
Copy link

Copilot AI Nov 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The date format appears to be incorrect. '2025-10-21' uses an invalid month '10' (October) which only has 31 days max, but this should likely be October 21st. However, more critically, the year 2025 combined with month 10 suggests this is a future date that hasn't occurred yet relative to the current date in the codebase context.

Copilot uses AI. Check for mistakes.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.9.2] - 2025-10-22
Copy link

Copilot AI Nov 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changelog entry date '2025-10-22' represents a future date that hasn't occurred yet, which is inconsistent with typical changelog practices of documenting changes that have already been made.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

How to handle large, multi-directory changes

1 participant