Skip to content

feat!: prepare Sous packages for the 2.0 release - #2

Merged
callinmullaney merged 112 commits into
mainfrom
codex/release-packages-2.0
Nov 13, 2026
Merged

callinmullaney merged 112 commits into
mainfrom
codex/release-packages-2.0

Conversation

@callinmullaney

@callinmullaney callinmullaney commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator

What ships in 2.0.0

Sous 2.0.0 ships 21 independently installable Composer packages under fourkitchens/, all sharing one version. Every package is a Drupal recipe; no modules ship in this collection. Recipes apply during setup and then unpack, leaving each site with its own dependencies and exported configuration.

Package Role Purpose
sous-admin Starter base Gin, Navigation, roles, menu permissions and management Views.
sous-dashboard Starter base Site admin and Editor dashboards.
sous-emulsify Starter base Emulsify theme and theme development tools.
sous-workflow Starter base / shared dependency Editorial moderation and scheduled publishing.
sous-formats Starter base HTML formats, CKEditor 5 and Linkit defaults.
sous-media Starter base File, Image and Video media with focal points and native authoring tools.
sous-seo Starter base Redirects, sitemaps, breadcrumbs and SEO integrations.
sous-dev-tools Starter base Local debugging, file proxying and user impersonation.
sous-config-split Starter base Local and staging development tools kept out of production.
sous-content-base Shared dependency Shared Page/Frontpage fields, authoring tabs, teasers and aliases.
sous-paragraph-types Paragraphs building blocks Text, media, accordion, tabs, quote, embed and table components.
sous-content-types Main course (default) Page and Frontpage with Body fields.
sous-paragraphs Main course Body-free Page/Frontpage with Layout Paragraphs and reusable components.
sous-core-layout-builder Main course Native layouts with matching nested inline block types.
sous-content-list Main-course component Hand-picked teasers and automatic listings filtered by terms.
sous-gallery Main-course component Image and video galleries.
sous-events Optional side Recurring events, types, teasers and upcoming/past embeds.
sous-news-post Optional side News Posts, bylines, categories, teasers and a Recent News embed.
sous-profile Optional side Profiles, automatic names, images, bios and searchable teasers.
sous-alerts Optional side Site-wide alert banners with scheduling and dismissal.
sous-search Optional side Database search with a results block and content-type filter.

Only the five optional sides have extra.sous.menu: true. Content List and Gallery are included with the Paragraphs and Layout Builder main courses. Content Base and Paragraph Types support the relevant compositions; they are not additional selectable main courses or sides.

Notable decisions

  • Every starter site gets Dashboard, including the Site admin and Editor dashboards, and Formats. Neither is an optional side.
  • Site Admin (site_admin) manages team accounts through Administer Users by Role: it can create accounts and edit, block or cancel authenticated-only and Site Admin accounts. Accounts with Superuser, including mixed-role accounts, are protected and hidden from the People list. Role Delegation permits assigning or removing only Site Admin on the account edit form; Custom Permissions keeps its separate Roles page Superuser-only.
  • Content List requires fourkitchens/viewsreference_sift ^1.0.0-beta4 from GitHub. Sites retain that scoped repository entry, minimum-stability: beta, and prefer-stable: true after recipes unpack. Weekly CI resolves the newest compatible beta and tests all four compositions every Monday at 07:23 UTC; scheduled runs do not publish releases.
  • Nine patches live in one root Composer Patches manifest. The manifest and all nine patches are byte-identical to the starter's.

Release sequence

  1. Squash-merge with the existing title, feat!: prepare Sous packages for the 2.0 release. After the checks on main pass, semantic-release tags 2.0.0; package versions are generated rather than edited by hand.
  2. The GitHub release is created as a draft, all 21 ZIPs and release-manifest.json are attached, and then the release is published.
  3. The release job rebuilds the Composer index from published manifests. deploy-index then publishes packages.json and the catalog through GitHub Pages, verifies all 21 packages at 2.0.0, and checks that their ZIP URLs return HTTP 200 after redirects.

Evidence

The latest green PR run is Code quality and release #175, testing commit d7208b47e50790b2056027010594218c24f82d79. npm test and all four fresh SQLite compositions passed:

  • admin: the administration baseline without Page or Frontpage.
  • content-types: Page and Frontpage with Body fields.
  • core-layout-builder: native layouts and nested inline blocks, plus matching component integrations.
  • paragraphs: Body-free Layout Paragraphs authoring and reusable components, plus matching integrations.

Every composition also applies Events, News Post, Profile, Content List, SEO, Alerts and Search. Layout Builder and Paragraphs additionally apply Gallery and the matching Events, News Post and Content List integrations. Verification covers account protection and Site Admin grants, content and media models, authoring and rendering, moderation and scheduling, dashboards and navigation, optional features, and production configuration splits.

After merge

Once the release and public index deployment succeed, rerun starter PR #132 against the public Composer index, without a packages_ref override. This verifies installation from the published 2.0.0 artifacts rather than the packages branch.

Callin Mullaney and others added 3 commits October 27, 2026 12:32
feat: add semantic releases and recipe scaffolding
Use the 1.0.0 baseline on main to select 2.0.0 for the initial collection release, including squash merges. Keep the tag-only baseline outside the Composer index.

BREAKING CHANGE: Hosted Sous packages and consumer requirements use the shared 2.x release line.
@callinmullaney callinmullaney changed the title Codex/release packages 2.0 feat!: prepare Sous packages for the 2.0 release Oct 27, 2026
Callin Mullaney added 6 commits October 28, 2026 20:33
Use setProperties for block and form display config entities.

Lower core requirements to the minimum minors verified by applying the
recipes on Drupal 11.1.0, 11.3.0 and 11.4.0. Align the recipe template and
contributor guidance with these requirements.
@callinmullaney

Copy link
Copy Markdown
Collaborator Author

Upstream Emulsify patch status for the Sous release:

Repository Proposed version Status
UI Kit 1.9.1 PR #189, waiting for maintainer review; squash with its fix title to retain a patch release.
CLI 2.4.2 PR #377 merged; publishing run is blocked by npm E401/EINVALIDNPMTOKEN.
Core 4.5.1 Draft PR #322; all 19 required code checks pass. Raise its CLI minimum to ^2.4.2 after that version is published.
Drupal 7.3.1 Draft PR #385; generated defaults require Core ^4.5.1, so public CI installation waits for that release.

The candidates remove Sous's SCSS/story asset post-processing and resolve simple-git 4.0.2, Pa11y 10 and the complete Storybook 10.6.4 cohort. Core also uses the maintained Forum One Drupal filters to avoid legacy Twig dependencies without consumer overrides. Linux Chromium system-library installation is documented upstream.

Verified with candidate npm tarballs: real drush-generated Drupal theme, UI Kit system install from its GitHub branch, lint, Vite build, Storybook build and lint again, with no npm overrides or source rewriting. All 34 SCSS entrypoints were compared before/after: 2,779 declarations retain order except the requested clipping/wrapping replacements and equivalent short hex values. Core's full release gate passed 1,551 tests. A fresh candidate consumer has zero moderate/high/critical audit findings (six low remain).

These versions are proposed, not published yet. Keep the current Sous downstream fixes until npm authentication is repaired, required review is complete, the releases exist and the fresh install is repeated against their published versions/tags.

@callinmullaney
callinmullaney merged commit 72534e8 into main Nov 13, 2026
8 checks passed
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.

1 participant