This consolidated guide serves as a blueprint for AI agents and maintainers to standardize repository management, release pipelines, and automated backlog prioritization.
To maintain production stability, the master branch (or primary production branch) is protected against direct pushes. All integration must follow this strict protocol:
-
Branch Isolation: Create short-lived branches prefixed by scope:
feat/...for new features.fix/...for bug fixes.docs/...for documentation updates.
-
Pre-Commit Validation: Before pushing, local Git pre-commit hooks must run:
gitleaksto check for hardcoded secrets.- Language-specific formatters and linters (e.g.,
go fmt,go vet,golangci-lintor Pythonruff,mypy). - The complete unit test suite.
-
Pull Request & Auto-Merge: Open PRs via the GitHub CLI and immediately enable auto-merge with a squash fallback to satisfy status checks asynchronously:
gh pr create --title "feat: <description>" --body "<details>" --head <branch_name> --base master gh pr merge <pr_number> --auto --squash --delete-branch
-
Local Synchronization: Once merged, return to the base branch and pull changes:
git checkout master && git pull origin master
Instead of tracking requests in static lists, leverage GitHub Issues enhanced with structured templates and automated reaction-based prioritization.
- Bug Reports: Must capture environment-specific metadata (e.g., Liferay CE/DXP version, Native Bundle vs. Docker) and require verbose debug logs (
-vorLOG_LEVEL=debug). - Feature Requests (FR): Must require a defined business or proof-of-concept (POC) impact to measure value. Include user-facing headers explaining how to vote using GitHub's native 👍 reactions.
Because GitHub Actions do not natively trigger on reaction additions/removals, implement a hybrid scheduler/trigger workaround (prioritize-issues.yml) running a Python parser (prioritize_issues.py):
+------------------+ +-----------------------+ +------------------------+
| Hybrid Trigger | ---> | Python Parser Script | ---> | GitHub CLI (gh) |
| (Cron / Dispatch)| | prioritize_issues.py | | Adjusts Priority Labels|
+------------------+ +-----------------------+ +------------------------+
-
The Engine: The script uses
gh issue list --json number,reactionGroupsto fetch thumbs-up counts. -
Label Management: Dynamically strips old priority tags and applies unified tracking labels:
priority: p1(10+ upvotes)priority: p2(5-9 upvotes)priority: p3(<5 upvotes)
-
Permissions: Ensure the GitHub Actions runner environment has explicit write permissions for issues:
permissions: issues: write
Automate releases using the repository's dedicated orchestrator script: python3 scripts/release.py.
-
Initiate a Pre-release: Run this command from
masterbranch to bump the version, stage the required release-related changes, create a tracking PR, and push the release tag directly on the release branch:python3 scripts/release.py --bump beta
-
Promote to Stable: Run this command from the active
release/v*branch to promote the version to a stable release, auto-merge the tracking PR to master, and push the stable release tag on master:python3 scripts/release.py --promote
-
CI/CD Compilation & Distribution: Pushing tags (pre-release or stable) triggers the GitHub Actions workflows, which execute:
- Cross-Compilation: Compiles platform-specific binaries, injecting version numbers at build time.
- Checksum Verification: Generates SHA256 hashes and pushes a
checksums.txtfile. - GitHub Release: Creates an official GitHub Release and attaches the compiled assets.
- Package Managers: Automatically pushes updated manifests to community repositories.
- Containerization: Builds and publishes the latest application container image.
Release binary code-signing is now fully automated via the GitHub Actions CI pipeline. We have transitioned away from local TTY handoffs to a secure cloud-based signing architecture.
- Compilation Phase: The CI pipeline compiles the raw binaries for macOS, Linux, and Windows.
- Vault Authentication Phase: The pipeline authenticates securely with our cloud vault via OIDC to retrieve short-lived signing certificates.
- Signing Phase: The binaries are cryptographically signed using the cloud-hosted private keys.
- Distribution Phase: The signed binaries are attached to the GitHub Release.
Note
The legacy "Workspace Handoff Solution" (which required a manual developer interruption to authorize 1Password/Keychain prompts) is officially deprecated. Local builds generated by ldm package will no longer be signed by default unless the developer manually invokes the signing utilities.
-
Production Compilation: Compile binaries using optimizations that strip local debugging file paths to enhance security and EDR compatibility (e.g.,
-trimpath). -
Secure Asset Transit: Copy the production binaries, static templates, configuration assets, and translations to the remote VPS using an SSH identity key.
-
Remote Execution: Execute a secure SSH block to move assets to protected system directories, configure proper file permissions, and safely restart the host daemon:
ssh -i ~/.ssh/id_key user@ip "sudo systemctl restart application-daemon"
-
Automated Diagnostics Validation: Run a post-deployment health check script testing:
- DNS A/AAAA record propagation.
- Network reachability and firewall port openings (e.g., 22, 80, 443).
- JSON responses from the application's version endpoint (
/api/version) to guarantee the active deployment matches the newly released target version.
Last Updated: 2026-08-05 | Last Reviewed: 2026-07-22