Files
iot-dc3/docs/development.md

2.9 KiB

Development and quality commands

The repository uses the root Makefile as its project-level command entry point. There is no root Node package or pnpm workspace. The Web application and TypeScript CLI keep independent package.json and pnpm-lock.yaml files.

Install Node dependencies

Use Node.js 22 or newer and install both independent packages from the repository root:

make install-node

When changing dependencies, update only the affected package and lockfile:

(cd dc3-web && corepack pnpm add <package>)
(cd dc3-cli && corepack pnpm add <package>)

Development services

Start PostgreSQL and RabbitMQ before running backend services from source:

make up-db

The backend development commands build the selected Spring Boot modules and load variables from dc3/env/dev.env:

Command Service
make dev-auth Auth center (8300)
make dev-gateway Gateway (8000)
make dev-data Data center (8500)
make dev-manager Manager center (8400)
make dev-agentic Agentic center (8600)
make dev All five backend services with prefixed logs and shared shutdown
make dev-web Vue development server
make dev-cli TypeScript CLI build watcher

Set DC3_ENV_FILE, MAVEN_CMD, or JAVA_CMD when an alternative environment or executable is required:

DC3_ENV_FILE=dc3/env/dev.env MAVEN_CMD=/path/to/mvn make dev-auth

Repository quality

The Make targets preserve each toolchain's native configuration while providing a single repository-level interface:

make format  # apply Java Spotless, Web ESLint fixes, and CLI Prettier/ESLint fixes
make lint    # check Java Checkstyle plus Web and CLI ESLint
make check   # run all non-mutating Java, Web, CLI, and Python quality gates

make check includes:

  • Java formatting and canonical COPYRIGHT headers through Spotless;
  • Java naming and Javadoc structure through Checkstyle;
  • strict public API doclint and reference validation;
  • Web TypeScript and ESLint checks;
  • CLI Prettier, ESLint, and build checks;
  • Python, Node, and shell syntax validation for dc3/bin tools.

Component-level targets remain available for focused work:

make validate-java-quality
make validate-web-quality
make validate-cli-quality
make validate-scripts

Tests remain separate from formatting and static quality checks. Use make test, make test-it, make test-e2e, or the affected package's native pnpm test command.