Repository navigation
ci: publish @flatfilers/alchemy to GitHub Packages - #15
Open
agustiobvious wants to merge 2 commits into
Open
agustiobvious wants to merge 2 commits into
agustiobvious wants to merge 2 commits into
Conversation
Waits for a certificate to reach ISSUED, so a cert created without a Route53 hostedZoneId (external DNS: Vercel, Cloudflare, …) can be validated by the caller writing the domain validation records first and then blocking on this resource — the aws_acm_certificate_validation pattern. Exports regionOfCertificateArn/withCertRegion from Certificate.ts for reuse, and registers the provider alongside ACM.Certificate.
Internal consumers need fork-only resources before they land upstream. The package is a monorepo member (unscoped name, workspace:/catalog: deps), so the publish step rewrites the scope to @flatfilers/alchemy and resolves every internal dependency to its published npm version — failing loudly if any is not on the public registry rather than publishing something uninstallable. The checked-in manifest stays upstream-compatible.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Lets internal consumers depend on fork-only resources (the Vercel provider, ACM CertificateValidation) before they land upstream, without waiting for an npm release.
Why it is not a plain publish
packages/alchemyis a monorepo member: its name is unscoped (GitHub Packages requires the repository owner's scope) and its dependencies areworkspace:*/catalog:references a consumer's package manager cannot resolve — 53 of them acrossdependenciesandpeerDependencies. Publishing as-is yields an uninstallable package.What this adds
.github/workflows/publish-alchemy-package.yml— manual dispatch or push tomaintouchingpackages/alchemy/**; builds, prepares, publishes tonpm.pkg.github.comwithpackages: write.packages/alchemy/scripts/rewrite-workspace-deps.mjs— rewrites the name to@flatfilers/alchemy, stamps a version (<base>-fork.<short-sha>by default), and resolves every internal reference to its published npm version. It fails loudly if any internal dependency is not on the public registry rather than publishing something broken.Verified locally: 53 references rewritten, zero left unresolved (
@alchemy.run/*→^2.0.0-beta.83,@distilled.cloud/*→^1.0.0-rc.15,@alchemy.run/sigil→^0.1.0-alpha.1). The checked-in manifest is untouched, so upstream merges stay clean.Consumer side (Obvious)
then depend on
@flatfilers/alchemy— subpath exports (/Vercel,/AWS) are unchanged by the scope. Needs a token withread:packagesin the consuming repo's secrets.