Compare commits

..

106 commits

Author SHA1 Message Date
Nate Moore
2e9978f02a chore: prerelease under next tag 2021-10-29 13:54:05 -05:00
Nate Moore
8833a898e9 retry deploy 2021-10-29 13:32:24 -05:00
Matthew Phillips
eb7c63b2d2
Remove prism warning when no language is provided (#1703)
* Remove prism warning when no language is provided

* Add the plaintext language instead
2021-10-29 14:27:37 -04:00
Nate Moore
cb733cf689
feat: improve support for third-party React packages (#1701) 2021-10-29 13:23:03 -05:00
Nate Moore
6becdc8cc0
fix: do not crash when Markdown has no content (#1702) 2021-10-29 13:22:57 -05:00
Nate Moore
c9b33d2b7e
chore: update compiler (#1705) 2021-10-29 13:22:44 -05:00
Nate Moore
a7e62ded69
fix: exclude all renderer server entrypoints (#1692) 2021-10-28 15:54:04 -04:00
Matthew Phillips
577d912b8e
Exclude lit-server from being optimized (#1691)
This should get the lit example working from `npm`.
2021-10-28 14:25:29 -04:00
Nate Moore
934d085f94
chore: update compiler (#1690) 2021-10-28 13:24:32 -05:00
Drew Powers
ee7b5e482b
Bugfix: JSX renderers can be declared in any order (#1686) 2021-10-28 09:26:15 -06:00
Drew Powers
acd13914f4
Fix Astro HMR bottleneck (#1684) 2021-10-28 08:14:23 -06:00
Nate Moore
e16e115371
[next] update compiler (#1683)
* chore: update compiler

* chore: update compiler (again)
2021-10-27 17:05:08 -05:00
Nate Moore
2da8ce211d
Next bugs (#1681)
* fix(#1679): hoisted <script> rendering

* fix(#1679): do not print global for styles, but do for scripts

* fix: update ObjectSet implementation

* fix: dedupe elements in sets
2021-10-27 15:26:52 -05:00
Matthew Phillips
502c799b1d
Config changes needed for stater template (#1680)
This does 2 things:

1. Adds prismjs as a dep.
2. Adds shiki as an external.
2021-10-27 15:05:42 -04:00
Matthew Phillips
e50cfa7bb4 Adding a changeset for the remark plugin 2021-10-27 15:05:30 -04:00
Matthew Phillips
77cd898dea
Prevent scanning a user's deps (#1678)
* Prevent scanning a user's deps

* Remove unused things

* remove unused util
2021-10-27 14:28:36 -04:00
Drew Powers
387bd1a48f
Update CONTRIBUTING.md (#1677) 2021-10-27 12:05:31 -06:00
Nate Moore
9f44a513ee
[next] Fix resolveDependency on Windows (#1666)
* fix: Windows issue with resolveDependency util

* chore: add comment
2021-10-27 11:11:20 -05:00
Drew Powers
a07a598122
Fix with-nanostore deps (#1675)
Adds missing Solid renderer
2021-10-27 10:07:50 -06:00
Matthew Phillips
8c4720db3a
Fix Vite race condition (#1674) 2021-10-27 11:45:37 -04:00
Drew Powers
62684dbe4b
Bugfix: plugin-astro-fetch tries to append node-fetch to node-fetch (#1671) 2021-10-27 09:37:29 -06:00
Nate Moore
bd2ac13753
[next] Add preact/compat renderer (#1668)
* feat: add preact/compat entry for `@astrojs/renderer-preact`

* Update index.js
2021-10-27 10:18:42 -05:00
Drew Powers
7f74388896
Force Vite to rebuild dependencies (#1670) 2021-10-26 22:54:41 -06:00
Drew Powers
5477dc19c2
Bugfix: renderer-lit missing files on npm (#1669) 2021-10-26 21:51:30 -06:00
Nate Moore
56f74e2bc8
[next] fix island hydration inside of <Markdown> (#1665)
* fix: create rehype plugin to smooth over island hydration bugs

* refactor: remove debug code

* chore: explain need for `rehypeIslands`
2021-10-26 21:11:18 -05:00
Nate Moore
b04d478b52
chore: update compiler to latest (#1664) 2021-10-26 19:18:57 -05:00
Nate Moore
8f699e5a42
fix: scope define:vars to :root for <style global> (#1663) 2021-10-26 16:36:53 -05:00
Nate Moore
55c8453fd2
fix: dedupe hashes for identical islands (#1660) 2021-10-26 13:00:55 -05:00
Drew Powers
c85c7e2188
Template fixes (#1656) 2021-10-26 09:57:17 -06:00
Matthew Phillips
dd40617038
Resolve renderers relative to the projectRoot (#1659) 2021-10-26 11:25:24 -04:00
Matthew Phillips
aa0590afdf
Upgrade compiler version (#1655)
Fixes docs and blog examples
2021-10-25 16:18:24 -04:00
Matthew Phillips
0430c0e1d2
Fixes external HMR (#1654) 2021-10-25 15:23:39 -04:00
Drew Powers
07f786096d
Add CSS injection, fix portfolio example (#1648)
* Fix portfolio example

* Add .pcss extension

* Update load ssr opts

* Update packages/astro/src/runtime/server/index.ts

Co-authored-by: Jonathan Neal <jonathantneal@hotmail.com>

Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Co-authored-by: Jonathan Neal <jonathantneal@hotmail.com>
2021-10-25 13:05:27 -06:00
Matthew Phillips
1103cb1f9d Prevent passing class to Vue components 2021-10-25 14:07:00 -04:00
Matthew Phillips
303f32fda0 Prevent passing to Svelte components 2021-10-25 14:01:38 -04:00
Matthew Phillips
190e03b5ce
Fix broken next release (#1652) 2021-10-25 12:55:26 -04:00
Matthew Phillips
7f95d706e9
Add support for markdown plugins (#1650) 2021-10-25 09:40:07 -04:00
Matthew Phillips
8206421ffa Fixes solid (#1634)
* Fixes solid

* Rename the test

* Rebase with next

* Skip solid test for now
2021-10-22 16:25:38 -06:00
Nate Moore
06562af124 [next] Fix <Code> component (#1635)
* fix: enable Code component

* test: update expect to chai format
2021-10-22 16:25:38 -06:00
Nate Moore
09bc35e803 [next] Fix <Markdown> component (#1631)
* fix: cleanup issues with <Markdown> component

* fix: fix `content` usage with Markdown
2021-10-22 16:25:38 -06:00
Nate Moore
4647c998ea feat: fix Debug component (#1633) 2021-10-22 16:25:38 -06:00
Nate Moore
b5226e68dd fix: define:vars scoping for styles (#1632) 2021-10-22 16:25:38 -06:00
Jonathan Neal
d9caef63d8 Add class:list directive (#1612)
* Add support for class:list directive

The `class:list` directive serializes an expression of css class names. For React components, `className:list` is also supported.

* Remove `className` support and React tests

* Add tests for the absence of omitted classes
2021-10-22 16:25:38 -06:00
Matthew Phillips
b0e407dc4b [next] docs example fully working (#1627)
* [next] docs example fully working

* Upgrade compiler to unlock docs
2021-10-22 16:25:38 -06:00
Drew Powers
2c15795607 Minor change to jsxTransformOptions, update Renderer API docs (#1630) 2021-10-22 16:25:38 -06:00
Drew Powers
b0ef391e57 Remove cheerio scanning from build stats (#1629) 2021-10-22 16:25:38 -06:00
Drew Powers
4c9d3cf3d9 Fix changesets (#1628) 2021-10-22 16:25:38 -06:00
Drew Powers
330620e1b3 Update renderer API for Vite (#1623)
* Update renderer API for Vite

* Fix lit-element tests

* Clean up comments

* Throw friendly error if renderer provides viteConfig in a bad format
2021-10-22 16:25:38 -06:00
Drew Powers
4b25d5592a Move Sass to deps (#1622) 2021-10-22 16:25:38 -06:00
Fred K. Schott
dff64574c4 fix issues in blog-multiple-authors (#1621) 2021-10-22 16:25:38 -06:00
Drew Powers
d1a73e4c38 [next] Add CSS preprocessing (#1589)
* Add concept for style support in Astro

* Update style preprocessor to use new compiler

* fix: massage preprocessStyle type

* fix: @astrojs/compiler types

Co-authored-by: Nate Moore <nate@skypack.dev>
2021-10-22 16:25:38 -06:00
Nate Moore
51e5a45ec5 [next] fix .tsx handling (#1620)
* fix: support tsx in JSX plugin

* fix: preserve JSX via esbuild, only use Babel for JSX compilation

* fix: handle upcoming Vite API for `ssr` flag
2021-10-22 16:25:38 -06:00
Nate Moore
2c36d0a427 feat: add fragment support to vite-plugin-astro (#1600) 2021-10-22 16:25:37 -06:00
Matthew Phillips
dfe23864e0 [next] Upgrade compiler (#1619)
* [next] Upgrade compiler

* Upgrade to latest compiler

* Fix the path to global css

* Removed debugger
2021-10-22 16:25:37 -06:00
Fred K. Schott
5da14ca8ed comment style fixes (#1614) 2021-10-22 16:25:37 -06:00
Drew Powers
90b9c6e086 Remove numbered comments (#1611)
* Chore: remove numbered comments

* Clean up block comments
2021-10-22 16:25:37 -06:00
AsyncBanana
18222cf61b Add environment variables docs (Closes #873) (#1587)
* Added environment variables docs (Closes #873)

* Fixed prefix
2021-10-22 16:25:37 -06:00
Matthew Phillips
560721cbaa [next] blog example fully working (#1610) 2021-10-22 16:25:37 -06:00
Drew Powers
bbf93de41e Fix build order (#1609)
* Bugfix: restore build to get all paths earlier, when build. Same as main.

* Also re-add timings
2021-10-22 16:25:37 -06:00
Drew Powers
e1b52506f7 Bugfix: fix getStaticPaths() cache miss (#1602) 2021-10-22 16:25:37 -06:00
Matthew Phillips
d1f42353e8 Scoped styles with markdown (#1599) 2021-10-22 16:25:37 -06:00
Matthew Phillips
b695c8aa15 Add Prism syntax highlighting (#1598) 2021-10-22 16:25:37 -06:00
Drew Powers
a1c594fc95 Update Vite to latest (#1597) 2021-10-22 16:25:37 -06:00
Matthew Phillips
94a513adc6 Gets Astro.fetchContent compilation to work (#1596)
* Gets Astro.fetchContent compilation to work

This fixes Astro.fetchContent so that we handle esbuild transforming the
name of the nested Astro call.

* Remove debugging

* Update the tests

* Remove another debugger
2021-10-22 16:25:37 -06:00
Matthew Phillips
2ac2559b5d Gets lit hydration working (#1595) 2021-10-22 16:25:37 -06:00
Matthew Phillips
f881a03961 Markdown compilation (#1593)
* Markdown compilation

* remove debugger
2021-10-22 16:25:37 -06:00
Matthew Phillips
dd147c390a Update files config 2021-10-22 16:25:37 -06:00
Matthew Phillips
38e731adbe Use Vite fork (#1585)
* Use Vite fork

* Fix linting

* Move Vite to vendor/ and add a license

* Fix linting

* Include the dist folder
2021-10-22 16:25:37 -06:00
Matthew Phillips
34a257376e Upgrade to @astrojs/compiler 0.2.0 (#1584) 2021-10-22 16:25:37 -06:00
Drew Powers
cd76229ed7 Restructure (#1569) 2021-10-22 16:25:36 -06:00
Nate Moore
62106902bb [Next] fetch support (#1563)
* fix: polyfill fetch in every ssr scenario

* test(fetch): update fetch tests

* docs: update data fetching guide to remove caveats about `fetch` and isomorphic usage

* refactor: update regex for clarity
2021-10-22 16:25:36 -06:00
Drew Powers
7749e18066 Chore: Enable more tests with new compiler changes (#1558) 2021-10-22 16:25:36 -06:00
Nate Moore
a38460ca62 [next] Update renderers (#1509)
* chore: update vite

* fix(renderers): point renderers to resolved server/client entrypoints
2021-10-22 16:25:36 -06:00
Matthew Phillips
c269f7b687 Implements top-level Astro + Astro.resolve (#1556)
* Implements top-level Astro + Astro.resolve

* Fix linting
2021-10-22 16:25:36 -06:00
Matthew Phillips
72b66ddb75 Brings back astro-dynamic tests (#1548) 2021-10-22 16:25:36 -06:00
Matthew Phillips
35741b6033 Move hydration to the compiler (#1547)
* Move hydration to the compiler

* Move extracting url, export to util fn
2021-10-22 16:25:36 -06:00
Fred K. Schott
e342273d85 [next] Fix Astro.fetchContent (#1480)
* fix Astro.fetchContent

* fix(fetchContent): cast type

Co-authored-by: Nate Moore <nate@skypack.dev>
2021-10-22 16:25:36 -06:00
Matthew Phillips
835903226d [next] Support for custom elements (#1528)
* [next] Support for custom elements

* Fix eslint errors

* eslint again
2021-10-22 16:25:36 -06:00
Matthew Phillips
3cd5a7f53f [next] support Astro.slots API (#1516) 2021-10-22 16:25:36 -06:00
Matthew Phillips
1bd3cf8f4d Add hydration to Solid renderer (#1479) (#1495)
* feat: add hydration to Solid renderer

* fix: intersection observer, move script to the end

Co-authored-by: Ryan Carniato <ryansolid@gmail.com>
2021-10-22 16:25:36 -06:00
Matthew Phillips
935831c79c Enables most slot tests (#1494)
* Enables most slot tests

* Use spreadAttributes
2021-10-22 16:25:36 -06:00
Matthew Phillips
c766c6b9f6 Add back in support for children (#1486)
* Add back in support for children

* Be more careful
2021-10-22 16:25:36 -06:00
Matthew Phillips
64eb61e13a Apply changes from #1387 2021-10-22 16:25:36 -06:00
Pranav Karawale
d2bcbbca34 Fix logger locale parsing (#1439)
* fix(logger): locale parsing
* Fixed issue of compiler crash when "c" locale was encountered
* Return default locale if parsed locale is less than 2 chars long

* chore: add changeset
2021-10-22 16:25:36 -06:00
Drew Powers
d77dfe0326 Fix CI release on merge to next (#1427) 2021-10-22 16:25:36 -06:00
Drew Powers
17a0c5bf75 Try mocha/chai test runners (#1418)
* Try mocha/chai test runners

* Disable failing smoke test for now

Will revert when next can build docs

* Enable mocha in parallel mode

* Remove warning

* Update docs

* Fix Windows bug

* Fix internal imports

* Fix styles
2021-10-22 16:25:36 -06:00
Nate Moore
81a472e1c9 feat: update compiler (#1421) 2021-10-22 16:25:36 -06:00
Drew Powers
26240770a7 Use new renderers (#1412) 2021-10-22 16:25:36 -06:00
Drew Powers
2c6451ffa2 Clean up astro deps (#1411) 2021-10-22 16:25:36 -06:00
Drew Powers
d3b1d3cbc6 Create .npmrc 2021-10-22 16:25:36 -06:00
Drew Powers
3d6b11f8b1 Add NPM_TOKEN to publish script (#1409) 2021-10-22 16:25:36 -06:00
Drew Powers
aa82d4893f Automate publish on merge (#1408) 2021-10-22 16:25:36 -06:00
Drew Powers
71e721c520 Fix npm install (#1407) 2021-10-22 16:25:36 -06:00
Drew Powers
1d2da117bd Allow users to pass config to Vite 2021-10-22 16:25:36 -06:00
Drew Powers
7fb6e9d2ab Improve testing suite 2021-10-22 16:25:36 -06:00
Nate Moore
4c1e9a26a9 Throw Error for WIP Features 2021-10-22 16:25:36 -06:00
Fred K. Schott
e8bc289c70 Fred fixes part 2 2021-10-22 16:25:36 -06:00
Nate Moore
f25550080b Tycho fixes 2021-10-22 16:25:36 -06:00
Nate Moore
1581095d72 Add Markdown support 2021-10-22 16:25:36 -06:00
Drew Powers
6e5ede2175 Fix runtime, improve code frame 2021-10-22 16:25:36 -06:00
Drew Powers
7296e0b0a2 Update compiler, improve tests 2021-10-22 16:25:36 -06:00
Fred K. Schott
c3e7b7f37d fred fixes 2021-10-22 16:25:36 -06:00
Drew Powers
ec6dbab103 More test improvements 2021-10-22 16:25:36 -06:00
Nate Moore
d8cd8a46ee Update tests 2021-10-22 16:25:35 -06:00
Drew Powers
ddca8c4dea Move Astro to Vite 2021-10-22 16:25:35 -06:00
Fred K. Schott
94f36749a0 make astro-root uids unique 2021-10-22 16:25:35 -06:00
4330 changed files with 236907 additions and 252748 deletions

View file

@ -1,12 +1,10 @@
{
"$schema": "https://unpkg.com/@changesets/config@1.7.0/schema.json",
"changelog": ["@changesets/changelog-github", { "repo": "withastro/astro" }],
"$schema": "https://unpkg.com/@changesets/config@1.6.0/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"linked": [],
"linked": [["astro", "@astrojs/parser"]],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
"onlyUpdatePeerDependentsWhenOutOfRange": true
}
"ignore": ["@example/*", "www"]
}

View file

@ -1,5 +0,0 @@
---
'astro': patch
---
Fixed an issue where the transitions router did not work within framework components.

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Fix logger locale parsing

View file

@ -0,0 +1,10 @@
---
'@astrojs/renderer-lit': patch
'@astrojs/renderer-preact': patch
'@astrojs/renderer-react': patch
'@astrojs/renderer-solid': patch
'@astrojs/renderer-svelte': patch
'@astrojs/renderer-vue': patch
---
Point renderer entrypoints to resolved JS files

View file

@ -0,0 +1,5 @@
---
'astro': minor
---
Use new compiler, move Astro to Vite

50
.changeset/pre.json Normal file
View file

@ -0,0 +1,50 @@
{
"mode": "pre",
"tag": "next",
"initialVersions": {
"docs": "0.0.7",
"@example/blog": "0.0.1",
"@example/blog-multiple-authors": "0.0.1",
"@example/docs": "0.0.1",
"@example/framework-lit": "0.0.1",
"@example/framework-multiple": "0.0.1",
"@example/framework-preact": "0.0.1",
"@example/framework-react": "0.0.1",
"@example/framework-solid": "0.0.1",
"@example/framework-svelte": "0.0.1",
"@example/framework-vue": "0.0.1",
"@example/minimal": "0.0.1",
"@example/portfolio": "0.0.1",
"@example/starter": "0.0.1",
"@example/with-markdown": "0.0.1",
"@example/with-markdown-plugins": "0.0.2",
"@example/with-nanostores": "0.0.1",
"@example/with-tailwindcss": "0.0.1",
"astro": "0.20.12",
"@astrojs/parser": "0.20.2",
"@astrojs/prism": "0.2.2",
"@astrojs/astro-test-builtins-dep": "0.0.1",
"@astrojs/test-custom-element-renderer": "0.0.1",
"create-astro": "0.6.6",
"@astrojs/markdown-remark": "0.3.1",
"@astrojs/renderer-lit": "0.1.2",
"@astrojs/renderer-preact": "0.2.2",
"@astrojs/renderer-react": "0.2.2",
"@astrojs/renderer-solid": "0.1.1",
"@astrojs/renderer-svelte": "0.1.2",
"@astrojs/renderer-vue": "0.1.9",
"astro-scripts": "0.0.1",
"www": "1.1.0"
},
"changesets": [
"hungry-wolves-shave",
"ninety-terms-raise",
"pink-trainers-learn",
"silly-apples-build",
"tall-crabs-care",
"tidy-mirrors-drum",
"tiny-bulldogs-lie",
"twenty-maps-listen",
"witty-cups-wave"
]
}

View file

@ -0,0 +1,5 @@
---
'@astrojs/markdown-remark': patch
---
Adds prism support within the plugin

View file

@ -0,0 +1,5 @@
---
'@astrojs/renderer-react': patch
---
Improve support for third-party React packages

View file

@ -0,0 +1,11 @@
---
'astro': patch
'@astrojs/renderer-lit': patch
'@astrojs/renderer-preact': patch
'@astrojs/renderer-react': patch
'@astrojs/renderer-solid': patch
'@astrojs/renderer-svelte': patch
'@astrojs/renderer-vue': patch
---
Improve renderer APIs for Vite

View file

@ -0,0 +1,9 @@
---
'@astrojs/renderer-preact': minor
'@astrojs/renderer-react': minor
'@astrojs/renderer-solid': minor
'@astrojs/renderer-svelte': minor
'@astrojs/renderer-vue': minor
---
Update renderers for Vite

View file

@ -0,0 +1,5 @@
---
'@astrojs/renderer-preact': minor
---
Add `@astrojs/renderer-preact/compat` entry point

View file

@ -1,5 +0,0 @@
---
'@astrojs/cloudflare': patch
---
fixes `AdvancedRuntime` & `DirectoryRuntime` types to work woth Cloudflare caches

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Feat: add CSS preprocessors in Astro Next

View file

@ -1,13 +0,0 @@
FROM mcr.microsoft.com/devcontainers/javascript-node:0-18
# Install playwright
RUN npm install -g @playwright/test
# Install latest pnpm
RUN npm install -g pnpm
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& curl -sSL https://dl.google.com/linux/direct/google-chrome-stable_current_$(dpkg --print-architecture).deb -o /tmp/chrome.deb \
&& apt-get -y install /tmp/chrome.deb
COPY welcome-message.txt /usr/local/etc/vscode-dev-containers/first-run-notice.txt

View file

@ -1,34 +0,0 @@
{
"name": "Basics",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/basics",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "Blog",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/blog",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,21 +0,0 @@
{
"name": "Component Template",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/component",
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"customizations": {
"codespaces": {
"openFiles": ["src/MyComponent.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,27 +0,0 @@
{
"name": "Contribute to Astro",
"build": {
"dockerfile": "Dockerfile"
},
"features": {
"ghcr.io/devcontainers/features/desktop-lite:1": {}
},
"postCreateCommand": "pnpm install && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Astro tests": "pnpm run test"
},
"customizations": {
"codespaces": {
"openFiles": ["README.md", "CONTRIBUTING.md"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "Docs Site",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/docs",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,5 +0,0 @@
👋 Welcome to "Astro" in GitHub Codespaces!
🛠️ Your environment is fully setup with all the required software.
🚀 The example app should automatically start soon in a new terminal tab.

View file

@ -1,6 +0,0 @@
FROM mcr.microsoft.com/devcontainers/javascript-node:0-18
# Install latest pnpm
RUN npm install -g pnpm
COPY example-welcome-message.txt /usr/local/etc/vscode-dev-containers/first-run-notice.txt

View file

@ -1,34 +0,0 @@
{
"name": "Alpine",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/framework-alpine",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "Lit",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/framework-lit",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "Kitchen Sink (Multiple Frameworks)",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/framework-multiple",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "Preact",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/framework-preact",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "React",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/framework-react",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "Solid",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/framework-solid",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "Svelte",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/framework-svelte",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "Vue",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/framework-vue",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "Hackernews",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/hackernews",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/[...stories].astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,21 +0,0 @@
{
"name": "Integration Package",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/integration",
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"customizations": {
"codespaces": {
"openFiles": ["index.ts"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "Minimal",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/minimal",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "Non-HTML Pages",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/non-html-pages",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "Portfolio",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/portfolio",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "SSR",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/ssr",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,4 +0,0 @@
👋 Welcome to Astro!
🛠️ Your environment is fully setup with all required software installed. Tests will
be running shortly in a separate terminal tab.

View file

@ -1,34 +0,0 @@
{
"name": "Markdown with Plugins",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/with-markdown-plugins",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.md"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "Markdown with Shiki",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/with-markdown-shiki",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.md"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "MDX",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/with-mdx",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.mdx"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "Nanostores",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/with-nanostores",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "Tailwind",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/with-tailwindcss",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "Vite PWA",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/with-vite-plugin-pwa",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -1,34 +0,0 @@
{
"name": "Vitest",
"build": {
"dockerfile": "../examples.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/with-vitest",
"portsAttributes": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -4,12 +4,9 @@
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = tab
insert_final_newline = true
trim_trailing_whitespace = false
[{.*,*.md,*.json,*.toml,*.yml,}]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = false
insert_final_newline = true

View file

@ -1,9 +1,6 @@
**/*.d.ts
packages/**/*.min.js
packages/**/dist/**/*
packages/**/fixtures/**/*
**/*.js
**/*.ts
!packages/astro/**/*.js
!packages/astro/**/*.ts
packages/astro/test/**/*.js
packages/astro/vendor/vite/**/*
examples/**/*
scripts/**/*
.github
.changeset

View file

@ -1,98 +1,20 @@
const { builtinModules } = require('module');
module.exports = {
extends: [
'plugin:@typescript-eslint/recommended-type-checked',
'plugin:@typescript-eslint/stylistic-type-checked',
'prettier',
],
parser: '@typescript-eslint/parser',
parserOptions: {
project: ['./packages/*/tsconfig.json', './tsconfig.eslint.json'],
tsconfigRootDir: __dirname,
},
plugins: ['@typescript-eslint', 'prettier', 'no-only-tests'],
extends: ['plugin:@typescript-eslint/recommended', 'prettier'],
plugins: ['@typescript-eslint', 'prettier'],
rules: {
// These off/configured-differently-by-default rules fit well for us
'@typescript-eslint/array-type': ['error', { default: 'array-simple' }],
'@typescript-eslint/no-unused-vars': [
'error',
{ argsIgnorePattern: '^_', ignoreRestSiblings: true },
],
'no-only-tests/no-only-tests': 'error',
'@typescript-eslint/no-shadow': ['error'],
'no-console': 'warn',
// Todo: do we want these?
'@typescript-eslint/array-type': 'off',
'@typescript-eslint/ban-ts-comment': 'off',
'@typescript-eslint/class-literal-property-style': 'off',
'@typescript-eslint/consistent-indexed-object-style': 'off',
'@typescript-eslint/consistent-type-definitions': 'off',
'@typescript-eslint/dot-notation': 'off',
'@typescript-eslint/no-base-to-string': 'off',
'@typescript-eslint/camelcase': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-empty-function': 'off',
'@typescript-eslint/no-floating-promises': 'off',
'@typescript-eslint/no-misused-promises': 'off',
'@typescript-eslint/no-redundant-type-constituents': 'off',
'@typescript-eslint/no-this-alias': 'off',
'@typescript-eslint/no-unsafe-argument': 'off',
'@typescript-eslint/no-unsafe-assignment': 'off',
'@typescript-eslint/no-unsafe-call': 'off',
'@typescript-eslint/no-unsafe-member-access': 'off',
'@typescript-eslint/no-unsafe-return': 'off',
'@typescript-eslint/prefer-nullish-coalescing': 'off',
'@typescript-eslint/prefer-optional-chain': 'off',
'@typescript-eslint/prefer-string-starts-ends-with': 'off',
'@typescript-eslint/require-await': 'off',
'@typescript-eslint/restrict-plus-operands': 'off',
'@typescript-eslint/restrict-template-expressions': 'off',
'@typescript-eslint/sort-type-constituents': 'off',
'@typescript-eslint/unbound-method': 'off',
'@typescript-eslint/no-explicit-any': 'off',
// These rules enabled by the preset configs don't work well for us
'@typescript-eslint/await-thenable': 'off',
'prefer-const': 'off',
},
overrides: [
{
// Ensure Node builtins aren't included in Astro's server runtime
files: ['packages/astro/src/runtime/**/*.ts'],
rules: {
'no-restricted-imports': [
'error',
{
paths: [...builtinModules],
patterns: ['node:*'],
},
],
},
},
{
files: ['packages/**/test/*.js', 'packages/**/*.js'],
env: {
mocha: true,
},
globals: {
globalThis: false, // false means read-only
},
rules: {
'no-console': 'off',
},
},
{
files: ['packages/integrations/**/*.ts'],
rules: {
'no-console': ['error', { allow: ['warn', 'error', 'info', 'debug'] }],
},
},
{
files: ['benchmark/**/*.js'],
rules: {
'@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/no-unused-vars': 'off',
'no-console': 'off',
'@typescript-eslint/no-use-before-define': 'off',
'@typescript-eslint/no-var-requires': 'off',
'no-console': 'warn',
'no-shadow': 'error',
'prefer-const': 'off',
// 'require-jsdoc': 'error', // re-enable this to enforce JSDoc for all functions
},
},
],
};

View file

@ -1,6 +0,0 @@
# Switch to tabs (Use Accessible Indentation #2253)
6ddd7678ffb6598ae6e263706813cb5e94535f02
# prettier config update
1335797903a57716e9a02b0ffd8ca636b3883c62
# Manually format .astro files in example projects (#3862)
59e8c71786fd1c154904b3fefa7d26d88f4d92d2

4
.github/CODEOWNERS vendored
View file

@ -1,3 +1 @@
README.md @withastro/maintainers-docs
packages/astro/src/@types/astro.ts @withastro/maintainers-docs
packages/astro/src/core/errors/errors-data.ts @withastro/maintainers-docs
* @snowpackjs/maintainers

View file

@ -1,5 +1,6 @@
name: "\U0001F41B Bug Report"
description: Report an issue or possible bug
title: "\U0001F41B BUG:"
labels: []
assignees: []
body:
@ -10,46 +11,39 @@ body:
Thank you for taking the time to file a bug report! Please fill out this form as completely as possible.
✅ I am using the **latest version of Astro** and all plugins.
✅ I am using a version of Node that Astro supports (`>=18.14.1`)
- type: textarea
id: astro-info
✅ I am using a version of Node that supports ESM (`v12.20.0+`, `v14.13.1+`, or `v16.0.0+`)
- type: input
attributes:
label: Astro Info
description: Run the command `astro info` in your terminal and paste the output here. Please review the data before submitting in case there is any sensitive information you don't want to share.
render: block
label: What package manager are you using?
placeholder: npm, yarn, pnpm
validations:
required: true
- type: input
id: browser
attributes:
label: If this issue only occurs in one browser, which browser is a problem?
placeholder: Chrome, Firefox, Safari
label: What operating system are you using?
placeholder: Mac, Windows, Linux
validations:
required: true
- type: textarea
id: bug-description
attributes:
label: Describe the Bug
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: bug-expectation
attributes:
label: What's the expected result?
description: Describe what you expect to happen.
label: Steps to Reproduce
description: Describe the bug in steps that we can reproduce ourselves.
value: |
1. `npm init astro` using template <NAME>
2. ...
3. ...
4. ...
5. Error! Describe what went wrong (and what was expected instead)...
validations:
required: true
- type: input
id: bug-reproduction
attributes:
label: Link to Minimal Reproducible Example
description: 'Use [astro.new](https://astro.new) to create a minimal reproduction of the problem. **A minimal reproduction is required** so that others can help debug your issue. If a report is vague (e.g. just a generic error message) and has no reproduction, it may be auto-closed. Not sure how to create a minimal example? [Read our guide](https://docs.astro.build/en/guides/troubleshooting/#creating-minimal-reproductions)'
placeholder: 'https://stackblitz.com/abcd1234'
validations:
required: true
- type: checkboxes
id: will-pr
attributes:
label: Participation
options:
- label: I am willing to submit a pull request for this issue.
required: false
label: Link to Minimal Reproducible Example (Optional)
description: 'Issues with easy reproductions are more likely to get fixed, faster.'
placeholder: 'https://github.com/username/repo'

View file

@ -0,0 +1,50 @@
name: "\U0001F4A1 Feature Request"
description: 'Submit an RFC or suggest an idea for this project'
title: "\U0001F4A1 RFC: "
labels: ['feature']
assignees: []
body:
- type: markdown
attributes:
value: Thanks for taking the time to suggest a new feature! Please fill out this form as completely as possible.
- type: textarea
attributes:
label: Background & Motivation
description: |
A quick, clear and concise description of what the problem is.
**Please include links to relevant issues, Discord convos, and anything else.**
placeholder: I want to be able to...
validations:
required: true
- type: textarea
attributes:
label: Proposed Solution
description: Your take on one (or more) possible solution(s) to problem.
value: |
### Possible solutions
### Alternatives considered
### Risks, downsides, and/or tradeoffs
### Open Questions
validations:
required: true
- type: textarea
attributes:
label: Detailed Design
description: |
🛑 **Just looking for feedback on an idea? Leave this section blank.**
Otherwise, explain the exact steps required to implement this change.
Include specific details that would help someone implement this feature.
- type: checkboxes
attributes:
label: Help make it happen!
description: 'Tip: RFCs with contributing authors are much more likely to get done!'
options:
- label: I am willing to submit a PR to implement this change.
- label: I am willing to submit a PR to implement this change, but would need some guidance.
- label: I am not willing to submit a PR to implement this change.
validations:
required: true

View file

@ -0,0 +1,7 @@
---
name: "\U0001F4D8 Documentation"
about: Report a bug or suggest improvement for https://docs.astro.build
title: "\U0001F4D8 DOC: "
labels: ''
assignees: ''
---

View file

@ -1,11 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: 📘 Documentation
url: https://github.com/withastro/docs
about: File an issue or make an improvement to the docs website.
- name: 💡 Ideas for New Features, Improvements and RFCs
url: https://github.com/withastro/roadmap/discussions
about: Propose and discuss future improvements to Astro
- name: 👾 Chat
url: https://astro.build/chat
about: Our Discord server is active, come join us!

View file

@ -2,8 +2,7 @@
- What does this change?
- Be short and concise. Bullet points can help!
- Before/after screenshots can help as well.
- Don't forget a changeset! `pnpm exec changeset`
- Before/after screenshots can be helpful as well.
## Testing
@ -12,9 +11,5 @@
## Docs
<!-- Could this affect a users behavior? We probably need to update docs! -->
<!-- If docs will be needed or youre not sure, uncomment the next line: -->
<!-- /cc @withastro/maintainers-docs for feedback! -->
<!-- DON'T DELETE THIS SECTION! If no docs added, explain why.-->
<!-- https://github.com/withastro/docs -->
<!-- Was public documentation updated? -->
<!-- DON'T DELETE THIS SECTION! If no docs added, explain why (e.g. "bug fix only") -->

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.8 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.8 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 20 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 20 KiB

View file

@ -1 +0,0 @@
<svg fill="none" height="40" viewBox="0 0 240 40" width="240" xmlns="http://www.w3.org/2000/svg"><g fill="#fff"><path clip-rule="evenodd" d="m31 40-4-10.6-4 10.6h-2l5-13.2-4-10.5-9 23.7h-2l10-26.4-4.5-11.8-14.5 38.2h-2l15.2-40h2.6l4.2 11 4.2-11h2.6l3.7 9.7 3.7-9.7h2.6l4.2 11 4.2-11h2.6l15.2 40h-2l-14.5-38.2-4.5 11.8 10 26.4h-2l-9-23.7-4 10.5 5 13.2h-2l-4-10.6-4 10.6zm1.5-25-4.5 11.7 4.5 11.9 4.5-11.8zm-5-13.2-4.5 11.8 4 10.6 4.5-11.9zm10 0-4 10.5 4.5 11.9 4-10.6z" fill-rule="evenodd"/><path d="m97.7259 17.956v11.044h2.7061v-15.4h-2.8821l-4.686 7.282-4.686-7.282h-2.882v15.4h2.662v-11l4.818 7.216h.088z"/><path d="m121.687 21.278c0-1.0853-.198-2.112-.594-3.08s-.946-1.8113-1.65-2.53-1.547-1.2833-2.53-1.694c-.982-.4253-2.068-.638-3.256-.638s-2.273.2127-3.256.638c-.982.4253-1.833 1.0047-2.552 1.738-.718.7187-1.276 1.562-1.672 2.53s-.594 1.9947-.594 3.08.198 2.112.594 3.08.946 1.8113 1.65 2.53 1.548 1.2907 2.53 1.716c.983.4107 2.068.616 3.256.616s2.274-.2127 3.256-.638c.983-.4253 1.834-.9973 2.552-1.716.719-.7333 1.276-1.584 1.672-2.552s.594-1.9947.594-3.08zm-2.838.044c0 .748-.132 1.4593-.396 2.134-.249.66-.601 1.2393-1.056 1.738-.454.484-1.004.8727-1.65 1.166-.63.2787-1.327.418-2.09.418-.762 0-1.466-.1467-2.112-.44-.645-.2933-1.202-.6893-1.672-1.188-.454-.4987-.814-1.078-1.078-1.738-.249-.6747-.374-1.386-.374-2.134s.125-1.452.374-2.112c.264-.6747.624-1.254 1.078-1.738.455-.4987.998-.8873 1.628-1.166.646-.2933 1.35-.44 2.112-.44.763 0 1.467.1467 2.112.44.646.2933 1.196.6893 1.65 1.188.47.4987.829 1.0853 1.078 1.76.264.66.396 1.364.396 2.112z"/><path d="m137.585 24.248-8.25-10.648h-2.508v15.4h2.662v-10.956l8.492 10.956h2.266v-15.4h-2.662z"/><path d="m161.5 21.278c0-1.0853-.198-2.112-.594-3.08s-.946-1.8113-1.65-2.53-1.548-1.2833-2.53-1.694c-.983-.4253-2.068-.638-3.256-.638s-2.274.2127-3.256.638c-.983.4253-1.834 1.0047-2.552 1.738-.719.7187-1.276 1.562-1.672 2.53s-.594 1.9947-.594 3.08.198 2.112.594 3.08.946 1.8113 1.65 2.53 1.547 1.2907 2.53 1.716c.982.4107 2.068.616 3.256.616s2.273-.2127 3.256-.638c.982-.4253 1.833-.9973 2.552-1.716.718-.7333 1.276-1.584 1.672-2.552s.594-1.9947.594-3.08zm-2.838.044c0 .748-.132 1.4593-.396 2.134-.25.66-.602 1.2393-1.056 1.738-.455.484-1.005.8727-1.65 1.166-.631.2787-1.328.418-2.09.418-.763 0-1.467-.1467-2.112-.44-.646-.2933-1.203-.6893-1.672-1.188-.455-.4987-.814-1.078-1.078-1.738-.25-.6747-.374-1.386-.374-2.134s.124-1.452.374-2.112c.264-.6747.623-1.254 1.078-1.738.454-.4987.997-.8873 1.628-1.166.645-.2933 1.349-.44 2.112-.44.762 0 1.466.1467 2.112.44.645.2933 1.195.6893 1.65 1.188.469.4987.828 1.0853 1.078 1.76.264.66.396 1.364.396 2.112z"/><path d="m180.367 26.866v-6.468h-6.556v2.354h3.938v2.882c-.469.352-1.027.638-1.672.858-.631.2053-1.313.308-2.046.308-.792 0-1.511-.1393-2.156-.418-.631-.2787-1.181-.66-1.65-1.144-.455-.4987-.807-1.0853-1.056-1.76s-.374-1.408-.374-2.2c0-.748.125-1.452.374-2.112.264-.66.616-1.2393 1.056-1.738.455-.4987.983-.8873 1.584-1.166.616-.2933 1.276-.44 1.98-.44.484 0 .924.044 1.32.132.411.0733.785.1833 1.122.33.337.132.66.3007.968.506s.609.4327.902.682l1.716-2.046c-.396-.3373-.807-.6307-1.232-.88-.411-.264-.851-.484-1.32-.66s-.983-.308-1.54-.396c-.543-.1027-1.151-.154-1.826-.154-1.159 0-2.229.2127-3.212.638-.968.4253-1.804 1.0047-2.508 1.738-.704.7187-1.254 1.562-1.65 2.53-.381.968-.572 1.9947-.572 3.08 0 1.1293.191 2.178.572 3.146s.917 1.8113 1.606 2.53c.704.704 1.547 1.2613 2.53 1.672.983.396 2.075.594 3.278.594.675 0 1.32-.066 1.936-.198.616-.1173 1.188-.286 1.716-.506.543-.22 1.041-.4767 1.496-.77.469-.2933.895-.6013 1.276-.924z"/><path d="m198.829 29-4.158-5.83c.543-.1467 1.034-.352 1.474-.616.455-.2787.843-.6087 1.166-.99.323-.396.572-.8433.748-1.342.191-.5133.286-1.0927.286-1.738 0-.748-.132-1.4227-.396-2.024-.264-.616-.645-1.1293-1.144-1.54-.484-.4253-1.085-.748-1.804-.968-.704-.2347-1.496-.352-2.376-.352h-6.864v15.4h2.706v-5.368h3.388l3.784 5.368zm-3.234-10.362c0 .792-.286 1.4227-.858 1.892s-1.342.704-2.31.704h-3.96v-5.17h3.938c1.012 0 1.797.22 2.354.66.557.4253.836 1.0633.836 1.914z"/><path d="m211.934 13.49h-2.508l-6.776 15.51h2.772l1.584-3.718h7.282l1.562 3.718h2.86zm1.364 9.394h-5.302l2.64-6.16z"/><path d="m236.31 17.956v11.044h2.706v-15.4h-2.882l-4.686 7.282-4.686-7.282h-2.882v15.4h2.662v-11l4.818 7.216h.088z"/></g></svg>

Before

Width:  |  Height:  |  Size: 4.2 KiB

View file

@ -1 +0,0 @@
<svg fill="none" height="40" viewBox="0 0 240 40" width="240" xmlns="http://www.w3.org/2000/svg"><g fill="#000"><path clip-rule="evenodd" d="m31 40-4-10.6-4 10.6h-2l5-13.2-4-10.5-9 23.7h-2l10-26.4-4.5-11.8-14.5 38.2h-2l15.2-40h2.6l4.2 11 4.2-11h2.6l3.7 9.7 3.7-9.7h2.6l4.2 11 4.2-11h2.6l15.2 40h-2l-14.5-38.2-4.5 11.8 10 26.4h-2l-9-23.7-4 10.5 5 13.2h-2l-4-10.6-4 10.6zm1.5-25-4.5 11.7 4.5 11.9 4.5-11.8zm-5-13.2-4.5 11.8 4 10.6 4.5-11.9zm10 0-4 10.5 4.5 11.9 4-10.6z" fill-rule="evenodd"/><path d="m97.7259 17.956v11.044h2.7061v-15.4h-2.8821l-4.686 7.282-4.686-7.282h-2.882v15.4h2.662v-11l4.818 7.216h.088z"/><path d="m121.687 21.278c0-1.0853-.198-2.112-.594-3.08s-.946-1.8113-1.65-2.53-1.547-1.2833-2.53-1.694c-.982-.4253-2.068-.638-3.256-.638s-2.273.2127-3.256.638c-.982.4253-1.833 1.0047-2.552 1.738-.718.7187-1.276 1.562-1.672 2.53s-.594 1.9947-.594 3.08.198 2.112.594 3.08.946 1.8113 1.65 2.53 1.548 1.2907 2.53 1.716c.983.4107 2.068.616 3.256.616s2.274-.2127 3.256-.638c.983-.4253 1.834-.9973 2.552-1.716.719-.7333 1.276-1.584 1.672-2.552s.594-1.9947.594-3.08zm-2.838.044c0 .748-.132 1.4593-.396 2.134-.249.66-.601 1.2393-1.056 1.738-.454.484-1.004.8727-1.65 1.166-.63.2787-1.327.418-2.09.418-.762 0-1.466-.1467-2.112-.44-.645-.2933-1.202-.6893-1.672-1.188-.454-.4987-.814-1.078-1.078-1.738-.249-.6747-.374-1.386-.374-2.134s.125-1.452.374-2.112c.264-.6747.624-1.254 1.078-1.738.455-.4987.998-.8873 1.628-1.166.646-.2933 1.35-.44 2.112-.44.763 0 1.467.1467 2.112.44.646.2933 1.196.6893 1.65 1.188.47.4987.829 1.0853 1.078 1.76.264.66.396 1.364.396 2.112z"/><path d="m137.585 24.248-8.25-10.648h-2.508v15.4h2.662v-10.956l8.492 10.956h2.266v-15.4h-2.662z"/><path d="m161.5 21.278c0-1.0853-.198-2.112-.594-3.08s-.946-1.8113-1.65-2.53-1.548-1.2833-2.53-1.694c-.983-.4253-2.068-.638-3.256-.638s-2.274.2127-3.256.638c-.983.4253-1.834 1.0047-2.552 1.738-.719.7187-1.276 1.562-1.672 2.53s-.594 1.9947-.594 3.08.198 2.112.594 3.08.946 1.8113 1.65 2.53 1.547 1.2907 2.53 1.716c.982.4107 2.068.616 3.256.616s2.273-.2127 3.256-.638c.982-.4253 1.833-.9973 2.552-1.716.718-.7333 1.276-1.584 1.672-2.552s.594-1.9947.594-3.08zm-2.838.044c0 .748-.132 1.4593-.396 2.134-.25.66-.602 1.2393-1.056 1.738-.455.484-1.005.8727-1.65 1.166-.631.2787-1.328.418-2.09.418-.763 0-1.467-.1467-2.112-.44-.646-.2933-1.203-.6893-1.672-1.188-.455-.4987-.814-1.078-1.078-1.738-.25-.6747-.374-1.386-.374-2.134s.124-1.452.374-2.112c.264-.6747.623-1.254 1.078-1.738.454-.4987.997-.8873 1.628-1.166.645-.2933 1.349-.44 2.112-.44.762 0 1.466.1467 2.112.44.645.2933 1.195.6893 1.65 1.188.469.4987.828 1.0853 1.078 1.76.264.66.396 1.364.396 2.112z"/><path d="m180.367 26.866v-6.468h-6.556v2.354h3.938v2.882c-.469.352-1.027.638-1.672.858-.631.2053-1.313.308-2.046.308-.792 0-1.511-.1393-2.156-.418-.631-.2787-1.181-.66-1.65-1.144-.455-.4987-.807-1.0853-1.056-1.76s-.374-1.408-.374-2.2c0-.748.125-1.452.374-2.112.264-.66.616-1.2393 1.056-1.738.455-.4987.983-.8873 1.584-1.166.616-.2933 1.276-.44 1.98-.44.484 0 .924.044 1.32.132.411.0733.785.1833 1.122.33.337.132.66.3007.968.506s.609.4327.902.682l1.716-2.046c-.396-.3373-.807-.6307-1.232-.88-.411-.264-.851-.484-1.32-.66s-.983-.308-1.54-.396c-.543-.1027-1.151-.154-1.826-.154-1.159 0-2.229.2127-3.212.638-.968.4253-1.804 1.0047-2.508 1.738-.704.7187-1.254 1.562-1.65 2.53-.381.968-.572 1.9947-.572 3.08 0 1.1293.191 2.178.572 3.146s.917 1.8113 1.606 2.53c.704.704 1.547 1.2613 2.53 1.672.983.396 2.075.594 3.278.594.675 0 1.32-.066 1.936-.198.616-.1173 1.188-.286 1.716-.506.543-.22 1.041-.4767 1.496-.77.469-.2933.895-.6013 1.276-.924z"/><path d="m198.829 29-4.158-5.83c.543-.1467 1.034-.352 1.474-.616.455-.2787.843-.6087 1.166-.99.323-.396.572-.8433.748-1.342.191-.5133.286-1.0927.286-1.738 0-.748-.132-1.4227-.396-2.024-.264-.616-.645-1.1293-1.144-1.54-.484-.4253-1.085-.748-1.804-.968-.704-.2347-1.496-.352-2.376-.352h-6.864v15.4h2.706v-5.368h3.388l3.784 5.368zm-3.234-10.362c0 .792-.286 1.4227-.858 1.892s-1.342.704-2.31.704h-3.96v-5.17h3.938c1.012 0 1.797.22 2.354.66.557.4253.836 1.0633.836 1.914z"/><path d="m211.934 13.49h-2.508l-6.776 15.51h2.772l1.584-3.718h7.282l1.562 3.718h2.86zm1.364 9.394h-5.302l2.64-6.16z"/><path d="m236.31 17.956v11.044h2.706v-15.4h-2.882l-4.686 7.282-4.686-7.282h-2.882v15.4h2.662v-11l4.818 7.216h.088z"/></g></svg>

Before

Width:  |  Height:  |  Size: 4.2 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 147 40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><radialGradient id="a" cx="-779.0521" cy="1839.7205" gradientTransform="matrix(0 38.301 44.1228 0 -81154.2578 29839.2441)" gradientUnits="userSpaceOnUse" r="1.0011"><stop offset="0" stop-color="#20c6b7"/><stop offset="1" stop-color="#4d9abf"/></radialGradient><path clip-rule="evenodd" d="m53.37 12.98.12 2.2c1.4-1.7 3.24-2.55 5.53-2.55 3.95 0 5.96 2.27 6.03 6.8v12.57h-4.26v-12.32c0-1.21-.26-2.1-.78-2.68s-1.37-.87-2.55-.87c-1.72 0-3 .78-3.84 2.34v13.53h-4.26v-19.02zm24.38 19.37c-2.7 0-4.89-.85-6.57-2.56-1.68-1.7-2.52-3.98-2.52-6.81v-.53c0-1.9.36-3.59 1.1-5.09.73-1.49 1.76-2.66 3.08-3.49s2.79-1.25 4.42-1.25c2.58 0 4.58.83 5.99 2.48s2.11 3.99 2.11 7.01v1.72h-12.4c.13 1.57.65 2.81 1.57 3.73s2.07 1.37 3.46 1.37c1.95 0 3.54-.79 4.77-2.37l2.3 2.2c-.76 1.14-1.77 2.02-3.04 2.65s-2.69.94-4.27.94zm-.51-16.29c-1.17 0-2.11.41-2.83 1.23s-1.18 1.96-1.38 3.43h8.12v-.32c-.09-1.43-.47-2.51-1.14-3.24-.67-.74-1.59-1.1-2.77-1.1zm16.76-7.7v4.62h3.35v3.16h-3.35v10.62c0 .73.14 1.25.43 1.57s.8.48 1.54.48c.5 0 1-.06 1.49-.18v3.31c-.97.27-1.9.4-2.81.4-3.27 0-4.91-1.81-4.91-5.43v-10.77h-3.12v-3.16h3.12v-4.63zm11.14 23.64h-4.26v-27h4.26zm9.17 0h-4.26v-19.02h4.26zm-4.52-23.96c0-.65.21-1.2.62-1.63.42-.43 1.01-.65 1.78-.65s1.37.22 1.79.65.63.98.63 1.64c0 .64-.21 1.18-.63 1.61s-1.02.64-1.79.64-1.36-.21-1.78-.64c-.41-.44-.62-.98-.62-1.62zm10.66 23.96v-15.86h-2.89v-3.16h2.89v-1.74c0-2.11.58-3.74 1.75-4.89s2.81-1.72 4.91-1.72c.75 0 1.54.11 2.39.32l-.1 3.34c-.54-.1-1.08-.15-1.63-.14-2.04 0-3.05 1.05-3.05 3.15v1.69h3.86v3.16h-3.86v15.85zm17.87-6.12 3.86-12.9h4.54l-7.54 21.9c-1.16 3.2-3.12 4.8-5.89 4.8-.62 0-1.3-.11-2.05-.32v-3.31l.81.05c1.07 0 1.88-.2 2.43-.59.54-.39.97-1.05 1.29-1.98l.61-1.64-6.66-18.93h4.6z" fill="#fff" fill-rule="evenodd"/><path d="m27.89 14.14-.01-.01c-.01 0-.02-.01-.02-.01-.02-.02-.03-.06-.03-.09l.77-4.73 3.62 3.63-3.77 1.6c-.01 0-.02.01-.03.01h-.02s-.01-.01-.02-.02c-.14-.16-.31-.29-.49-.38zm5.26-.29 3.88 3.88c.81.81 1.21 1.21 1.35 1.67.02.07.04.14.05.21l-9.26-3.92s-.01 0-.01-.01c-.04-.02-.08-.03-.08-.07s.04-.06.08-.07l.01-.01zm5.12 7c-.2.38-.59.77-1.25 1.43l-4.37 4.37-5.65-1.18-.03-.01c-.05-.01-.1-.02-.1-.06-.04-.47-.28-.9-.66-1.19-.02-.02-.02-.06-.01-.09v-.01l1.06-6.53v-.02c.01-.05.01-.11.06-.11.46-.06.88-.3 1.16-.67.01-.01.01-.02.03-.03.03-.01.07 0 .1.01zm-6.62 6.8-7.19 7.19 1.23-7.56v-.01c0-.01 0-.02.01-.03.01-.02.04-.03.06-.04h.01c.27-.11.51-.29.69-.52.02-.03.05-.06.09-.06h.03zm-8.71 8.71-.81.81-8.95-12.94s-.01-.01-.01-.01c-.01-.02-.03-.04-.03-.06s.01-.03.02-.04l.01-.01c.03-.04.05-.08.07-.12l.02-.03c.01-.02.03-.05.05-.06s.05-.01.07 0l9.92 2.05c.03 0 .05.02.08.03.01.01.02.03.02.04.14.53.52.97 1.03 1.17.03.01.02.05 0 .08-.01.01-.01.03-.01.05-.12.74-1.19 7.27-1.48 9.04zm-1.69 1.69c-.6.59-.95.9-1.35 1.03-.39.12-.81.12-1.21 0-.47-.15-.87-.55-1.67-1.36l-8.99-8.99 2.35-3.64c.01-.02.02-.03.04-.05s.06-.01.09 0c.54.16 1.12.13 1.64-.08.03-.01.05-.02.07 0l.03.03zm-14.09-10.19-2.06-2.06 4.07-1.74c.01 0 .02-.01.03-.01.03 0 .05.03.07.07.04.06.08.12.13.18l.01.02c.01.02 0 .03-.01.05zm-2.98-2.97-2.61-2.61c-.44-.44-.77-.77-.99-1.04l7.94 1.65h.03c.05.01.1.02.1.06 0 .05-.06.07-.11.09l-.02.01zm-4.05-5c.01-.17.04-.33.09-.5.15-.47.55-.87 1.36-1.67l3.34-3.34c1.54 2.23 3.08 4.46 4.63 6.69.03.04.06.08.03.11-.15.16-.29.34-.4.53-.01.02-.03.05-.05.06-.01.01-.03 0-.04 0zm5.68-6.4 4.49-4.49c.42.19 1.96.83 3.33 1.41 1.04.44 1.99.84 2.29.97.03.01.06.02.07.05.01.02 0 .04 0 .06-.14.66.05 1.35.52 1.83.03.03 0 .07-.03.11l-.01.02-4.56 7.06c-.01.02-.02.04-.04.05s-.06.01-.09 0c-.18-.05-.36-.07-.54-.07-.16 0-.34.03-.52.06-.02 0-.04.01-.05 0-.02-.01-.03-.03-.05-.05zm5.4-5.4 5.81-5.81c.81-.81 1.21-1.21 1.67-1.36.39-.12.81-.12 1.21 0 .47.15.87.55 1.67 1.36l1.26 1.26-4.14 6.4c-.01.02-.02.03-.04.05s-.06.01-.09 0c-.66-.2-1.38-.06-1.92.37-.03.03-.07.01-.1 0-.53-.24-4.73-2.01-5.33-2.27zm12.5-3.67 3.82 3.82-.92 5.7v.02c0 .01 0 .03-.01.04-.01.02-.03.02-.05.03-.2.06-.38.15-.55.27-.01.01-.01.01-.02.02s-.02.02-.04.02c-.01 0-.03 0-.04-.01l-5.82-2.47-.01-.01c-.04-.02-.08-.03-.08-.07-.03-.32-.14-.64-.31-.91-.03-.05-.06-.09-.03-.14zm-3.93 8.6 5.45 2.31c.03.01.06.03.08.06.01.02.01.04 0 .06-.02.08-.03.17-.03.26v.15c0 .04-.04.05-.08.07h-.01c-.86.37-12.13 5.17-12.15 5.17s-.03 0-.05-.02c-.03-.03 0-.07.03-.11 0-.01.01-.01.01-.02l4.48-6.94.01-.01c.03-.04.06-.09.1-.09l.05.01c.1.01.19.03.28.03.68 0 1.31-.33 1.69-.9.01-.02.02-.03.03-.04.04-.01.08 0 .11.01zm-6.25 9.19 12.28-5.24s.02 0 .03.02c.07.07.12.11.18.15l.03.02c.02.01.05.03.05.06v.02l-1.05 6.46v.03c-.01.05-.01.11-.06.11-.57.04-1.08.36-1.37.85v.01c-.01.02-.03.05-.05.06s-.05.01-.07 0l-9.79-2.02c-.02-.02-.16-.53-.18-.53z" fill="url(#a)"/></svg>

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 360.27 79.35" xmlns="http://www.w3.org/2000/svg"><g fill="#fff"><path d="m52.16 4.07c-2.4-3.98-7.57-5.26-11.55-2.86-1.17.71-2.16 1.69-2.86 2.86l-11.86 20.31c18.43 9.2 30.6 27.48 31.98 48.04h-8.32c-1.38-17.62-11.98-33.19-27.86-40.94l-10.97 18.97c8.92 4 15.18 12.26 16.63 21.93h-19.12c-.75-.05-1.32-.71-1.27-1.46.01-.19.07-.37.15-.54l5.3-9.01c-1.79-1.5-3.85-2.66-6.05-3.42l-5.24 9.01c-2.28 3.9-.96 8.91 2.95 11.19.03.02.07.04.1.06 1.24.7 2.64 1.07 4.07 1.08h26.18c.98-12.21-4.49-24.04-14.42-31.2l4.16-7.21c12.54 8.61 19.6 23.22 18.56 38.4h22.18c1.05-23-10.21-44.83-29.57-57.3l8.41-14.41c.39-.65 1.23-.87 1.89-.49.96.52 36.57 62.65 37.23 63.37.37.66.13 1.49-.53 1.86-.21.12-.45.18-.7.17h-8.58c.11 2.29.11 4.58 0 6.86h8.61c4.57.03 8.29-3.65 8.32-8.22 0-.03 0-.06 0-.09 0-1.44-.38-2.86-1.12-4.11z"/><path d="m223.91 50.96-26.59-34.34h-6.63v46.04h6.72v-35.29l27.35 35.28h5.87v-46.04h-6.72zm-66.98-8.54h23.84v-5.98h-23.86v-13.86h26.9v-5.98h-33.75v46.05h34.09v-5.98h-27.24zm-28.03-5.84c-9.28-2.23-11.87-4-11.87-8.29 0-3.86 3.41-6.47 8.49-6.47 4.63.14 9.09 1.75 12.74 4.59l3.6-5.1c-4.62-3.62-10.35-5.53-16.22-5.41-9.12 0-15.48 5.41-15.48 13.1 0 8.29 5.41 11.15 15.24 13.55 8.76 2.02 11.44 3.89 11.44 8.09s-3.6 6.79-9.17 6.79c-5.54-.03-10.88-2.12-14.95-5.87l-4.05 4.85c5.22 4.49 11.89 6.95 18.77 6.94 9.87 0 16.22-5.32 16.22-13.53-.06-6.95-4.17-10.68-14.76-13.24zm223.62-19.97-13.86 21.62-13.76-21.62h-8.04l18.18 27.84v18.22h6.92v-18.43l18.31-27.62zm-116.45 6.24h15.08v39.82h6.92v-39.82h15.08v-6.23h-37.06zm69.08 21.84c6.95-1.93 10.81-6.79 10.81-13.75 0-8.85-6.47-14.41-16.9-14.41h-20.47v46.11h6.85v-16.55h11.62l11.68 16.58h8l-12.61-17.69zm-19.73-4.51v-17.48h12.92c6.74 0 10.59 3.19 10.59 8.72s-4.13 8.76-10.52 8.76z"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.3 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.3 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.4 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.4 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.9 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.9 KiB

View file

@ -1 +0,0 @@
<svg fill="#fff" viewBox="0 0 284 65" xmlns="http://www.w3.org/2000/svg"><path d="m37.59.25 36.95 64h-73.9z"/><path d="m129.97 5.25-27.71 48-27.71-48h10.39l17.32 30 17.32-30z"/><path d="m188.88 17.25v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10v14.8h-9v-34h9v9.2c0-5.08 5.91-9.2 13.2-9.2z"/><path d="m200.88 34.25c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10z"/><path d="m274.36 5.25h9v46h-9z"/><path d="m268.36 34.24c0-10.79-7.96-17.99-19-17.99s-19 7.2-19 18 8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5zm-28.45-3.49c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/><path d="m141.68 16.25c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -1 +1 @@
<svg viewBox="0 0 284 65" xmlns="http://www.w3.org/2000/svg"><path d="m37.59.25 36.95 64h-73.9z"/><path d="m129.97 5.25-27.71 48-27.71-48h10.39l17.32 30 17.32-30z"/><path d="m188.88 17.25v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10v14.8h-9v-34h9v9.2c0-5.08 5.91-9.2 13.2-9.2z"/><path d="m200.88 34.25c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10z"/><path d="m274.36 5.25h9v46h-9z"/><path d="m268.36 34.24c0-10.79-7.96-17.99-19-17.99s-19 7.2-19 18 8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5zm-28.45-3.49c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/><path d="m141.68 16.25c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/></svg>
<svg viewBox="0 0 284 65" xmlns="http://www.w3.org/2000/svg"><path d="m37.59.25 36.95 64h-73.9z"/><path d="m129.97 5.25-27.71 48-27.71-48h10.39l17.32 30 17.32-30z"/><path d="m188.88 17.25v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10v14.8h-9v-34h9v9.2c0-5.08 5.91-9.2 13.2-9.2z"/><path d="m200.88 34.25c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10z"/><path d="m274.36 5.25h9v46h-9z"/><path d="m268.36 34.24c0-10.79-7.96-17.99-19-17.99-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5zm-28.45-3.49c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/><path d="m141.68 16.25c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

37
.github/labeler.yml vendored
View file

@ -1,37 +0,0 @@
# See https://github.com/actions/labeler
'pkg: example':
- examples/**/*
'🚨 action':
- .github/workflows/**
'pkg: astro':
- packages/astro/**
'pkg: create-astro':
- packages/create-astro/**
'feat: markdown':
- packages/markdown/**
'pkg: integration':
- packages/integrations/**
'pkg: lit':
- packages/integrations/lit/**
'pkg: preact':
- packages/integrations/preact/**
'pkg: react':
- packages/integrations/react/**
'pkg: solid':
- packages/integrations/solid/**
'pkg: svelte':
- packages/integrations/svelte/**
'pkg: vue':
- packages/integrations/vue/**

View file

@ -1,85 +0,0 @@
import { build } from 'esbuild';
import { existsSync } from 'node:fs';
const CLIENT_RUNTIME_PATH = 'packages/astro/src/runtime/client/';
function formatBytes(bytes, decimals = 2) {
if (bytes === 0) return '0 B';
const k = 1024;
const dm = decimals < 0 ? 0 : decimals;
const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
const i = Math.floor(Math.log(bytes) / Math.log(k));
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
}
export default async function checkBundleSize({ github, context }) {
const PR_NUM = context.payload.pull_request.number;
const SHA = context.payload.pull_request.head.sha;
const { data: files } = await github.rest.pulls.listFiles({
...context.repo,
pull_number: PR_NUM,
});
const clientRuntimeFiles = files.filter((file) => {
return file.filename.startsWith(CLIENT_RUNTIME_PATH) && file.status !== 'removed'
});
if (clientRuntimeFiles.length === 0) return;
const table = [
'| File | Old Size | New Size | Change |',
'| ---- | -------- | -------- | ------ |',
];
const output = await bundle(clientRuntimeFiles);
for (let [filename, { oldSize, newSize, sourceFile }] of Object.entries(output)) {
filename = ['idle', 'load', 'media', 'only', 'visible'].includes(filename) ? `client:${filename}` : filename;
const prefix = (newSize - oldSize) === 0 ? '' : (newSize - oldSize) > 0 ? '+ ' : '- ';
const change = `${prefix}${formatBytes(newSize - oldSize)}`;
table.push(`| [\`${filename}\`](https://github.com/${context.repo.owner}/${context.repo.repo}/tree/${context.payload.pull_request.head.ref}/${sourceFile}) | ${formatBytes(oldSize)} | ${formatBytes(newSize)} | ${change} |`);
}
const { data: comments } = await github.rest.issues.listComments({
...context.repo,
issue_number: PR_NUM
})
const comment = comments.find(comment => comment.user.login === 'github-actions[bot]' && comment.body.includes('Bundle Size Check'));
const method = comment ? 'updateComment' : 'createComment';
const payload = comment ? { comment_id: comment.id } : { issue_number: PR_NUM };
await github.rest.issues[method]({
...context.repo,
...payload,
body: `### ⚖️ Bundle Size Check
Latest commit: ${SHA}
${table.join('\n')}`,
});
}
async function bundle(files) {
const { metafile } = await build({
entryPoints: [...files.map(({ filename }) => filename), ...files.map(({ filename }) => `main/${filename}`).filter(f => existsSync(f))],
bundle: true,
minify: true,
sourcemap: false,
target: ['es2018'],
outdir: 'out',
metafile: true,
})
return Object.entries(metafile.outputs).reduce((acc, [filename, info]) => {
filename = filename.slice('out/'.length);
if (filename.startsWith('main/')) {
filename = filename.slice('main/'.length).replace(CLIENT_RUNTIME_PATH, '').replace('.js', '');
const oldSize = info.bytes;
return Object.assign(acc, { [filename]: Object.assign(acc[filename] ?? { oldSize: 0, newSize: 0 }, { oldSize }) });
}
filename = filename.replace(CLIENT_RUNTIME_PATH, '').replace('.js', '');
const newSize = info.bytes;
return Object.assign(acc, { [filename]: Object.assign(acc[filename] ?? { oldSize: 0, newSize: 0 }, { newSize, sourceFile: Object.keys(info.inputs).find(src => src.endsWith('.ts')) }) });
}, {});
}

View file

@ -1,105 +0,0 @@
name: Benchmark
on:
issue_comment:
types: [created]
workflow_dispatch:
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
FORCE_COLOR: true
jobs:
benchmark:
if: ${{ github.repository_owner == 'withastro' && github.event.issue.pull_request && startsWith(github.event.comment.body, '!bench') }}
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
PR-BENCH: ${{ steps.benchmark-pr.outputs.BENCH_RESULT }}
MAIN-BENCH: ${{ steps.benchmark-main.outputs.BENCH_RESULT }}
steps:
# https://github.com/actions/checkout/issues/331#issuecomment-1438220926
- uses: actions/checkout@v3
with:
persist-credentials: false
ref: refs/pull/${{ github.event.issue.number }}/head
- name: Setup PNPM
uses: pnpm/action-setup@v2
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Build Packages
run: pnpm run build
- name: Get bench command
id: bench-command
env:
# protects from untrusted user input and command injection
COMMENT: ${{ github.event.comment.body }}
run: |
benchcmd=$(echo "$COMMENT" | grep '!bench' | awk -F ' ' '{print $2}')
echo "bench=$benchcmd" >> $GITHUB_OUTPUT
shell: bash
- name: Run benchmark
id: benchmark-pr
run: |
result=$(pnpm run --silent benchmark ${{ steps.bench-command.outputs.bench }})
processed=$(node ./benchmark/ci-helper.js "$result")
echo "BENCH_RESULT<<BENCHEOF" >> $GITHUB_OUTPUT
echo "### PR Benchmark" >> $GITHUB_OUTPUT
echo "$processed" >> $GITHUB_OUTPUT
echo "BENCHEOF" >> $GITHUB_OUTPUT
shell: bash
# main benchmark
- uses: actions/checkout@v3
with:
persist-credentials: false
ref: "main"
- name: Install
run: |
pnpm install
- name: Build Packages
run: pnpm run build
- name: Run benchmark
id: benchmark-main
run: |
result=$(pnpm run --silent benchmark ${{ steps.bench-command.outputs.bench }})
processed=$(node ./benchmark/ci-helper.js "$result")
echo "BENCH_RESULT<<BENCHEOF" >> $GITHUB_OUTPUT
echo "### Main Benchmark" >> $GITHUB_OUTPUT
echo "$processed" >> $GITHUB_OUTPUT
echo "BENCHEOF" >> $GITHUB_OUTPUT
shell: bash
output-benchmark:
if: ${{ github.repository_owner == 'withastro' && github.event.issue.pull_request && startsWith(github.event.comment.body, '!bench') }}
needs: [benchmark]
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Comment PR
uses: peter-evans/create-or-update-comment@v2
continue-on-error: true
with:
issue-number: ${{ github.event.issue.number }}
body: |
${{ needs.benchmark.outputs.PR-BENCH }}
${{ needs.benchmark.outputs.MAIN-BENCH }}
edit-mode: replace

View file

@ -1,88 +0,0 @@
name: Check mergeability
on: pull_request
permissions:
pull-requests: write
checks: write
statuses: write
jobs:
check:
runs-on: ubuntu-latest
steps:
- name: Check if there is already a block on this PR
id: blocked
uses: actions/github-script@v6
env:
issue_number: ${{ github.event.number }}
with:
script: |
const { data: reviews } = await github.rest.pulls.listReviews({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: process.env.issue_number,
});
for (const review of reviews) {
if (review.user.login === 'github-actions[bot]' && review.state === 'CHANGES_REQUESTED') {
return 'true'
}
}
return 'false'
result-encoding: string
- uses: actions/checkout@v3
if: steps.blocked.outputs.result != 'true'
with:
fetch-depth: 0
- name: Get changed files in the .changeset folder
id: changed-files
uses: tj-actions/changed-files@v35
if: steps.blocked.outputs.result != 'true'
with:
files: |
.changeset/**/*.md
- name: Check if any changesets contain minor changes
id: minor
if: steps.blocked.outputs.result != 'true'
run: |
echo "Checking for changesets marked as minor"
echo '::set-output name=found::false'
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
if grep -q "'astro': minor" "$file"; then
echo '::set-output name=found::true'
echo "$file has a minor release tag"
fi
done
- name: Add label
uses: actions/github-script@v6
if: steps.minor.outputs.found == 'true'
env:
issue_number: ${{ github.event.number }}
with:
script: |
github.rest.issues.addLabels({
issue_number: process.env.issue_number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['semver: minor']
});
- name: Change PR Status
uses: actions/github-script@v6
if: steps.minor.outputs.found == 'true'
env:
issue_number: ${{ github.event.number }}
with:
script: |
github.rest.pulls.createReview({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: process.env.issue_number,
event: 'REQUEST_CHANGES',
body: 'This PR is blocked because it contains a `minor` changeset. A reviewer will merge this at the next release if approved.'
});

View file

@ -1,50 +0,0 @@
name: Examples astro check
on:
workflow_dispatch:
push:
branches:
- main
merge_group:
pull_request:
paths:
- "examples/**"
- ".github/workflows/check.yml"
- "scripts/smoke/check.js"
- "packages/astro/src/@types/astro.ts"
env:
ASTRO_TELEMETRY_DISABLED: true
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
FORCE_COLOR: true
jobs:
check:
name: astro check
runs-on: ubuntu-latest
timeout-minutes: 7
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Setup PNPM
uses: pnpm/action-setup@v2
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Build
run: pnpm run build
- name: Status
run: git status
- name: astro check
run: pnpm run test:check-examples

View file

@ -1,250 +1,107 @@
name: CI
on:
workflow_dispatch:
push:
branches:
- main
merge_group:
pull_request:
paths-ignore:
- ".vscode/**"
- "**/*.md"
- ".github/ISSUE_TEMPLATE/**"
# Automatically cancel older in-progress jobs on the same branch
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request_target' && github.head_ref || github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
FORCE_COLOR: true
ASTRO_TELEMETRY_DISABLED: true
# 7 GiB by default on GitHub, setting to 6 GiB
# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
NODE_OPTIONS: --max-old-space-size=6144
- '.vscode/**'
- 'docs/**'
- 'examples/**'
- 'www/**'
jobs:
# Build primes out Turbo build cache and pnpm cache
build:
name: "Build: ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
timeout-minutes: 3
strategy:
matrix:
OS: [ubuntu-latest, windows-latest]
NODE_VERSION: [18]
fail-fast: true
os: [ubuntu-latest]
node_version: [12, 14, 16]
# TODO: uncomment this (Vite has trouble resolving imports on Windows)
# include:
# - os: windows-latest
# node_version: 14
fail-fast: false
env:
LANG: en-us
name: 'Test: node-${{ matrix.node_version }}, ${{ matrix.os }}'
steps:
# Disable crlf so all OS can share the same Turbo cache
# https://github.com/actions/checkout/issues/135
- name: Disable git crlf
run: git config --global core.autocrlf false
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v2
- name: Setup PNPM
uses: pnpm/action-setup@v2
- name: Setup node@${{ matrix.NODE_VERSION }}
uses: actions/setup-node@v3
- name: Set node version to ${{ matrix.node_version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.NODE_VERSION }}
cache: "pnpm"
node-version: ${{ matrix.node_version }}
cache: 'yarn'
- name: Debug
run: yarn versions
- name: Install dependencies
run: pnpm install
run: yarn install --frozen-lockfile --ignore-engines
# Only build in ubuntu as windows can share the build cache.
# Also only build in core repo as forks don't have access to the Turbo cache.
- name: Build Packages
if: ${{ matrix.os == 'ubuntu-latest' && github.repository_owner == 'withastro' }}
run: pnpm run build
- name: Build Astro
run: yarn build:all
- name: Test
run: yarn test
lint:
name: Lint
runs-on: ubuntu-latest
timeout-minutes: 5
needs: build
name: 'Lint: node-14, ubuntu-latest'
steps:
- name: Disable git crlf
run: git config --global core.autocrlf false
- name: Checkout
uses: actions/checkout@v3
- name: Setup PNPM
uses: pnpm/action-setup@v2
- name: Setup Node
uses: actions/setup-node@v3
- uses: actions/checkout@v2
with:
node-version: 18
cache: "pnpm"
fetch-depth: 0
- name: Set node version to 14
uses: actions/setup-node@v2
with:
node-version: 14
cache: 'yarn'
- name: Debug
run: yarn versions
- name: Install dependencies
run: pnpm install
run: yarn install --frozen-lockfile --ignore-engines
- name: Build Packages
run: pnpm run build
- name: Build
run: yarn build:all
- name: Lint
run: pnpm run lint
run: yarn lint
- name: Format Check
run: pnpm run format --check
# NOTE: temporarily disabled until `next` branch can build docs again
# smoke:
# runs-on: ubuntu-latest
# name: 'Smoke: node-14, ubuntu-latest'
# steps:
# - uses: actions/checkout@v2
# with:
# fetch-depth: 0
test:
name: "Test: ${{ matrix.os }} (node@${{ matrix.NODE_VERSION }})"
runs-on: ${{ matrix.os }}
timeout-minutes: 25
needs: build
strategy:
matrix:
OS: [ubuntu-latest]
NODE_VERSION: [18, 20.5.1]
include:
- os: macos-latest
NODE_VERSION: 18
- os: windows-latest
NODE_VERSION: 18.17.1
fail-fast: false
env:
NODE_VERSION: ${{ matrix.NODE_VERSION }}
steps:
- name: Disable git crlf
run: git config --global core.autocrlf false
# - name: Set node version to 14
# uses: actions/setup-node@v2
# with:
# node-version: 14
# cache: 'yarn'
- name: Checkout
uses: actions/checkout@v3
# - name: Debug
# run: yarn versions
- name: Setup PNPM
uses: pnpm/action-setup@v2
# - name: Install dependencies
# run: yarn install --frozen-lockfile --ignore-engines
- name: Setup node@${{ matrix.NODE_VERSION }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.NODE_VERSION }}
cache: "pnpm"
# - name: Build
# run: yarn build:all
- name: Install dependencies
run: pnpm install
# - name: "Smoke Test: Build 'docs'"
# run: yarn build
# working-directory: ./docs
- name: Build Packages
run: pnpm run build
- name: Test
run: pnpm run test
e2e:
name: "Test (E2E): ${{ matrix.os }} (node@${{ matrix.NODE_VERSION }})"
runs-on: ${{ matrix.os }}
timeout-minutes: 25
needs: build
strategy:
matrix:
OS: [ubuntu-latest, windows-latest]
NODE_VERSION: [18.17.1]
fail-fast: false
env:
NODE_VERSION: ${{ matrix.NODE_VERSION }}
steps:
- name: Disable git crlf
run: git config --global core.autocrlf false
- name: Checkout
uses: actions/checkout@v3
- name: Setup PNPM
uses: pnpm/action-setup@v2
- name: Setup node@${{ matrix.NODE_VERSION }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.NODE_VERSION }}
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Build Packages
run: pnpm run build
- name: Test
run: pnpm run test:e2e
smoke:
name: "Test (Smoke): ${{ matrix.os }} (node@${{ matrix.NODE_VERSION }})"
runs-on: ${{ matrix.os }}
timeout-minutes: 25
needs: build
strategy:
matrix:
OS: [ubuntu-latest, windows-latest]
NODE_VERSION: [18]
env:
NODE_VERSION: ${{ matrix.NODE_VERSION }}
steps:
- name: Disable git crlf
run: git config --global core.autocrlf false
- name: Checkout
uses: actions/checkout@v3
- name: Setup PNPM
uses: pnpm/action-setup@v2
- name: Setup node@${{ matrix.NODE_VERSION }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.NODE_VERSION }}
cache: "pnpm"
- name: Checkout docs
uses: actions/checkout@v3
with:
repository: withastro/docs
path: smoke/docs
- name: Install dependencies
run: pnpm install --no-frozen-lockfile
# Reset lockfile changes so that Turbo can reuse the old build cache
- name: Reset lockfile changes
run: git reset --hard
- name: Build Packages
run: pnpm run build
- name: Remove docs translations except for English and Korean
run: find smoke/docs/src/content/docs ! -name 'en' ! -name 'ko' -type d -mindepth 1 -maxdepth 1 -exec rm -rf {} +
- name: Check if docs changed
id: changes
uses: dorny/paths-filter@v2
with:
filters: |
docs:
- 'packages/integrations/*/README.md'
- 'packages/astro/src/@types/astro.ts'
- 'packages/astro/src/core/errors/errors-data.ts'
- name: Build autogenerated docs pages from current astro branch
if: ${{ steps.changes.outputs.docs == 'true' }}
run: cd smoke/docs && pnpm docgen && pnpm docgen:errors && pnpm docgen:integrations
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SOURCE_REPO: ${{ github.event.pull_request.head.repo.full_name || github.event.repository.full_name }}
SOURCE_BRANCH: ${{ github.head_ref || github.ref_name }}
- name: Test
run: pnpm run test:smoke
env:
SKIP_OG: true
PUBLIC_TWO_LANG: true
# - name: "Smoke Test: Build 'www'"
# run: yarn build
# working-directory: ./www

View file

@ -1,44 +0,0 @@
name: Cleanup cache
on:
schedule:
- cron: "0 11 * * *"
pull_request:
types:
- closed
jobs:
cleanup:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Cleanup caches older than 5 days
if: github.event_name == 'schedule'
uses: MyAlbum/purge-cache@v2
with:
max-age: 432000
# https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#force-deleting-cache-entries
- name: Cleanup on PR close
if: github.event_name == 'pull_request'
run: |
gh extension install actions/gh-actions-cache
REPO=${{ github.repository }}
BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge"
echo "Fetching list of cache key"
cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH -L 100 | cut -f 1 )
## Setting this to not fail the workflow while deleting cache keys.
set +e
echo "Deleting caches..."
for cacheKey in $cacheKeysForPR
do
gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm
done
echo "Done"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

24
.github/workflows/congratsbot.yml vendored Normal file
View file

@ -0,0 +1,24 @@
name: "Discord:congratsbot"
on:
push:
branches:
- main
jobs:
congrats:
name: "discord:congratsbot"
if: github.repository == 'snowpackjs/astro'
runs-on: ubuntu-latest
steps:
- id: setup
run: |
TRIMMED=$(echo "${{ github.event.commits[0].message }}" | sed '1!d;q')
echo "::set-output name=COMMIT_MSG::${TRIMMED}"
- name: Send a Discord notification when a PR is merged
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_CONGRATS }}
# DISCORD_AVATAR: ${{ github.event.pull_request.user.avatar_url }}
uses: Ilshidur/action-discord@0.3.2
with:
args: '**Sweet!** <${{ github.event.commits[0].author.name }}> just merged ["\"${{ steps.setup.outputs.COMMIT_MSG }}\""](<https://github.com/snowpackjs/astro/commits/main>) ```${{ github.event.commits[0].message }}```'

View file

@ -1,15 +1,30 @@
name: Format
name: 'Format Code'
on:
workflow_dispatch:
push:
branches:
- main
env:
node_version: 14
jobs:
prettier:
if: github.repository_owner == 'withastro'
uses: withastro/automation/.github/workflows/format.yml@main
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
command: "format:ci"
secrets: inherit
ref: ${{ github.head_ref }}
- uses: actions/setup-node@v2
with:
node-version: ${{ env.node_version }}
- run: yarn --frozen-lockfile --ignore-engines
env:
CI: true
- run: yarn lerna run build --scope @astrojs/parser
- run: yarn format
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: '[ci] yarn format'
branch: ${{ github.head_ref }}

View file

@ -1,30 +0,0 @@
name: Issue Labeled
on:
issues:
types: [labeled]
jobs:
reply-labeled:
if: github.repository == 'withastro/astro'
runs-on: ubuntu-latest
steps:
- name: remove triage
if: contains(github.event.label.description, '(priority)') && contains(github.event.issue.labels.*.name, 'needs triage')
uses: actions-cool/issues-helper@v3
with:
actions: "remove-labels"
token: ${{ secrets.GITHUB_TOKEN }}
issue-number: ${{ github.event.issue.number }}
labels: "needs triage"
- name: needs repro
if: github.event.label.name == 'needs repro'
uses: actions-cool/issues-helper@v3
with:
actions: "create-comment, remove-labels"
token: ${{ secrets.GITHUB_TOKEN }}
issue-number: ${{ github.event.issue.number }}
body: |
Hello @${{ github.event.issue.user.login }}. Please provide a [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) using a GitHub repository or [StackBlitz](https://astro.new). Issues marked with `needs repro` will be closed if they have no activity within 3 days.
labels: "needs triage"

View file

@ -1,18 +0,0 @@
name: Close Issues (needs repro)
on:
schedule:
- cron: "0 0 * * *"
jobs:
close-issues:
if: github.repository == 'withastro/astro'
runs-on: ubuntu-latest
steps:
- name: needs repro
uses: actions-cool/issues-helper@v3
with:
actions: "close-issues"
token: ${{ secrets.GITHUB_TOKEN }}
labels: "needs repro"
inactive-day: 3

View file

@ -1,23 +0,0 @@
name: Label issues
on:
issues:
types:
- reopened
- opened
jobs:
label_issues:
runs-on: ubuntu-latest
if: github.repository == 'withastro/astro'
permissions:
issues: write
steps:
- uses: actions/github-script@v6
with:
script: |
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ["needs triage"]
})

36
.github/workflows/issue.yml vendored Normal file
View file

@ -0,0 +1,36 @@
name: Auto Assign Issues to Project
on:
issues:
types: [opened]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
auto_assign_issues:
runs-on: ubuntu-latest
name: Auto-assign new issues to projects
steps:
- run: echo "${{github.event.issue.title}}"
- name: Assign Bugs to the Bug Tracker
uses: srggrs/assign-one-project-github-action@1.2.1
if: github.event.action == 'opened' && startsWith(github.event.issue.title, '🐛 BUG:')
with:
project: 'https://github.com/snowpackjs/astro/projects/2'
column_name: 'Needs Triage'
- name: Assign RFCs to the RFC Tracker
uses: srggrs/assign-one-project-github-action@1.2.1
if: github.event.action == 'opened' && startsWith(github.event.issue.title, '💡 RFC:')
with:
project: 'https://github.com/snowpackjs/astro/projects/3'
column_name: 'Discussing'
- name: Assign RFCs to the Docs Tracker
uses: srggrs/assign-one-project-github-action@1.2.1
if: github.event.action == 'opened' && startsWith(github.event.issue.title, '📘 DOC:')
with:
project: 'https://github.com/snowpackjs/astro/projects/5'
column_name: 'TODO'

View file

@ -1,16 +0,0 @@
# Automatically labels PRs based on the configuration file
# you are probably looking for 👉 `.github/labeler.yml`
name: Label PRs
on:
- pull_request_target
jobs:
triage:
runs-on: ubuntu-latest
if: github.repository_owner == 'withastro'
steps:
- uses: actions/labeler@v4
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
sync-labels: true

View file

@ -1,77 +0,0 @@
name: Main Checks
on:
workflow_dispatch:
push:
branches:
- main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Automatically cancel in-progress actions on the same branch
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
congrats:
name: congratsbot
if: ${{ github.repository_owner == 'withastro' && github.event.head_commit.message != '[ci] format' }}
uses: withastro/automation/.github/workflows/congratsbot.yml@main
with:
EMOJIS: '🎉,🎊,🧑‍🚀,🥳,🙌,🚀,👏,<:houston_golden:1068575433647456447>,<:astrocoin:894990669515489301>,<:astro_pride:1130501345326157854>'
secrets:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_CONGRATS }}
check_for_update:
name: Check for Updates
runs-on: ubuntu-latest
outputs:
run_job: ${{ steps.check_files.outputs.run_job }}
steps:
- uses: actions/checkout@v3
- name: Setup PNPM
uses: pnpm/action-setup@v2
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Check Modified
run: pnpm exec changeset status --output ./status.json
- name: Check Output
id: check_files
run: |
output=`echo $(cat status.json)`
if [[ $output = '{ "changesets": [], "releases": [] }' ]]
then
echo 'No changeset found'
echo "::set-output name=run_job::true"
else
echo 'changes found, push to latest skipped'
echo "::set-output name=run_job::false"
fi
update:
name: Update the latest branch
needs: check_for_update
if: needs.check_for_update.outputs.run_job == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Push
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: latest

View file

@ -1,13 +0,0 @@
name: Nightly
on:
schedule:
# Run every Monday at 12:00 UTC
- cron: "0 12 * * 1"
workflow_dispatch:
jobs:
lockfile:
if: github.repository_owner == 'withastro'
uses: withastro/automation/.github/workflows/lockfile.yml@main
secrets: inherit

View file

@ -1,73 +1,52 @@
name: Release
name: Changelog
on:
push:
branches:
- main
- "1-legacy"
- "2-legacy"
- next
defaults:
run:
shell: bash
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
FORCE_COLOR: true
jobs:
changelog:
name: Changelog PR or Release
if: ${{ github.repository_owner == 'withastro' }}
release:
name: Changelog
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
steps:
- uses: actions/checkout@v3
- name: Setup PNPM
uses: pnpm/action-setup@v2
- name: Setup Node
uses: actions/setup-node@v3
- name: Check out branch
uses: actions/checkout@v2
with:
node-version: 18
cache: "pnpm"
fetch-depth: 0 # This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits
- name: Set up Node.js 14.x
uses: actions/setup-node@v2
with:
node-version: 14.x
- name: Install dependencies
run: pnpm install
- name: Build Packages
run: pnpm run build
- name: Create Release Pull Request or Publish
id: changesets
uses: changesets/action@v1
with:
# Note: pnpm install after versioning is necessary to refresh lockfile
version: pnpm run version
publish: pnpm exec changeset publish
commit: "[ci] release"
title: "[ci] release"
run: yarn --frozen-lockfile --ignore-engines
env:
# Needs access to push to main
GITHUB_TOKEN: ${{ secrets.FREDKBOT_GITHUB_TOKEN }}
# Needs access to publish to npm
CI: true
- name: Create Release Pull Request or Publish to npm
id: changesets
uses: changesets/action@master
with:
# This expects you to have a script called release which does a build for your packages and calls changeset publish
publish: yarn release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Generate Notification
id: notification
if: steps.changesets.outputs.published == 'true'
run: message=$(node scripts/notify/index.js '${{ steps.changesets.outputs.publishedPackages }}') && echo ::set-output name=message::${message//$'\n'/'%0A'}
- name: Discord Notification
- name: Send a Discord notification if a publish happens
if: steps.changesets.outputs.published == 'true'
id: discord-notification
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
uses: Ilshidur/action-discord@0.3.2
with:
args: ${{ steps.notification.outputs.message }}
args: 'A new release just went out! [Release notes →](<https://github.com/snowpackjs/astro/releases/>)'
- name: push main branch to latest branch
if: steps.changesets.outputs.published == 'true'
id: git-push-latest
# Note: this will fail if "latest" and "main" have different commit history,
# which is a good thing! Also, don't push if in pre-release mode.
run: '(test -f .changeset/pre.json && echo "prerelease: skip pushing to latest branch.") || git push origin main:latest'

View file

@ -1,51 +0,0 @@
name: Scripts
on:
workflow_dispatch:
pull_request:
branches:
- "main"
paths:
- "packages/astro/src/runtime/client/**/*"
# Automatically cancel in-progress actions on the same branch
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request_target' && github.head_ref || github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash
jobs:
bundle:
name: Bundle Size
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Checkout Main into tmp
uses: actions/checkout@v2
with:
ref: main
path: main
- name: Setup PNPM
uses: pnpm/action-setup@v2
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Check Bundle Size
uses: actions/github-script@v6
with:
script: |
const { default: script } = await import('${{ github.workspace }}/.github/scripts/bundle-size.mjs')
await script({ github, context })

View file

@ -1,109 +0,0 @@
name: Create a Snapshot Release
on:
workflow_dispatch:
issue_comment:
types: [created]
defaults:
run:
shell: bash
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
FORCE_COLOR: true
jobs:
snapshot-release:
name: Create a snapshot release of a pull request
if: ${{ github.repository_owner == 'withastro' && github.event.issue.pull_request && startsWith(github.event.comment.body, '!preview') }}
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
issues: write
pull-requests: write
steps:
- name: "Check if user has admin access (only admins can publish snapshot releases)."
uses: "lannonbr/repo-permission-check-action@2.0.0"
with:
permission: "admin"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Extract the snapshot name from comment body
id: getSnapshotName
uses: actions/github-script@v6
with:
script: |
const splitComment = context.payload.comment.body.split(' ');
splitComment.length !== 2 && (github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: 'Invalid comment format. Expected: "!preview <one-word-snapshot-name>"',
}) || core.setFailed('Invalid comment format. Expected: "!preview <one-word-snapshot-name>"'));
return splitComment[1].trim();
result-encoding: string
- name: resolve pr refs
id: refs
uses: eficode/resolve-pr-refs@main
with:
token: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v3
with:
ref: ${{ steps.refs.outputs.head_ref }}
- name: Setup PNPM
uses: pnpm/action-setup@v2
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18
registry-url: "https://registry.npmjs.org"
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Build Packages
run: pnpm run build
- name: Bump Package Versions
id: changesets
run: |
pnpm exec changeset version --snapshot ${{ steps.getSnapshotName.outputs.result }} > changesets.output.txt 2>&1
echo ::set-output name=result::`cat changesets.output.txt`
env:
# Needs access to run the script
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Publish Release
id: publish
run: |
pnpm run release --tag next--${{ steps.getSnapshotName.outputs.result }} > publish.output.txt 2>&1
echo "Release complete"
cat publish.output.txt
echo ::set-output name=result::`cat publish.output.txt`
env:
# Needs access to publish to npm
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Pull Request Notification
uses: actions/github-script@v6
env:
MESSAGE: ${{ steps.publish.outputs.result }}
with:
script: |
console.log(process.env.MESSAGE);
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: '```\n' + process.env.MESSAGE + '\n```',
})

30
.github/workflows/stat.yml vendored Normal file
View file

@ -0,0 +1,30 @@
name: 'Collect Stats'
on:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '0 12 * * *'
env:
node_version: 14
jobs:
stat:
if: github.repository == 'snowpackjs/astro'
runs-on: ubuntu-latest
steps:
# Check out code using git
- uses: actions/checkout@v2
# Install Node 14
- uses: actions/setup-node@v1
with:
version: 14
- run: yarn install --frozen-lockfile --ignore-engines --ignore-scripts
- run: node scripts/stats/index.js
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: '[ci] collect stats'
branch: ${{ github.head_ref }}

View file

@ -1,51 +0,0 @@
name: Hosted tests
on:
schedule:
- cron: '0 0 * * 0'
env:
ASTRO_TELEMETRY_DISABLED: true
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
VERCEL_ORG_ID: ${{ secrets.VERCEL_TEST_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_TEST_PROJECT_ID }}
VERCEL_TOKEN: ${{ secrets.VERCEL_TEST_TOKEN }}
FORCE_COLOR: true
jobs:
test:
name: Run tests
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Setup PNPM
uses: pnpm/action-setup@v2
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Build Astro
run: pnpm turbo build --filter astro --filter @astrojs/vercel
- name: Build test project
working-directory: ./packages/integrations/vercel/test/hosted/hosted-astro-project
run:
pnpm run build
- name: Deploy to Vercel
working-directory: ./packages/integrations/vercel/test/hosted/hosted-astro-project
run:
pnpm dlx vercel --prod --prebuilt
- name: Test
run:
pnpm run test:e2e:hosts

54
.github/workflows/updatelatest.yml vendored Normal file
View file

@ -0,0 +1,54 @@
name: 'Update Latest from main'
on:
push:
branches:
- "main"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
update:
name: check for updates in .changeset
runs-on: ubuntu-latest
outputs:
run_job: ${{ steps.check_files.outputs.run_job }}
steps:
- name: checkout git branch
uses: actions/checkout@v2
- name: Install all dependencies
run: yarn
- name: check modified files
run: npx changeset status --output ./status.json
- name: check output
id: check_files
run: |
output=`echo $(cat status.json)`
if [[ $output = '{ "changesets": [], "releases": [] }' ]]
then
echo 'No changeset found'
echo "::set-output name=run_job::true"
else
echo 'changes found, push to latest skipped'
echo "::set-output name=run_job::false"
fi
update_latest_branch:
name: Update the latest branch
needs: update
if: needs.update.outputs.run_job == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Push
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: latest

25
.gitignore vendored
View file

@ -3,35 +3,14 @@ dist/
*.tsbuildinfo
.DS_Store
.vercel
.netlify
_site/
scripts/smoke/*-main/
scripts/memory/project/src/pages/
benchmark/projects/
benchmark/results/
*.log
package-lock.json
.turbo/
.eslintcache
.pnpm-store
# ignore top-level vscode settings
/.vscode/settings.json
# .vscode files other than at top-level
**/.vscode
# do not commit .env files or any files that end with `.env`
*.env
packages/astro/src/**/*.prebuilt.ts
!packages/astro/vendor/vite/dist
packages/integrations/**/.netlify/
# exclude IntelliJ/WebStorm stuff
.idea
# ignore content collection generated files
packages/**/test/**/fixtures/**/.astro/
packages/**/test/**/fixtures/**/env.d.ts
packages/**/e2e/**/fixtures/**/.astro/
packages/**/e2e/**/fixtures/**/env.d.ts
examples/**/.astro/
examples/**/env.d.ts

View file

@ -1,23 +1,15 @@
---
# Commands to start on workspace startup
tasks:
- before: |
# Get latest pnpm version, in case the custom docker image was not updated
# Until this issue gets resolved - https://github.com/gitpod-io/gitpod/issues/12551
curl -fsSL https://get.pnpm.io/install.sh | SHELL=`which bash` bash -
init: |
pnpm install
pnpm run build
command: |
.gitpod/gitpod-setup.sh
- init: yarn install
command: yarn build
vscode:
extensions:
- astro-build.astro-vscode
# TODO Once astro is on [vsx](https://open-vsx.org/), we should be able to specify it as an extension as well!
# https://www.gitpod.io/docs/vscode-extensions
- https://marketplace.visualstudio.com/_apis/public/gallery/publishers/astro-build/vsextensions/astro-vscode/0.7.13/vspackage
- esbenp.prettier-vscode
- dbaeumer.vscode-eslint
ports:
- port: 4321
onOpen: open-preview
github:
prebuilds:
# enable for the master/default branch (defaults to true)

View file

@ -1,30 +0,0 @@
#!/usr/bin/env bash
# Convert context URL to an array
mapfile -t CONTEXT_URL_ITEMS < <(echo "$GITPOD_WORKSPACE_CONTEXT_URL" | tr '/' '\n')
# Install latest pnpm
curl -fsSL https://get.pnpm.io/install.sh | SHELL=`which bash` bash -
# Check if Gitpod started from a specific example directory in the repository
if [ "${CONTEXT_URL_ITEMS[7]}" = "examples" ]; then
EXAMPLE_PROJECT=${CONTEXT_URL_ITEMS[8]}
# Check it Gitpod started with $ASTRO_NEW environment variable
elif [ -n "$ASTRO_NEW" ]; then
EXAMPLE_PROJECT="$ASTRO_NEW"
# Otherwise, set the default example project - 'starter'
else
EXAMPLE_PROJECT="starter"
fi
# Wait for VSCode to be ready (port 23000)
gp ports await 23000 > /dev/null 2>&1
echo "Loading example project: $EXAMPLE_PROJECT"
# Go to the requested example project
cd "$GITPOD_REPO_ROOT"/examples/"$EXAMPLE_PROJECT" || exit
# Open the main page in VSCode
code src/pages/index.astro
# Start Astro
pnpm start

14
.npmrc
View file

@ -1,14 +0,0 @@
# Important! Never install `astro` even when new version is in registry
prefer-workspace-packages=true
link-workspace-packages=true
save-workspace-protocol=false # This prevents the examples to have the `workspace:` prefix
auto-install-peers=false
# `github-slugger` is used by `vite-plugin-markdown-legacy`.
# Temporarily hoist this until we remove the feature.
public-hoist-pattern[]=github-slugger
# Vite's esbuild optimizer has trouble optimizing `@astrojs/lit/client-shim.js`
# which imports this dependency.
public-hoist-pattern[]=@webcomponents/template-shadowroot
# There's a lit dependency duplication somewhere causing multiple Lit versions error.
public-hoist-pattern[]=*lit*

2
.nvmrc
View file

@ -1 +1 @@
18.14.1
14.16.1

View file

@ -1,18 +1,7 @@
# Benchmark artifacts
benchmark/projects/
benchmark/results/
# Deep Directories
**/dist
**/smoke
**/node_modules
**/fixtures
**/vendor
**/.vercel
# Directories
.github
.changeset
# Files
pnpm-lock.yaml
README.md

Some files were not shown because too many files have changed in this diff Show more