Skip to content

docs(website): document /changelog dependency on the repo-root tree#52

Merged
vivek7405 merged 1 commit into
mainfrom
chore/website-trigger-rebuild
May 21, 2026
Merged

docs(website): document /changelog dependency on the repo-root tree#52
vivek7405 merged 1 commit into
mainfrom
chore/website-trigger-rebuild

Conversation

@vivek7405
Copy link
Copy Markdown
Collaborator

Why

PR #51 merged the Dockerfile fix that ships the changelog/ tree into the production image, but the website service on Railway didn't auto-deploy from it because its watch paths are scoped to website/**. Since #51 only touched the repo-root Dockerfile, the merge didn't trigger a new website build. The dashboard "Redeploy" button just re-ran the prior commit (#50). https://webjs.dev/changelog still shows "No entries yet."

This commit touches a website/ file (so Railway's watch path matches) and pulls in everything on main (including the Dockerfile fix) via a fresh build from HEAD. The actual content of the change is a useful note documenting the coupling between website/app/changelog/page.ts and the repo-root changelog/ tree, so future agents don't break the link.

Follow-up

Worth considering: relax the per-service watch paths so root-level changes (Dockerfile, package.json, etc.) trigger redeploys for every service. Filed mentally; happy to do that in a separate PR if you want.

Test plan

  • After merge, Railway should auto-deploy the website service from main HEAD, picking up the COPY changelog ./changelog Dockerfile line.
  • https://webjs.dev/changelog should render the per-package per-version entries.

Trigger commit: PR #51 (Dockerfile fix that copies the changelog/
tree into the production image) merged to main but the website
service did not auto-deploy from it, because the only changed file
sits at the repo root and the website's Railway service has watch
paths restricted to website/**. The fix never reached webjs.dev.

Add a Layout-section note recording the coupling between
website/app/changelog/page.ts and the repo-root changelog/ tree
plus the Dockerfile COPY that ships it. The note is genuinely
useful agent context; the side effect is that it forces a fresh
auto-deploy from main HEAD, which pulls in the Dockerfile change
and finally renders the entries on https://webjs.dev/changelog.
@vivek7405 vivek7405 merged commit 00bcff1 into main May 21, 2026
@vivek7405 vivek7405 deleted the chore/website-trigger-rebuild branch May 21, 2026 14:19
vivek7405 added a commit that referenced this pull request May 21, 2026
…ocs (#53)

* chore(deploy): config-as-code railway.json with cross-service watchPatterns

Add a repo-root railway.json that captures the build (DOCKERFILE
builder, Dockerfile path) and a deploy restart policy. The
watchPatterns field is explicitly set to ["**/*"] so every commit
to main triggers a redeploy of every service.

Background: the 4 Railway services (@webjskit/website, /docs,
/ui-website, @webjskit-examples/blog) all build from the same
repo and the same Dockerfile, but each had its own dashboard-set
watch-path filter scoped to its own subdir. A root-level change
(e.g. Dockerfile, package.json, changelog/) did not trigger the
services whose subdir was untouched, which is how PR #51 (a
Dockerfile-only fix) reached only ui-website and left
webjs.dev/changelog broken until #52.

Note: Railway dashboard-set values take precedence over
config-as-code. After this merges, clear "Watch Paths" in the
dashboard for each of the 4 services (Service → Settings →
Source → Watch Paths → clear the list, save), so railway.json
takes over. Once that is done, future cross-service infra
changes (Dockerfile, compose.yaml, root package.json, etc.)
trigger redeploys for all four services automatically.

* chore(deploy): drop the global watchPatterns from railway.json

Per-service watch paths cannot be expressed in a single repo-root
railway.json (the file applies to every service that points at it
and there is no per-service override in the JSON shape). Drop the
**/* pattern from the file and move the per-service tables into
the PR description for paste-into-dashboard use. The remaining
build + deploy fields stay because they really are shared by all
four services.
vivek7405 added a commit that referenced this pull request May 21, 2026
)

Trigger commit: PR #51 (Dockerfile fix that copies the changelog/
tree into the production image) merged to main but the website
service did not auto-deploy from it, because the only changed file
sits at the repo root and the website's Railway service has watch
paths restricted to website/**. The fix never reached webjs.dev.

Add a Layout-section note recording the coupling between
website/app/changelog/page.ts and the repo-root changelog/ tree
plus the Dockerfile COPY that ships it. The note is genuinely
useful agent context; the side effect is that it forces a fresh
auto-deploy from main HEAD, which pulls in the Dockerfile change
and finally renders the entries on https://webjs.dev/changelog.
vivek7405 added a commit that referenced this pull request May 21, 2026
…ocs (#53)

* chore(deploy): config-as-code railway.json with cross-service watchPatterns

Add a repo-root railway.json that captures the build (DOCKERFILE
builder, Dockerfile path) and a deploy restart policy. The
watchPatterns field is explicitly set to ["**/*"] so every commit
to main triggers a redeploy of every service.

Background: the 4 Railway services (@webjskit/website, /docs,
/ui-website, @webjskit-examples/blog) all build from the same
repo and the same Dockerfile, but each had its own dashboard-set
watch-path filter scoped to its own subdir. A root-level change
(e.g. Dockerfile, package.json, changelog/) did not trigger the
services whose subdir was untouched, which is how PR #51 (a
Dockerfile-only fix) reached only ui-website and left
webjs.dev/changelog broken until #52.

Note: Railway dashboard-set values take precedence over
config-as-code. After this merges, clear "Watch Paths" in the
dashboard for each of the 4 services (Service → Settings →
Source → Watch Paths → clear the list, save), so railway.json
takes over. Once that is done, future cross-service infra
changes (Dockerfile, compose.yaml, root package.json, etc.)
trigger redeploys for all four services automatically.

* chore(deploy): drop the global watchPatterns from railway.json

Per-service watch paths cannot be expressed in a single repo-root
railway.json (the file applies to every service that points at it
and there is no per-service override in the JSON shape). Drop the
**/* pattern from the file and move the per-service tables into
the PR description for paste-into-dashboard use. The remaining
build + deploy fields stay because they really are shared by all
four services.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant