web: improve build speeds even moar!!!!!!#8954
Merged
kensternberg-authentik merged 12 commits intomainfrom Mar 19, 2024
Merged
Conversation
Getting ESBuild, Lit, and Storybook to all agree on how to read and parse stylesheets is a serious
pain. This fix better identifies the value types (instances) being passed from various sources in
the repo to the three *different* kinds of style processors we're using (the native one, the
polyfill one, and whatever the heck Storybook does internally).
Falling back to using older CSS instantiating techniques one era at a time seems to do the trick.
It's ugly, but in the face of the aggressive styling we use to avoid Flashes of Unstyled Content
(FLoUC), it's the logic with which we're left.
In standard mode, the following warning appears on the console when running a Flow:
```
Autofocus processing was blocked because a document already has a focused element.
```
In compatibility mode, the following **error** appears on the console when running a Flow:
```
crawler-inject.js:1106 Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'.
at initDomMutationObservers (crawler-inject.js:1106:18)
at crawler-inject.js:1114:24
at Array.forEach (<anonymous>)
at initDomMutationObservers (crawler-inject.js:1114:10)
at crawler-inject.js:1549:1
initDomMutationObservers @ crawler-inject.js:1106
(anonymous) @ crawler-inject.js:1114
initDomMutationObservers @ crawler-inject.js:1114
(anonymous) @ crawler-inject.js:1549
```
Despite this error, nothing seems to be broken and flows work as anticipated.
* main: tenants: really ensure default tenant cannot be deleted (#8875) core: bump github.com/go-openapi/runtime from 0.27.2 to 0.28.0 (#8867) core: bump pytest from 8.0.2 to 8.1.1 (#8868) core: bump github.com/go-openapi/strfmt from 0.22.2 to 0.23.0 (#8869) core: bump bandit from 1.7.7 to 1.7.8 (#8870) core: bump packaging from 23.2 to 24.0 (#8871) core: bump ruff from 0.3.1 to 0.3.2 (#8873) web: bump the wdio group in /tests/wdio with 3 updates (#8865) core: bump requests-oauthlib from 1.3.1 to 1.4.0 (#8866) core: bump uvicorn from 0.27.1 to 0.28.0 (#8872) core: bump django-filter from 23.5 to 24.1 (#8874)
* main: web: fix esbuild issue with style sheets (#8856)
* main: web: upgrade to lit 3 (#8781)
* main: Update _envoy_istio.md (#8888) website/docs: new landing page for Providers (#8879) web: bump the sentry group in /web with 1 update (#8881) web: bump chromedriver from 122.0.4 to 122.0.5 in /tests/wdio (#8884) web: bump the eslint group in /tests/wdio with 2 updates (#8883) web: bump the eslint group in /web with 2 updates (#8885) website: bump @types/react from 18.2.64 to 18.2.65 in /website (#8886)
* main: (31 commits) root: support redis username (#8935) core: bump black from 24.2.0 to 24.3.0 (#8945) web: bump the wdio group in /tests/wdio with 2 updates (#8939) web: bump the sentry group in /web with 1 update (#8941) website: bump postcss from 8.4.35 to 8.4.36 in /website (#8940) core: bump twilio from 9.0.1 to 9.0.2 (#8942) core: bump ruff from 0.3.2 to 0.3.3 (#8943) events: discard notification if user has empty email (#8938) ci: always run ci-main on branch pushes (#8950) core: bump goauthentik.io/api/v3 from 3.2024022.2 to 3.2024022.3 (#8946) website/docs: add new name "Microsft Entra ID" for Azure AD (#8930) outposts: Enhance config options for k8s outposts (#7363) website/docs: add link to CRUD docs (#8925) web: bump API Client version (#8927) outpost: improved set secret answers for flow execution (#8013) stages/user_write: ensure user data is json-serializable (#8926) website/docs: update example ldapsearch commands (#8906) admin: Handle latest version unknown in admin dashboard (#8858) core: bump coverage from 7.4.3 to 7.4.4 (#8917) core: bump urllib3 from 1.26.18 to 2.2.1 (#8918) ...
While investigating how to improve the integration of Patternfly 5 into our product, I came across a hint on how to pre-process the stylesheets into CSSStylesheetObjects on the fly. While trying to integrate that hint into our own build process, I got an error message about how esbuild plugins can't be used with the synchronous API yet. So, being even more curious, I tried to figure out how to make our multiple builds work with the asynchronous API. Then I wondered how it behaved with `Promise.allSettled().` The result is a build time of less than one second. Can't complain.
✅ Deploy Preview for authentik-storybook ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
✅ Deploy Preview for authentik-docs canceled.
|
Contributor
|
authentik PR Installation instructions Instructions for docker-composeAdd the following block to your AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server
AUTHENTIK_TAG=gh-ghcr.io/goauthentik/dev-server:gh-684154d866edec28be267f7f4743323cf97a8806
AUTHENTIK_OUTPOSTS__CONTAINER_IMAGE_BASE=ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)sFor arm64, use these values: AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server
AUTHENTIK_TAG=gh-ghcr.io/goauthentik/dev-server:gh-684154d866edec28be267f7f4743323cf97a8806-arm64
AUTHENTIK_OUTPOSTS__CONTAINER_IMAGE_BASE=ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)sAfterwards, run the upgrade commands from the latest release notes. Instructions for KubernetesAdd the following block to your authentik:
outposts:
container_image_base: ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s
image:
repository: ghcr.io/goauthentik/dev-server
tag: gh-ghcr.io/goauthentik/dev-server:gh-684154d866edec28be267f7f4743323cf97a8806For arm64, use these values: authentik:
outposts:
container_image_base: ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s
image:
repository: ghcr.io/goauthentik/dev-server
tag: gh-ghcr.io/goauthentik/dev-server:gh-684154d866edec28be267f7f4743323cf97a8806-arm64Afterwards, run the upgrade commands from the latest release notes. |
BeryJu
approved these changes
Mar 19, 2024
- Re-arrange the build order so the larger components get built first - Change the criteria for "what is a proxy object." - Adds some (probably trivial) awaits() where expected.
BeryJu
approved these changes
Mar 19, 2024
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
kensternberg-authentik
added a commit
that referenced
this pull request
Mar 21, 2024
* main: web: improve build speeds even moar!!!!!! (#8954)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Details
While investigating how to improve the integration of Patternfly 5 into our product, I came across a hint on how to pre-process the stylesheets into CSSStylesheetObjects on the fly. While trying to integrate that hint into our own build process, I got an error message about how esbuild plugins can’t be used with the synchronous API yet.
So, being even more curious, I tried to figure out how to make our multiple builds work with the asynchronous API.
Then I wondered how it behaved with
Promise.allSettled().The result is a build time of less than one second.
Can’t complain.
Checklist
If changes to the frontend have been made
make web)