Release Process
dde follows semantic versioning and uses GitHub Actions for automated releases.
Versioning
Section titled “Versioning”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
Creating a Release
Section titled “Creating a Release”- Ensure all changes are merged to the release branch
- Ensure the QA pipeline passes
- Create and push a tag:
git tag v2.1.0git push origin v2.1.0The tag name must start with v (e.g. v2.0.0, v2.1.0).
CI Pipeline
Section titled “CI Pipeline”Pushing a v* tag triggers the release workflow (.github/workflows/release.yml). The pipeline:
- Reads the PHP version from
composer.json(single source of truth) - Runs quality checks: ECS, PHPStan, Rector, and tests
- Builds the PHAR using humbug/box
- Combines PHAR with micro.sfx from static-php-cli to produce standalone binaries
- Uploads binaries to a GitHub Release
Target Platforms
Section titled “Target Platforms”The release pipeline produces binaries for 4 platforms:
| Platform | Architecture | Binary Name |
|---|---|---|
| macOS | x86_64 | dde-darwin-amd64 |
| macOS | arm64 (Apple Silicon) | dde-darwin-arm64 |
| Linux | x86_64 | dde-linux-amd64 |
| Linux | arm64 | dde-linux-arm64 |
Build Process
Section titled “Build Process”The scripts/build.sh script automates the binary creation:
- Reads the PHP version from
composer.json - Downloads the matching
micro.sfxfrom static-php-cli - Combines
micro.sfx+bin/dde.pharinto a standalone executable
Installation
Section titled “Installation”Users install or update via the package managers listed in the installation documentation (Homebrew, APT, Alpine).