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.29.0 #1120

Merged
merged 35 commits into from
Nov 9, 2023
Merged

release/0.29.0 #1120

merged 35 commits into from
Nov 9, 2023

Conversation

thescientist13
Copy link
Member

@thescientist13 thescientist13 commented Jun 29, 2023

Related Issues

Summary of Changes

  1. Refactor Workers out of SSR build output (and general stability / predictability to SSR execution)
  2. Adapter Plugin API
  3. (fix) Adapted SSR pages not returning correct Content-Type
  4. Created a Netlify hosting adapter plugin
  5. Created a Vercel hosting adapter plugin
  6. Support additional Request / Response properties
  7. Support custom imports in SSR pages and API routes, as well as "bundling" static assets via new URL + import.meta.url
  8. Upgrade TypeScript plugin to 5.x
  9. Add basePath configuration option

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 - upgrade to latest greenwood v0.29.0 greenwood-demo-adapter-vercel#21
  2. greenwood-demo-adapter-netlify - upgrade to latest greenwood v0.29.0 greenwood-demo-adapter-netlify#15
  3. thegreenhouse.io - chore/upgrade greenwood v0.29.0 thegreenhouseio/www.thegreenhouse.io#294
  4. contributary.community - chore/upgrade greenwood v0.29.0 ContributaryCommunity/www.contributary.community#124
  5. analogstudios.net - chore/upgrade greenwood v0.29.0 AnalogStudiosRI/www.analogstudios.net#89
  6. tuesdaystunes.tv - chore/upgrade greenwood v0.29.0 AnalogStudiosRI/www.tuesdaystunes.tv#125
  7. greenwood-getting-started - chore/upgrade greenwood v0.29.0 greenwood-getting-started#76
  8. projectevergreen.github.io - upgrade greenwood v0.29.0 projectevergreen.github.io#100
  9. greenwood-template-blog - chore/upgrade greenwood v0.29.0 greenwood-template-blog#10
  10. greenwood-starter-presentation - chore/upgrade greenwood v0.29.0 thescientist13/greenwood-starter-presentation#66
  11. greenwood-demo-github-pages - upgrade to latest greenwood v0.29.0 greenwood-demo-github-pages#2
  12. npx / init
  13. Stackblitz

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

TODOs

  1. Static and Serverless Hosting Runtime Adapters #1008
  2. handle merging additional Request / Response instance properties #1048
  3. upgrade plugin-typescript to TypeScript 5.x #1136
  4. Data Loading Strategies #952
  5. add support for optimizing the CSS :has / :is pseudo-selectors #1106
  6. add support for configuring a base path #1116
  7. Did custom imports bundling breaks when used in API routes and SSR pages #1151 fix support resource plugin based transformations for non "standard" module formats (ex: TypeScript, GraphQL) for SSR #1004 ?
  8. eliminate SSR page instantiation during graph lifecycle #991 (nice to have)
  9. Rendering Strategies (prerender vs SSR vs CSR) #951 (nice to have)
  10. import attributes for standard module formats; CSS and JSON  #923 (nice to have)
  11. Blog Post - content/v0.29.0 release blog post #1174
    • Adapters
    • Templates / Pages
    • Data Loading Strategies (Web Server Components)
    • Base Path
  12. update home / about page / docs refresh? - redesign planned as part of Website redesign, branding, and long term structure #978

Questions / New Issues

N / A

@thescientist13 thescientist13 added enhancement Improve something existing (e.g. no docs, new APIs, etc) documentation Greenwood specific docs Plugins Greenwood Plugins CLI breaking SSR labels Jun 29, 2023
@thescientist13 thescientist13 self-assigned this Jun 29, 2023
@thescientist13 thescientist13 linked an issue Jun 29, 2023 that may be closed by this pull request
@thescientist13 thescientist13 linked an issue Jul 23, 2023 that may be closed by this pull request
@thescientist13 thescientist13 added bug Something isn't working v0.29.0 Adapter labels Aug 10, 2023
* production SSR workers refactor WIP

* initial draft refactoring for no Workers as part of serving SSR builds

* decouple SSR module execution from Workers implementation

* enable pre-compiled HTML for templates during SSR

* ammed static router spec for execute-route-module

* get SSR execution module from config

* refactor executeRouteModule signature and fix all specs

* update lit renderer per execute module refactoring

* pre-bundle SSR entry points

* refactor entry file to use runtime import.meta.url

* use placholder for SSR page entry point path and replace at write with rollup

* expand rollup and lit circular reference TODO comment

* clean up console logs and track TODOs

* update Renderer plugin docs
* create adapter plugin API

* add docs for adapter plugin API
…#1138)

* have SSR pages return text/html content type

* add header test cases for adapter SSR pages
* create initial working version of a netlify adapter plugin

* add test case for greeting API route adapter

* add test case for SSR page output

* README clarifications

* add fragments API and HTTP method support from Netlify event

* file output setup and zipping refactoring

* auto-generate _redirects file based on pages and APIs

* redirects should be rewrites instead

* document recommended Netlify project configuration setup

* document caveats

* link to demonstration repo

* document adapter netlify on custom plugins page

* add netlify-cli as a dependency

* Netlify CLI integration and clarifications

* disable linting due to typescript version conflicts

* clarify redirects and rewrites in README

* update pathname handling for windows interop

* add test coverage for SSR pages content type

* README refresh
* initial implementation of a vercel adapter plugin

* add test case for static build output

* handle request and response properties

* finishing touches to README.md

* add to custom plugins docs page

* link to edge runtime support issue in caveats sections

* handle windows pathname interop
@thescientist13 thescientist13 added RFC Proposal and changes to workflows, architecture, APIs, etc feature New feature or request labels Aug 12, 2023
…roperties (#1132)

* support merging Response status property

* support body on incoming requests

* handle merging all custom response headers

* lock down content-type headers in test cases

* handle Response.statusText property

* full response support clean and TODOs cleanup

* update vercel adapter plugin specs for request and response handling

* update netlify adapter plugin specs for request and response handling

* add support for request.formData

* add request.formData support to adapter plugins

* variable name safe handler alias
thescientist13 and others added 9 commits September 1, 2023 08:56
…loader URLs (#1162)

* gracefully handle bare specifiers when resolve custom loader URLs

* handle bare specifiers from relative paths
#1152)

* custom imports for API routes and SSR pages and custom css import test cases

* add test cases for import json plugin

* all specs passing

* refactor rollup id cleaning

* import meta url refactoring

* normalize bundled import meta URL paths for Windows

* full bundling support for custom imports

* update final TODO comments

* leverage custom imports that can serve for meta import chunk vs asset bundling

* refactor custom import detection for found assetUrls

* add test case for bundling images with new URL

* document new URL and import.meta.url pattern

* clarify docs on new URL usage patterns and general content around assets

* fix windows specs

* callout support for isomorphic asset bundling in docs

---------

Co-authored-by: Owen Buckley <owenbuckley@Owens-Air-2.fios-router.home>
…eader (#1160)

* filter out content encoding header from proxy request resource

* comment callout regarding devServer usage in non development scenarios

* add test case
@thescientist13 thescientist13 linked an issue Oct 26, 2023 that may be closed by this pull request
2 tasks
#1166)

* update documentation around custom imports

* update test case descriptions and add placeholder prerender typescript test case

* update test case descriptions
* add support for SSR page loader with runtime request object

* refactor static export from getFrontmatter to export const prerender

* document loaders and prerendering for SSR routes

* adopt and document constructor props pattern for SSR page data loading

* update develop SSR test case for constructor props

* remove desribe.only

* refactor graphql plugin for ESM compat

* add test case for experimental prerendering with custom .gql imports

* upgrade website for breaking changes

* update website documentation and graphql plugin package README

* add test cases for adapter plugins and SSR constructor props

* upgrade wcc to 0.9.0

* misc PR cleanup
thescientist13 and others added 7 commits November 3, 2023 19:03
* base path configuration support WIP

* base path examples

* refactor base configuraton within the graph

* integrate base path into script, style and link tags

* inegrate base path into graphql plugin

* integrate base path into static router

* all test cases passing

* display base path in server URL terminal output

* add base path documentation

* handle route depths and base path in graphql resolvers

* refactor graphql route depths and base path handling

* add basic base path test cases for develop and serve commands

* fix linting

* remove describe.only

* upgrade github pages docs with base path callout and configuration

* add image tag example to manual base path prefixing in docs

* add base path config serve based test cases

* refactor test cases to use fetch

* flesh out base path test cases for proxies, API routes, and SSR pages

* refactor specs to use fetch

* add base path support to adapter plugins

* restore post rebase misses

* have CLI serialize base path into all pages

* document base path persistance

* remove demo code
* add support for optimizing CSS :has pseudo-selector

* add support for :is
…#1172)

* Issue 1016: Initital attempt at using fetch over request

* Issue-1016: Refactor IP to use localhost url

* Issue-1016: Initial POST refactor to fetch

* Issue-1016: Progress on removal of request

* Issue-1016: Additional removal of request

* Issue-1016: Finalize plugin tests

* use response.text()

* refactor init spec to fetch

* all specs refactored to use fetch

* refactoring all specs

---------

Co-authored-by: Owen Buckley <owenbuckley13@gmail.com>
* release v0.29.0 blog post

* add MDN links to URL and import.meta.url

* add whats next section content

* fix markdown snippet linting

* minor grammar and phrasing revisions

* PR feedback and revisions

* final revisions

* feature callouts and embed video example

* final nits and grammar
@thescientist13 thescientist13 marked this pull request as ready for review November 8, 2023 15:14
@thescientist13 thescientist13 merged commit 0474929 into master Nov 9, 2023
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment