Include Garage in slug init dev environment #252

Merged
erik merged 1 commit from fix/task-a01397b1-slug-init-garage-dev-env into main 2026-07-08 16:16:48 -05:00
Owner

Summary

  • Adds standalone Garage dev-environment files to generated Slugkit sites: docker-compose.yml, garage.toml, and scripts/setup-garage.sh.
  • Updates generated Procfile.dev and Makefile so make dev starts Garage alongside the app/CSS watcher and make garage-setup configures the local media bucket.
  • Updates generated .env.example and README docs for local Garage media setup.
  • Adds slug init output checks so Garage files/config are covered.
  • Keeps template distribution aligned with the zip-artifact model; no @evcraddock/slug-template package/version bump is involved.

Verification

  • npm test --workspace @evcraddock/slug-cli -- commands.test.ts
  • npm test --workspace @slugkit/template-site -- src/__tests__/dev-environment.test.ts src/api/__tests__/routes.test.ts
  • Generated temp site inspection for docker-compose.yml, garage.toml, scripts/setup-garage.sh, Procfile.dev, Makefile, .env.example, and README Garage references
  • ./scripts/pre-pr.sh

Task: #task-a01397b1

## Summary - Adds standalone Garage dev-environment files to generated Slugkit sites: `docker-compose.yml`, `garage.toml`, and `scripts/setup-garage.sh`. - Updates generated `Procfile.dev` and `Makefile` so `make dev` starts Garage alongside the app/CSS watcher and `make garage-setup` configures the local media bucket. - Updates generated `.env.example` and README docs for local Garage media setup. - Adds `slug init` output checks so Garage files/config are covered. - Keeps template distribution aligned with the zip-artifact model; no `@evcraddock/slug-template` package/version bump is involved. ## Verification - `npm test --workspace @evcraddock/slug-cli -- commands.test.ts` - `npm test --workspace @slugkit/template-site -- src/__tests__/dev-environment.test.ts src/api/__tests__/routes.test.ts` - Generated temp site inspection for `docker-compose.yml`, `garage.toml`, `scripts/setup-garage.sh`, `Procfile.dev`, `Makefile`, `.env.example`, and README Garage references - `./scripts/pre-pr.sh` Task: #task-a01397b1
fix: include garage in initialized sites
All checks were successful
CI / build-lint-test (pull_request) Successful in 57s
746ad4f082
Task: #task-a01397b1
Author
Owner

Review summary

PR #252 fixes generated-site local media setup by including Garage in the initialized site's dev environment and adding setup/docs/tests for the generated files.

Acceptance criteria

  • Fresh slug init output includes Garage/S3-compatible dev-environment service configuration — generated sites now include docker-compose.yml, garage.toml, scripts/setup-garage.sh, and a docker: process in Procfile.dev.
  • Generated Makefile, Procfile.dev, docker-compose.yml, and env example files work together for local media storage setup — make dev starts Docker Compose via Procfile, make garage-setup runs the setup script, and .env.example includes Garage/S3 variables.
  • Generated documentation explains how initialized sites configure and use local Garage for media storage — README now documents make garage-setup, restart flow, and local Garage behavior.
  • Existing in-repo template development still works with make dev — root dev setup is preserved; template-site dev environment tests and full pre-PR passed.
  • Tests or snapshot-style checks cover the generated dev-environment files so this does not regress — CLI init test now checks generated Compose/Garage/Makefile/Procfile/env/docs content.
  • The fix preserves existing generated-site behavior outside the Garage/dev-storage setup — changes are limited to dev environment/media storage files and package version bumps.

Verification evidence

  • Local ./scripts/pre-pr.sh passed.
  • Forgejo CI run #377 passed.
  • Temp slug init output inspection confirmed generated Garage files and references.
  • Package dry-runs passed for @evcraddock/slug-template@0.1.4 and @evcraddock/slug-cli@0.6.4.

Blocking issues

None.

Verdict

Approved for merge. Human merge approval still required.

### Review summary PR #252 fixes generated-site local media setup by including Garage in the initialized site's dev environment and adding setup/docs/tests for the generated files. ### Acceptance criteria - [x] Fresh `slug init` output includes Garage/S3-compatible dev-environment service configuration — generated sites now include `docker-compose.yml`, `garage.toml`, `scripts/setup-garage.sh`, and a `docker:` process in `Procfile.dev`. - [x] Generated `Makefile`, `Procfile.dev`, `docker-compose.yml`, and env example files work together for local media storage setup — `make dev` starts Docker Compose via Procfile, `make garage-setup` runs the setup script, and `.env.example` includes Garage/S3 variables. - [x] Generated documentation explains how initialized sites configure and use local Garage for media storage — README now documents `make garage-setup`, restart flow, and local Garage behavior. - [x] Existing in-repo template development still works with `make dev` — root dev setup is preserved; template-site dev environment tests and full pre-PR passed. - [x] Tests or snapshot-style checks cover the generated dev-environment files so this does not regress — CLI init test now checks generated Compose/Garage/Makefile/Procfile/env/docs content. - [x] The fix preserves existing generated-site behavior outside the Garage/dev-storage setup — changes are limited to dev environment/media storage files and package version bumps. ### Verification evidence - Local `./scripts/pre-pr.sh` passed. - Forgejo CI run #377 passed. - Temp `slug init` output inspection confirmed generated Garage files and references. - Package dry-runs passed for `@evcraddock/slug-template@0.1.4` and `@evcraddock/slug-cli@0.6.4`. ### Blocking issues None. ### Verdict Approved for merge. Human merge approval still required.
erik force-pushed fix/task-a01397b1-slug-init-garage-dev-env from 746ad4f082
All checks were successful
CI / build-lint-test (pull_request) Successful in 57s
to 1277d5fede
All checks were successful
CI / build-lint-test (pull_request) Successful in 53s
2026-07-08 16:01:07 -05:00
Compare
Author
Owner

Review summary

Approved.

Acceptance criteria

  • Fresh slug init output includes Garage/S3-compatible dev-environment service configuration.
  • Generated Makefile, Procfile.dev, docker-compose.yml, and env example files work together for local media storage setup.
  • Generated documentation explains how initialized sites configure and use local Garage for media storage.
  • Existing in-repo template development still works with make dev.
  • Tests cover the generated dev-environment files so this does not regress.
  • The fix preserves existing generated-site behavior outside the Garage/dev-storage setup.

Blocking issues

None.

Warnings

None.

Validation reviewed

  • PR CI: build-lint-test success (#381)
  • Local validation reported in PR: focused CLI/template tests, generated-site inspection, and ./scripts/pre-pr.sh

Final verdict

Approved.

## Review summary Approved. ## Acceptance criteria - [x] Fresh `slug init` output includes Garage/S3-compatible dev-environment service configuration. - [x] Generated `Makefile`, `Procfile.dev`, `docker-compose.yml`, and env example files work together for local media storage setup. - [x] Generated documentation explains how initialized sites configure and use local Garage for media storage. - [x] Existing in-repo template development still works with `make dev`. - [x] Tests cover the generated dev-environment files so this does not regress. - [x] The fix preserves existing generated-site behavior outside the Garage/dev-storage setup. ## Blocking issues None. ## Warnings None. ## Validation reviewed - PR CI: `build-lint-test` success (#381) - Local validation reported in PR: focused CLI/template tests, generated-site inspection, and `./scripts/pre-pr.sh` ## Final verdict Approved.
erik merged commit e6b1e139cd into main 2026-07-08 16:16:48 -05:00
erik deleted branch fix/task-a01397b1-slug-init-garage-dev-env 2026-07-08 16:16:48 -05:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
erik/slugkit!252
No description provided.