Repository navigation
Make forge the documented interface - #12
Merged
Merged
Conversation
The installer signed off with 'docker compose up -d' -- the command forge exists to replace -- so forge help was never discovered. That line was in install_cert.sh, which runs last, not install.sh. Every docker compose instruction in both READMEs is now a forge command. The two mentions left are prose: the sentence saying forge wraps compose, and the one describing what CI validates. forge logs grew to make that possible. It followed one PHP container, so troubleshooting still pointed at docker compose logs -- naming a container is not something you can do before you know what broke. No argument now means every service; an argument can be a service or a version. Also realigns the two READMEs, which had drifted further than the heading list showed: English had no xdebug commands, Spanish was missing three troubleshooting entries. Both now carry the union in the same order. A lint step greps for the instructions coming back.
The assertions sat in 'the forge command works', which runs before the stack is built, so 'forge logs' had nothing to show. They now live after the welcome page is confirmed served, in a step whose comment says why it has to. They also asserted the wrong thing. 'apachedev appears in the output' passes even with a stopped container -- compose keeps logs for those -- and would have passed if the command regressed to following one container. It now counts distinct services: at least three with no argument, exactly one when a service is named. Verified by putting the old single-container behaviour back and watching the step fail with 'named 1 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.
Tasks 34 and 35, together — they are one problem.
The installer signed off with the command
forgeexists to replace, soforge helpwas never discovered:That line was in
install_cert.sh, which the installer calls last —install.shalready ended withforge start.Every
docker composeinstruction in both READMEs is now aforgecommand. Two mentions remain, and both are prose rather than instructions: the sentence sayingforgewraps compose, and the one describing what CI validates.Task 38 was done first so this pass had no exception to write around.
README.mdused to say "Profiles are a compose feature, so this one stays adocker composecommand" — that sentence is gone, and the nginx dance is one command:One command had to grow
forge logsfollowed a single PHP container, so troubleshooting still pointed atdocker compose logs— and naming a container is not something you can do before you know what broke.Validated against plain
docker compose config --services, notcompose_with_env, which clearsCOMPOSE_PROFILESand would rejectmailpit.The READMEs had drifted further than the headings showed
The
##sections matched, which is what had been checked. Inside them: English had noxdebugcommands at all; Spanish was missing three troubleshooting entries and had no subsection for its command block. Both now carry the union, in the same order, so they are translations rather than variants.Also switched where the READMEs called scripts directly —
forge dns setup|status|test|remove,forge certs— each noting the script still works. And the stale "Aliases not working" entry becameforge: command not found, which is what people actually hit: the aliases it referred to were removed whenforgereplaced them.Guarded
A lint step greps both READMEs for
docker compose up|logs|stop|--profile|buildand fails. Verified locally that it fails when a violation is added, not just that it passes today.Both changed CI steps were run verbatim against a local stack first, using the harness from #11.