Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release/0.30.0 #1208

Draft
wants to merge 41 commits into
base: master
Choose a base branch
from
Draft

release/0.30.0 #1208

wants to merge 41 commits into from

Conversation

thescientist13
Copy link
Member

@thescientist13 thescientist13 commented Mar 9, 2024

Related Issues

Summary of Changes

  1. Rollup v3 Upgrade
  2. Isolation Mode (v1)
  3. Lit v3 + SSR enhancements and fixes
  4. Single File Bundles (SFBs) for SSR and API routes
  5. Import Attributes for CSS and JSON modules (breaking)
  6. Asset bundling in CSS files
  7. Layouts and Pages
    • Templates dir -> renamed to layouts
    • TypeScript now supported for pages
    • Custom elements now supported
  8. Sitemap Support (static)
  9. Frontmatter Imports Attributes
  10. Development time CSS optimization (workflow parity)
  11. Configuration for opt-in import map / attributes polyfills configuration

Alpha Release Test Plan

I think to be safe given the level of refactoring, would like to at least make sure this get tested with a few key repos

The plan would be to test against the following projects / workflows as alpha releases are iterated upon:

  1. greenwood-demo-adapter-vercel - chore/upgrade greenwood v0.30.0 greenwood-demo-adapter-vercel#22
  2. greenwood-demo-adapter-netlify - chore/upgrade greenwood v0.30.0 greenwood-demo-adapter-netlify#20
  3. thegreenhouse.io - chore/upgrade greenwood v0.30.0 thegreenhouseio/www.thegreenhouse.io#296
  4. contributary.community - chore/upgrade greenwood v0.30.0 ContributaryCommunity/www.contributary.community#125
  5. analogstudios.net - chore/upgrade greenwood v0.30.0 AnalogStudiosRI/www.analogstudios.net#98
  6. tuesdaystunes.tv
  7. greenwood-getting-started - chore/upgrade greenwood v0.30.0 greenwood-getting-started#83
  8. projectevergreen.github.io - chore/upgrade greenwood v0.30.0 projectevergreen.github.io#101
  9. greenwood-template-blog - chore/upgrade greenwood v0.30.0 greenwood-template-blog#12
  10. greenwood-starter-presentation - chore/upgrade greenwood v0.30.0 thescientist13/greenwood-starter-presentation#71
  11. greenwood-demo-github-pages - chore/upgrade greenwood v0.30.0 greenwood-demo-github-pages#5
  12. greenwood-lit-ssr
  13. greenwood-htmx - chore/upgrade greenwood v0.30.0 thescientist13/greenwood-htmx#16
  14. https://github.com/ProjectEvergreen/greenwood-demo-adapter-cloudflare
  15. https://github.com/ProjectEvergreen/greenwood-demo-platform-docker
  16. npx / init
  17. Stackblitz

This PR should NOT be squashed merged when merging into master.

TODOs

  1. Layouts (Templates) and Pages #955
  2. import attributes for standard module formats; CSS and JSON  #923
  3. Content as Data #1167
  4. Rendering Strategies (prerender vs SSR vs CSR) #951
  5. support bundling of url properties (like for @font-face + src) during CSS file optimization #1199
  6. HTML Modules plugin (experimental) #1221 - Deferred
  7. support all CSS function pseudo classes / elements for CSS optimizing #1178
  8. CSS Modules ™️ plugin #1233
  9. improve init package scaffolding baseline starting point #1253
  10. enhancement/issue 923 real production import attributes #1259
  11. feature/issue 1257 CSS optimization workflow parity #1258
  12. expand (no-op) support of DOM shim for DOM traversal methods wcc#37 (TBD) -
  13. Upgrade to Node 20.x (latest LTS) #1202 (TBD) - Deferred
  14. move import maps shim to polyfills plugin #1114 (TBD) - Deferred
  15. add support for (progressive) hydration for compatible renderers (globalThis for state?) #880 (nice to have) - Deferred
  16. Server side routes should support dynamic route naming (with prerendering) #882 (nice to have) - Deferred
  17. AWS Adapter plugin #1142 (nice to have) - Deferred
  18. Rebases and backports
  19. review getting started docs
  20. Blog Post

Questions / New Issues

N / A

@thescientist13 thescientist13 added enhancement Improve something existing (e.g. no docs, new APIs, etc) Plugins Greenwood Plugins CLI labels Mar 9, 2024
@thescientist13 thescientist13 self-assigned this Mar 9, 2024
@thescientist13 thescientist13 linked an issue Mar 9, 2024 that may be closed by this pull request
@thescientist13 thescientist13 added breaking website Tasks related to the projects website / documentation documentation Greenwood specific docs SSR labels Mar 10, 2024
@thescientist13 thescientist13 added the bug Something isn't working label Mar 10, 2024
thescientist13 and others added 14 commits May 31, 2024 16:38
* Issue-1087: Initial upgrade of Rollup and @rollup plugins

* Issue-1087: Upgrade plugin dependencies

* upgrade all test cases with new hash matchers

* update all plugin rollup deps and breaking change updates

* fix duplicate imports of eve-container custom element definition

---------

Co-authored-by: Owen Buckley <owenbuckley13@gmail.com>
* isolation mode for SSR pages and API routes for greenwood serve

* documentation for isolation mode option and global config test case

* misc refactoring

* set isolation mode to true for Lit renderer plugin

* set isolation mode to true for Lit renderer plugin
* initial upgrade for test cases

* upgrade CLI and www to Lit v3

* revert static router test case change

* all tests passing

* patch escodegen for better ESM support

* test for lit element hydration script

* refactor rollup config

* update Lit renderer README and apply conditional Lit script hydration

* comments and TODOs cleanup

* minor rebase patches

* WCC v0.12.0 upgrade and removing patches directory

* hydration default documentation and testing for Lit renderer plugin
…1186)

* Issue-1118: Refactor rollup config generation for APIs

* Issue-1118: Refactor rollup config generation for SSR

* Issue-1118: Refactor forEach to use for-in for the ssr config generation

* Issue-1118: Convert forEach to for..in

* Issue-1118: Remove unused code

* refactor away bundling work arounds and add comments

* refactor SSR page bundling to avoid hacky entry point placeholder hack

* patch custom element registry check from wcc

* refactor SSR page output name from .entry to .route

* document breaking changes for adapter plugins

* refactor import meta relative asset path escaping

* refactor API routes and adapters for mapped API bundles

* misc refactoring and docs update

* latest WCC patches

* windows compatibility

* update adapter docs example

* remove patches

---------

Co-authored-by: Owen Buckley <owenbuckley13@gmail.com>
* naive work around for missing chunks of route chunk

* fix linting

* namespace SSR page route entry points and route chunks
* intial draft of import attributes support for CSS and JSON

* all test cases passing

* need patch package

* wcc patches for import attributes and CSSStylesheet shim

* bump min NodeJS version for exp specs

* temp disable ESLint

* develop based import assertion specs

* serve based import attributes specs

* add preIntercept resource plugin lifecycle and refactor PostCSS to use it

* all test cases passing for import attributes support

* refactor built in CSS and JSON intercepting

* demo code

* raw plugin docs and package.json updates

* update latest documentation for custom loaders support in NodeJS

* update custom import docs

* upgrade wcc v0.13.0

* only need Node 18 for github actions

* css imports and raw plugin interop with test cases

* lit renderer import attribute test cases and documentation

* refactor matchers support for raw plugin instead of patching and add test cases

* disable describe.only

* update usage for custom resource plugins to showcase usage of import attributes

* document preIntercept lifecycle and convert Babel to use it

* restore ESLint

* enable debug logging for failing specs

* refactor theme pack specs

* fix linting

* remove CSS and JSON packages from being publishable

* clean up console logs and comments

* rename exp test cases to loadersnaming prefix

* fix command in github actions

* remove plugin-import-css callout from plugin-postcss README

* remove demo code from website

* refine PostCSS plugin intercepting
* bundling of URL referenced assets in CSS files

* add test cases for CSS url reference bundling

* normalize file paths for windows

* base path support

* hashing of bundled CSS filenames

* document CSS bundling behaviors

* filename hashing

* refactoring and console log cleanup
…1236)

* rebase and refactor nested SSR pages work

* clean up console logs

* windows path handling

* better windows pathname support when syncing SSR pages
thescientist13 and others added 9 commits June 22, 2024 13:07
… integrations (#1234)

* feature/discussion 1117 Isolation Mode (v1) (#1206)

* isolation mode for SSR pages and API routes for greenwood serve

* documentation for isolation mode option and global config test case

* misc refactoring

* set isolation mode to true for Lit renderer plugin

* set isolation mode to true for Lit renderer plugin

* v0.30.0-alpha.0

* v0.30.0-alpha.1

* feature/issue 923 native import attributes for CSS and JSON (#1215)

* intial draft of import attributes support for CSS and JSON

* all test cases passing

* need patch package

* wcc patches for import attributes and CSSStylesheet shim

* bump min NodeJS version for exp specs

* temp disable ESLint

* develop based import assertion specs

* serve based import attributes specs

* add preIntercept resource plugin lifecycle and refactor PostCSS to use it

* all test cases passing for import attributes support

* refactor built in CSS and JSON intercepting

* demo code

* raw plugin docs and package.json updates

* update latest documentation for custom loaders support in NodeJS

* update custom import docs

* upgrade wcc v0.13.0

* only need Node 18 for github actions

* css imports and raw plugin interop with test cases

* lit renderer import attribute test cases and documentation

* refactor matchers support for raw plugin instead of patching and add test cases

* disable describe.only

* update usage for custom resource plugins to showcase usage of import attributes

* document preIntercept lifecycle and convert Babel to use it

* restore ESLint

* enable debug logging for failing specs

* refactor theme pack specs

* fix linting

* remove CSS and JSON packages from being publishable

* clean up console logs and comments

* rename exp test cases to loadersnaming prefix

* fix command in github actions

* remove plugin-import-css callout from plugin-postcss README

* remove demo code from website

* refine PostCSS plugin intercepting

* general enhancements and fixes for custom resource plugin integrations

* misc clean up validation testing
…SS declarations (#1243)

* handle optimization ordering issue with functions in CSS declarations

* remove extra comment
* #1232 - Adding default static sitemap plugin

* 1232 - Adding meta files documentation

* update meta files docs and usage examples

---------

Co-authored-by: Owen Buckley <owenbuckley13@gmail.com>
…ptimization (#1235)

* feature/issue 1197 Lit v3 upgrade and SSR fixes and enhancements (#1201)

* initial upgrade for test cases

* upgrade CLI and www to Lit v3

* revert static router test case change

* all tests passing

* patch escodegen for better ESM support

* test for lit element hydration script

* refactor rollup config

* update Lit renderer README and apply conditional Lit script hydration

* comments and TODOs cleanup

* minor rebase patches

* WCC v0.12.0 upgrade and removing patches directory

* hydration default documentation and testing for Lit renderer plugin

* v0.30.0-alpha.1

* feature/issue 923 native import attributes for CSS and JSON (#1215)

* intial draft of import attributes support for CSS and JSON

* all test cases passing

* need patch package

* wcc patches for import attributes and CSSStylesheet shim

* bump min NodeJS version for exp specs

* temp disable ESLint

* develop based import assertion specs

* serve based import attributes specs

* add preIntercept resource plugin lifecycle and refactor PostCSS to use it

* all test cases passing for import attributes support

* refactor built in CSS and JSON intercepting

* demo code

* raw plugin docs and package.json updates

* update latest documentation for custom loaders support in NodeJS

* update custom import docs

* upgrade wcc v0.13.0

* only need Node 18 for github actions

* css imports and raw plugin interop with test cases

* lit renderer import attribute test cases and documentation

* refactor matchers support for raw plugin instead of patching and add test cases

* disable describe.only

* update usage for custom resource plugins to showcase usage of import attributes

* document preIntercept lifecycle and convert Babel to use it

* restore ESLint

* enable debug logging for failing specs

* refactor theme pack specs

* fix linting

* remove CSS and JSON packages from being publishable

* clean up console logs and comments

* rename exp test cases to loadersnaming prefix

* fix command in github actions

* remove plugin-import-css callout from plugin-postcss README

* remove demo code from website

* refine PostCSS plugin intercepting

* gracefully handle unresolvable assets during CSS optimization

* refactor URL and fs usage

* fix lint

* missed rebase-a-ronis

* missed rebase-a-ronis
…d element selectors for CSS bundling (#1239)

* support pseudo-class and element selectors for CSS bundling

* distinguish between pseudo selectors with and without children
* nested API routes support

* nested API routes test case validation

* nested API routes test case validation

* nested SSR pages netlify adapter support

* nested SSR pages and API routes support and test cases for netlify adapter

* refactored and supported nested SSR pages for vercel adapter

* nested SSR page and API routes for vercel adapter

* restore adapter route chunk test cases

* check for API fragments

* document build output

* rebase a ronis
…tion (#1244)

* wip

* handling all head tag bundle mapping
@thescientist13 thescientist13 force-pushed the release/0.30.0 branch 2 times, most recently from 8da5860 to a901210 Compare June 29, 2024 20:29
* WIP real production import attributes

* restore all test cases to passing

* all test cases and website building correctly

* rollup resolveId refactoring

* rename rollup configs to be more explicit

* refine test cases

* clean up console logs and TODOs

* add import attributes to the docs

* handle base path for bundled import attributes references
* supporting attributes from frontmatter imports

* docs

* clean up console logs

* quote formatting test case
* initial implementation

* WIP updating test cases

* refresh PostCSS plugin README docs

* document optimization in development behavior

* restore test case with exception

* tests passing

* gate font plugin from only serving files

* optimize supported one-off externalized assets

* restore disabled test cases

* fixup comments
* WIP landing page with spinning logo

* flesh out cards conent

* comment out fonts

* use SVG logo

* restore (broken) fonts

* windy leaf animation

* fix leaf logo

* add links

* responsive and misc styling tweaks

* correctly align logo

* update test case for basic content checks

* ESLint ignore init template contents

* downgrade usage of import attributes

* fix typo

* add xmlns to SVG
…1269)

* import map polyfill config flag

* import attributes polyfill config option

* import attributes demo

* develop test cases for import maps and attributes for development

* import attributes polyfill config serve test cases

* polyfills configuration error test cases

* bundle polyfilled import attributes for the browser

* polyfills configuration docs and import attributes call outs

* misc refactoring

* add acorn-import-attributes as a CLI dependency

* refine pre-intercepting logic to include all JS resource types

* remove demo code

* more robust bundling and serve test case
* optimize graphql server for production builds

* fix linting

* tweak coverage thresholds
…1265)

* support multiple custom page formats at once

* add test cases for custom API routes page format
…1280)

* add optional project name flag to init scaffolding

* update init documentation to promote my-app option

* produce a .npmrc file for npm projects

* improve next step console logs

* clean up errant characters

* add npm run dev script to init package.json

* fix linting
* upgrade to css-tree 3.0.0

* update comment

* nesting selector CSS optimization support

* cleanup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment