Skip to content

[preview only] Vendored UI + Vite toolchain combined#875

Closed
lfrancke wants to merge 6 commits into
mainfrom
chore/ui-toolchain
Closed

[preview only] Vendored UI + Vite toolchain combined#875
lfrancke wants to merge 6 commits into
mainfrom
chore/ui-toolchain

Conversation

@lfrancke

Copy link
Copy Markdown
Member

Draft PR whose only purpose is to trigger a Netlify deploy preview of the combined #873 + #874 stack (Netlify does not build previews for PRs based on non-production branches). Do not review or merge - review happens in #873 and #874. This gets closed once those merge.

@netlify

netlify Bot commented Jul 10, 2026

Copy link
Copy Markdown

Deploy Preview for stackable-docs ready!

Name Link
🔨 Latest commit 787fc7a
🔍 Latest deploy log https://app.netlify.com/projects/stackable-docs/deploys/6a57788fd898c90008ec49b8
😎 Deploy Preview https://deploy-preview-875--stackable-docs.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.

@stackable-cla

stackable-cla Bot commented Jul 10, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@lfrancke lfrancke force-pushed the chore/ui-toolchain branch 3 times, most recently from 7aeb67e to ef25007 Compare July 15, 2026 11:57
lfrancke added 6 commits July 15, 2026 14:09
gulp-imagemin minified these on every build; the minified versions are
committed so the build does not need an image pipeline.
The .gitlab-ci.yml and the docs/ component are inherited from
antora-ui-default and were never used here.
Minification strips embedded license header comments from the built
css/js, so the attributions (Font Awesome, highlight.js, Asciidoctor
Tabs, Octicons, the OFL fonts, and the MPL-2.0 upstream fork) live in
a NOTICE file. The build ships it in the UI bundle, which publishes it
on the site.
Vite is what stackable-apps and stackable-cockpit build with, and the
gulp pipeline was frozen: gulp-eslint/gulp-stylelint are unmaintained
and pinned eslint 6 / stylelint 13. Upstream antora-ui-default still
ships the same frozen toolchain, so there is no upstream modernisation
to converge with. Everything starts on the current majors: vite 8,
eslint 10, stylelint 17, archiver 8, Node 24.

- build.mjs produces the identical bundle layout: js entries are built
  as self-contained classic scripts (one vite pass each), the css in a
  separate pass, static directories are copied, NOTICE and LICENSE are
  included, everything is zipped to build/ui-bundle.zip. Verified by
  building the full site with both toolchains: every page is
  byte-identical.
- The vendor bundle sources become ESM and reference the browser build
  of @asciidoctor/tabs explicitly (vite does not honor the style and
  browser package fields the way browserify/postcss-import did).
- CSS custom properties are no longer inlined at build time; every
  supported browser handles var(), and the upcoming design-token work
  needs them preserved.
- The standalone gulp preview is gone; render UI changes with real
  content via 'make build-truly-local' or the deploy preview.
- The stylelint config accepts the inherited upstream css conventions
  instead of reformatting everything right before the planned upstream
  re-sync.
- package-lock.json is regenerated; @antora/* and pagefind are pinned
  to their previously locked versions so the rendered site and search
  assets stay identical (bumping those is Renovate's job).
- Node 24 in .nvmrc/engines/CI, matching stackable-apps. The root
  .nvmrc also raises the Netlify build to Node 24.
background-color/min-width do not accept 'none'; browsers ignored the
declarations, so removing them does not change rendering. Also an
unused event parameter and a stale eslint-disable directive.
Scoped away from the inherited upstream src/ files until the planned
upstream re-sync, so the diff against antora-ui-default stays readable.
prettier --check runs as part of npm run lint (and therefore in CI).

knip is deliberately not added: handlebars templates and classic
browser scripts have no import graph, and most dependencies are
referenced from playbook YAML or css, so it would need to ignore
nearly everything to stay quiet.
@lfrancke lfrancke force-pushed the chore/ui-toolchain branch from ef25007 to 787fc7a Compare July 15, 2026 12:09
@lfrancke

Copy link
Copy Markdown
Member Author

Closing: #873 is merged, so #874 retargets to main and gets its own deploy preview - this preview-only draft is no longer needed.

@lfrancke lfrancke closed this Jul 15, 2026
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