Repository navigation
feat!: deploy and manage frontends in local development - #297
Conversation
e139ce9 to
752c42d
Compare
subnetmarco
left a comment
There was a problem hiding this comment.
Looks good. The local tree reuses the cloud subcommands, and the domain/routes refusals follow the existing cloud-only pattern. The local-mode E2E covers the whole lifecycle, including a scoped NEXT_PUBLIC_* value reaching the build. Because of bump-minor-pre-major, feat! only bumps to 0.45.0, which seems right for retiring a hidden alias.
Two small things:
docs/project-configuration.md: the local path ends on the cloud config command (see the inline comment).- Optional: a script that still uses the old alias, run with no local server, gets the generic "run
volcano start" error. A hint namingvolcano cloud frontends ...on that error would make the break self-explanatory. The deprecation warning has been out for a while, so this is fine to skip.
9f1445b to
16ae1d9
Compare
752c42d to
eb05e1d
Compare
|
Fixed the |
swkeever
left a comment
There was a problem hiding this comment.
Approving. Making root frontends local matches the other resource commands, and the break is documented in the footer, PR body, and docs. Local frontend support is on hosting main, and localmode-e2e passed against the nightly image.
Merge order: land #296 on main first, then retarget this PR to main before squashing. If it's squashed into refactor/deploy-entrypoints, the feat! title disappears into #296's refactor: commit and release-please won't record the breaking change or bump the version.
Non-blocking:
- With
volcano startrunning, a script still on the old alias now deploys, lists, or deletes local frontends and exits 0. Deploy output doesn't say "local" for a new frontend. The no-server error points tocloud, but this case gets no signal. A one-line stderr note naming the target on localfrontends deploywould cover it. frontends delete --helpin the local tree still says "Delete a frontend from the current cloud project." (internal/cmd/frontends/delete.go:31).- Follow-up: volcano-skills
AGENTS.md(~L307) and its copies in volcano-agentic-plugins still callvolcano frontends ...a deprecated alias.
16ae1d9 to
1954160
Compare
eb05e1d to
f72d573
Compare
"volcano frontends" now targets the local development server like the other root resource commands: deploy, list, get, redeploy, delete, and logs. The local server already builds and serves frontends at <id>.frontends.localhost:8080; the CLI had no way to reach it. Custom domains and function routes stay cloud commands. Locally they refuse and name "volcano cloud frontends ..." (and volcano-config.yaml for routes). BREAKING CHANGE: "volcano frontends ..." was a hidden, deprecated alias for "volcano cloud frontends ...". It now acts on the local development server. Use "volcano cloud frontends ..." for cloud frontends. Co-authored-by: Cursor <cursoragent@cursor.com>
…ploy target Co-authored-by: Cursor <cursoragent@cursor.com>
f72d573 to
6f515f4
Compare
Summary
Second of three stacked PRs for
volcano deploy; based on PR1.volcano frontendsnow targets the local development server:deploy,list,get,redeploy,delete,logs, androutes. The local server already builds and serves frontends at<id>.frontends.localhost:8080, but the CLI had no way to reach it.frontends deploynotes on stderr that it deploys to local development and namesvolcano cloud frontends deploy, so a script still on the old alias sees the target changefrontends deployprints the site URL. A new frontend has no URL until its first build finishes, so it prints thefrontends getcommand that shows it instead. Cloud output is unchanged.volcano cloud frontends domain ....docs/frontends.mdanddocs/project-configuration.mddescribe both modesBreaking:
volcano frontends ...was a hidden, deprecated alias forvolcano cloud frontends .... It now acts on the local server; scripts that relied on the alias must usevolcano cloud frontends ....Merge order: land #296 on
mainfirst, then retarget this PR tomainbefore squashing, so thefeat!title reachesmainand release-please records the breaking change.Verification
make lintgo test ./...kong/volcano:local-nightly. The frontends scenario deploys a Next.js app locally, checks the URL hint, serves it, and redeploys it. It reads the build logs (assertingnext build), creates a function route, fetches it through the frontend, deletes the route, and deletes the frontend.go test ./...on its own, without PR3