Skip to content

chore: add a Makefile for common development tasks - #2144

Merged
netomi merged 2 commits into
mainfrom
chore/dev-makefile
Sep 3, 2026
Merged

netomi merged 2 commits into
mainfrom
chore/dev-makefile

Conversation

@netomi

@netomi netomi commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Adds a root Makefile with the three things a local setup needs running. They are meant for three terminals: dev-env holds the containers, server and webui run the two applications against them and stay in the foreground so they pick up code changes.

$ make
  dev-env        Start the containers the server and web UI need (Ctrl-C stops them)
  dev-env-down   Stop those containers and remove them
  help           Show the available targets
  server         Run the registry server on http://localhost:8080
  webui          Run the web UI on http://localhost:3000

Targets

Target Runs
dev-env docker compose --profile db --profile valkey --profile valkey-admin --profile minio up
dev-env-down the same profiles, down
server cd server && ./scripts/generate-properties.sh && ./gradlew runServer
webui cd webui && yarn install && yarn dev

Notes on the two that are not a single command:

  • server runs generate-properties.sh first because runServer needs application-ovsx.properties to exist. The script exits early when it is already there, so it costs nothing on repeat runs.
  • webui runs yarn install first, mirroring what the compose webui service already does (yarn install --immutable && yarn dev).

The profile list lives in one DEV_PROFILES variable rather than being repeated across the two compose targets, and make with no argument prints the target list, parsed from the ## comments so it cannot drift from the targets themselves.

Elasticsearch is deliberately not in the profile set — the dev profile searches the database (ovsx.databasesearch.enabled: true, ovsx.elasticsearch.enabled: false), so the server runs fine without it. There is a comment in the file saying so, since its absence otherwise looks like an oversight.

Worth knowing when using this: ovsx.redis.enabled is false and storage defaults to local in the dev profile, so valkey and minio start but the server does not talk to them until the corresponding blocks in server/src/dev/resources/application.yml are uncommented.

Testing

Each target was run for real, not just written:

  • make dev-env — all 9 containers up and healthy (postgres, 6 valkey nodes, valkey-admin, minio).
  • make server — reached Started RegistryApplication, Jetty on 8080, GET /api/-/search returned 200.
  • make webui — vite serving on 3000, GET / returned 200.
  • make dev-env-down — removed every container and the network, leaving a clean git status.

🤖 Generated with Claude Code

Three targets for the three things a local setup needs running, meant for
three terminals: `dev-env` holds the containers, `server` and `webui` run
the two applications against them.

`dev-env` starts postgres, the valkey cluster with its admin UI and minio.
Elasticsearch is left out on purpose - the dev profile searches the
database instead. `dev-env-down` removes those containers again.

`make` on its own lists the targets, so the file documents itself.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The webui target’s install command is inconsistent with the repo’s compose-based workflow and can unintentionally modify the lockfile; aligning it will reduce surprises.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds a root-level Makefile to standardize common local development workflows (starting required containers, running the server, and running the web UI) with a self-documenting make help default target.

Changes:

  • Add dev-env / dev-env-down targets to run docker-compose with a shared DEV_PROFILES list.
  • Add server and webui targets to run the backend and frontend locally.
  • Add a help target and set it as the default goal to list available targets from ## comments.
File summaries
File Description
Makefile Introduces Make targets for dev containers, server, and web UI plus an auto-generated help listing.
Review details
  • Files reviewed: 1/1 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread Makefile Resolved
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Thomas Neidhart <thomas.neidhart@gmail.com>
@netomi
netomi requested a review from cstamas September 3, 2026 08:48
@netomi
netomi merged commit bdc4d3f into main Sep 3, 2026
5 checks passed
@netomi
netomi deleted the chore/dev-makefile branch September 3, 2026 11:14
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.

3 participants