Skip to content

feat(core): upgrade to Gulp 5, modernise build system and expand test coverage#175

Open
cebreus wants to merge 239 commits into
developfrom
gulp5
Open

feat(core): upgrade to Gulp 5, modernise build system and expand test coverage#175
cebreus wants to merge 239 commits into
developfrom
gulp5

Conversation

@cebreus

@cebreus cebreus commented Jun 8, 2026

Copy link
Copy Markdown
Owner

🎯 Overview

Major refactor. Upgrade Gulp 5, Node >=24.10.0, modular pipeline, strict Fail-Closed testing. Final v5.0.0 candidate.

🚀 Key Changes

1. Build & Gulp 5

  • Gulp 5: Fast streaming, incremental build, parallel tasks.
  • Domain modules: Split gulpfile.jshtml-rendering, image-pipeline, sass-pipeline.
  • Styles: Explicit CSS bundles, shared route Sass abstracts, strict PurgeCSS.
  • Pipeline: Central route content, better Sharp image opt.

2. Testing (Fail-Closed)

  • Native Node: Use node:test + node:assert. No third-party runner.
  • Coverage: Unit, integration, e2e.
  • Visual: Add parity test. Build vs export stable.

3. DX & Tooling

  • Hooks: Husky out, Lefthook in. Fast pre-commit.
  • ESLint: Flat Config v10, clean rules.
  • Cleanup: Purge legacy init-template.js, dummy components, boilerplate.
  • Quality: Strict ESLint/Stylelint. Fix JSDoc warnings. Old tools out.

4. Showcase

  • New page: Template examples, markdown parsing, route-local styles.

5. Docs & AI

  • memories/: Curated agent guidelines (architectural-gotchas, etc).
  • Guides: Rewrite core docs.

⚠️ Breaking Changes

  • Node >=24.10.0 required.
  • ESM only. No CommonJS.
  • Removed: Legacy init scripts, default components, dummy vectors.

cebreus added 6 commits June 8, 2026 20:30
- add run-njklint.js to wrap nunjucklinter CLI invocations
- split init-template.js into init-template-content.js and init-template-ops.js
- update about page template and markdown content
- update hero component styles and markup
- update env.js config and JS entry points
- update plopfile for new component generator structure
- Upgrade multiple devDependencies to latest versions
- Resolve entry points before invoking processing task
- Skip processing when no matching files are identified
- Enhance configuration to support explicit entry points
- skip integrity generation for compiled component styles
- remove internal jsdoc block from javascript pipeline
- add documentation synchronization end-to-end test
- implement fallback watch target resolution in development server test
- add dependency symlink helper and cleanup resilience to test sandbox
- extract template operations into dedicated content and package modules
- apply file purge policy to strip external tests and agent memories
- remove internal test scripts from generated package configuration
- add comprehensive unit and acceptance tests for template generation
- update module boundary tests to verify internal boundaries
Copilot AI review requested due to automatic review settings June 8, 2026 19:00

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot wasn't able to review this pull request because it exceeds the maximum number of lines (20,000). Try reducing the number of changed lines and requesting a review from Copilot again.

cebreus added 3 commits June 8, 2026 21:19
- The `init:template` script is no longer available.
- All associated content generation, file operations, and package setup removed.
- Dedicated unit and integration tests for the initialization process are deleted.
… configurations

- remove default components, hero sections, and showcase routes
- delete dummy fonts, logos, and vector assets
- remove obsolete github instructions, unused codeql workflow, and init script
- drop size-limit configuration and dependencies
- update README, AI agent documentation, and repository rules
- clean up outdated visual parity and unit test suites
@coderabbitai

coderabbitai Bot commented Jun 9, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: bd21f527-ad7f-48aa-8c3c-0386e0f6268e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

cebreus added 13 commits June 11, 2026 22:19
- Implement calculateReadingTime with Markdown stripping
- Integrate into processData task to provide readingTime metadata
- Add unit and integration tests
- implement Windows-compatible path processing in gulp utilities
- quote glob patterns in package.json to prevent shell expansion errors
- extract inline node scripts from lefthook.yml to dedicated files
- update test suites to accommodate Windows path formats
- Upgraded various development libraries to latest versions
- Removed node-gyp, prompts, and remark-lint dev dependencies
- Add guidance on Playwright binary provisioning for E2E tests
- Include rules for POSIX glob path normalization and cross-platform directory resolution
- Document Windows-safe script entrypoint detection
- Condense existing architectural, dependency, and logic gotchas for brevity
- Update project guidance to link specific memory files
- Tune Sharp compression effort for WebP, AVIF, and PNG formats
- Rename configuration constants for image optimization and favicon generation
- Add POSIX path normalization to core utilities
- Apply forward slash formatting consistently in route resolution
- Add robust unit tests for Windows path compatibility
- Improve config tests for environment path normalization and cleanup
- gulp-devstack: patch
- Clarify component SCSS integration and Nunjucks `default` filter use
- Refine Nunjucks layout, block system, and macro usage examples
- Detail routing behavior for layout templates and markdown data injection
- Update testing pipeline sequence and A11y check descriptions

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot wasn't able to review this pull request because it exceeds the maximum number of lines (20,000). Try reducing the number of changed lines and requesting a review from Copilot again.

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.

3 participants