Skip to content

Release Process

dde follows semantic versioning and uses GitHub Actions for automated releases.

dde uses Semantic Versioning:

  • Major (v3.0.0): breaking changes
  • Minor (v2.1.0): new features, backward-compatible
  • Patch (v2.0.1): bug fixes, backward-compatible
  1. Ensure all changes are merged to the release branch
  2. Ensure the QA pipeline passes
  3. Create and push a tag:
Terminal window
git tag v2.1.0
git push origin v2.1.0

The tag name must start with v (e.g. v2.0.0, v2.1.0).

Pushing a v* tag triggers the release workflow (.github/workflows/release.yml). The pipeline:

  1. Reads the PHP version from composer.json (single source of truth)
  2. Runs quality checks: ECS, PHPStan, Rector, and tests
  3. Builds the PHAR using humbug/box
  4. Combines PHAR with micro.sfx from static-php-cli to produce standalone binaries
  5. Uploads binaries to a GitHub Release

The release pipeline produces binaries for 4 platforms:

PlatformArchitectureBinary Name
macOSx86_64dde-darwin-amd64
macOSarm64 (Apple Silicon)dde-darwin-arm64
Linuxx86_64dde-linux-amd64
Linuxarm64dde-linux-arm64

The scripts/build.sh script automates the binary creation:

  1. Reads the PHP version from composer.json
  2. Downloads the matching micro.sfx from static-php-cli
  3. Combines micro.sfx + bin/dde.phar into a standalone executable

Users install or update via the package managers listed in the installation documentation (Homebrew, APT, Alpine).