Repository navigation
Conversation
Railway reads only the railway.json at the repo root. This copy, left over from the first Railway setup, starts a `mysite.wsgi` module that doesn't exist. `railway config migrate` treats it as a second service, so it has to go before moving to Infrastructure as Code. Assistant-model: Claude Code Claude-Session: https://claude.ai/code/session_013jv3p3hyCW4rgGJXZMQU13
Railway's build docs only cover Railpack now, and Nixpacks stops at
Python 3.13, so Railpack is the only route to newer Python. The start
command and Python version stay the same; only the builder changes.
Railpack copies just requirements.txt before `pip install`, for layer
caching, but ours includes requirements/production.txt, so the install
failed. railpack.json copies the requirements folder ahead of Railpack's
own install commands ("..." keeps them as they are).
Built and run locally with the Railpack CLI: the start command,
pages, cache and static files work, and the .ics feed is byte-identical
to the current build apart from DTSTAMP.
Assistant-model: Claude Code
Claude-Session: https://claude.ai/code/session_013jv3p3hyCW4rgGJXZMQU13
This branch has not been deployed
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.
Step 1 of moving off deprecated Railway tooling. It switches only the builder: Python stays 3.13 and the start command is unchanged. Railway's build docs now only cover Railpack, and Nixpacks tops out at Python 3.13, so this is also the prerequisite for Python 3.14.
Changes
railway.json:"builder": "RAILPACK". Nothing else in the file changes.railpack.json. Railpack's install step copies onlyrequirements.txtbeforepip install, for layer caching. Ours just does-r requirements/production.txt, so the build failed in rehearsal withCould not open requirements file. Nixpacks never hit this because it copied the whole repo first. The fix copies therequirements/folder ahead of Railpack's own install commands;"..."keeps them as generated.my_hebrew_dates/railway.json. It's leftover from the first Railway setup, starts a nonexistentmysite.wsgi, and Railway never read it, because only the root file counts.railway config migratewas treating it as a second service.Local rehearsal (Railpack CLI 0.40.1 + BuildKit in podman)
config.wsgi. Python 3.13 comes from.python-version.railpack.jsonand fails without it.railway.jsonand production settings, against local Postgres and Valkey. migrate, collectstatic, compress and gunicorn on$PORTall succeed..icsfeed (cold and from the Redis cache), login, signup, admin login and static files all return 200, with no errors in the log..icsfeed is byte-identical to the same code outside the image, apart fromDTSTAMP(the current time), with and without an alarm. Subscribers see no change.After merge (checked with read-only Railway logs)
Rollback: revert this PR, or redeploy the previous deployment in Railway.
Still to come
railway.jsonto.railway/railway.tsbefore 2026-12-01, when Railway stops readingrailway.json. That step also needs MHD-web's builder setting changed to Railpack, because todayrailway.jsonoverrides the service's storedNIXPACKSvalue.https://claude.ai/code/session_013jv3p3hyCW4rgGJXZMQU13