docs(website): document /changelog dependency on the repo-root tree#52
Merged
Conversation
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.
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.
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.
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 towebsite/**. Since #51 only touched the repo-rootDockerfile, 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 onmain(including the Dockerfile fix) via a fresh build from HEAD. The actual content of the change is a useful note documenting the coupling betweenwebsite/app/changelog/page.tsand the repo-rootchangelog/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
mainHEAD, picking up theCOPY changelog ./changelogDockerfile line.