Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why is CI failing?
Stencil has experimental support for Deno, and as such needs its dependencies during the build process. Similar to running
npm ci
, we would pull our dependencies from Deno. Something has changed, although I can't pinpoint it well, where we can't pull the deps we need reliably.What does this PR do?
This PR takes a 'fresh enough' cache of our Deno dependencies, and vendors them under
scripts/build/deno-deps
. I say 'fresh enough' because it's hard to reliably pull these dependencies locally if one were to bust their cache, so I'm using my 'best known' version of things here.Commit Message
add deno source files (vendor them) for more reproducible builds. these
files are being committed to the repo to help stabilize the CI process,
which as been failing for 24 hours.
the stencil team still considers deno to be experimental, this commit
does not mean to imply further development on deno support
FAQ
Is vendoring these a bad idea?
I'd argue no. Although running
npm install
ornpm ci
with NPM/node and relying onpackage-lock.json
to create reproducible builds, Deno does not take this approach. The suggestion for production builds is to do something very close to what I have hereWhy aren't we using
deno cache
? Wouldn't that be a better alternative?It probably would be better to use
deno cache
. I did attempt this by runningDENO_DIR=./src/sys/deno/deno-deps deno cache --unstable src/sys/deno/deps.ts
, which effectively downloads those dependencies for you. I was able to download those files successfully. BUT! This had two issues:What Risk are we Assuming?
That we could break existing Deno users, although I don't think there's conclusive evidence Deno support really works ATM
This PR also assumes that my fresh enough cache is fresh. If someone wants to double check, we could have them copy their
scripts/build/deno-cache
off to the side, then pull this branch, then replace what I have here. Any diff could/should be discussed. FWIW, I did a diff of two stencil directories I had, and didn't see any diffsWhat should follow this PR?