Repository navigation
feat: introduce dual-generation monorepo architecture - #5785
Conversation
|
📚 Branch Preview🔍 Visual Regression Test ResultsWhen a visual regression test fails (or has previously failed while working on this branch), its results can be found in the following URLs:
Deployed to Azure Blob Storage: If the changes are expected, update the |
Tachometer resultsCurrently, no packages are changed by this PR... |
ec211ef to
22de59a
Compare
- Add root package.json with workspace delegating scripts - Configure Yarn 4 with monorepo workspaces - Set up lint-staged, commitlint, and patch-package - Update .gitignore for dual-workspace structure - Configure root-level linting and formatting rules
- Create 2nd-gen workspace with separate package.json - Add @spectrum-web-components/core package with shared base classes - Implement 2nd-gen components: asset, alert-banner, divider, progress-circle, status-light, report-abuse-button - Add @adobe/swc aggregator package - Configure Vite-based Storybook for Spectrum 2 - Set up Vitest and Playwright testing infrastructure - Add TypeScript path mappings for cross-generation imports
- Update CircleCI config for 1st-gen and 2nd-gen paths - Modify GitHub workflows for monorepo structure - Update changeset configuration for dual-workspace - Add Cursor rules for contributor documentation
- Add comprehensive contributor documentation - Document 1st-gen vs 2nd-gen split and migration paths - Include component migration step-by-step guides - Add project planning and workstream documentation - Document release processes and testing strategies
…5851) * chore: update and streamline publishing workflow for new monorepo structure Refactors the publishing and release management workflow to support the dual-generation monorepo architecture: - Update Changesets configuration to recognize both 1st-gen and 2nd-gen workspaces, enabling independent versioning strategies - Refactor release scripts to delegate to generation-specific publishing workflows rather than operating on a flat package structure - Update CI/CD publishing jobs to build, test, and publish both generations with appropriate dependency handling for the shared Core library - Preserve existing 1st-gen package publishing behavior to avoid disruption to current consumers This workflow enables continuous delivery of improvements to 1st-gen customers while supporting independent 2nd-gen package releases.
3ff495e to
fd099fd
Compare
nikkimk
left a comment
There was a problem hiding this comment.
The docs are looking very very nice. Here's what I have for feedback today.
b117fc5 to
a9e20e1
Compare
1d127dd to
d0d9c8e
Compare
caseyisonit
left a comment
There was a problem hiding this comment.
INSANE IN THE MEMBRANE
| - Override properties that need type narrowing with S2-specific types | ||
| - In API ADDITIONS section (if applicable): | ||
| - Add any S2-only properties (e.g., `subtle`, `outline` for Badge) | ||
| - Re-export any S2-specific types and constants as needed for backward compatibility, marking them as deprecated |
There was a problem hiding this comment.
Why would we be deprecating S2-specific types? Did we mean S1-specific?
There was a problem hiding this comment.
Great catch - I updated it too!
Description
This PR restructures the Spectrum Web Components repository into a dual-generation monorepo to support side-by-side development of 1st-gen and 2nd-gen components. This architectural change is foundational to the project's strategic objectives and enables the team to pursue multiple goals in parallel without disruption.
Key changes:
1st-gen/workspace, preserving all existing functionality2nd-gen/workspace with initial package structure for@spectrum-web-components/coreand@adobe/swc@spectrum-web-components/core) containing abstract, non-rendering base classes that both generations can extendMotivation and context
This change implements the "side-by-side development" strategy outlined in our project objectives, providing two critical advantages:
Isolation: 1st-gen and 2nd-gen workspaces are separated, allowing 2nd-gen to be built iteratively from the ground up without risking breakage to 1st-gen. Disruptive changes (tooling overhauls, Spectrum CSS unification, full-fidelity Spectrum 2 implementation) are confined to
2nd-gen/, while 1st-gen continues operating "as-is".Colocation: Both generations live in the same repository and share core component logic through abstract base classes in
@spectrum-web-components/core. This means:This architectural foundation enables the team to work efficiently on multiple strategic objectives in parallel:
See
CONTRIBUTOR-DOCS/03_project-planning/01_objectives-and-strategy.mdfor detailed strategic context.Related issue(s)
Screenshots (if appropriate)
Author's checklist
Reviewer's checklist
patch,minor, ormajorfeaturesManual review test cases
All testing and validation happening under SWC-1236.