While Ralph doesn’t impose specific development tools for regular contributors, maintainers must configure certain tools to perform maintenance operations successfully.
GnuPG (GPG) Setup
Key Requirements
Every Ralph maintainer must have:- 4096-bit GPG key with signing capability
- Signed by other Ralph maintainers to establish trust
- Expiration date set for security
- Public key uploaded to major key servers
Creating a GPG Key
Follow the GnuPG HowTo to create your key. Recommended settings:- Key type: RSA and RSA
- Key size: 4096 bits
- Expiration: 2 years (recommended)
- Real name: Your full legal name
- Email: Match your git configuration email
Identity Requirements
Your key identities must include:- Given name according to an official document
- Email address specified in your git configuration
Publishing Your Public Key
Upload your public key to key servers:Getting Your Key Signed
Contact existing Ralph maintainers to get your key signed:-
Export your key fingerprint:
- Share the fingerprint with maintainers through a secure channel
- Verify identity via video call or in-person meeting
-
Maintainers sign your key:
Shell Configuration for GPG
If you use fish or other fancy shells that manipulate TTYs, set theGPG_TTY variable:
For bash/zsh (~/.bashrc or ~/.zshrc):
~/.config/fish/config.fish):
Git Configuration
Required Settings
Set these options either globally or locally for the Ralph repository:Configuration Details
user.name- Full name according to official documents
- ASCII letters preferred (some tools may misinterpret non-ASCII characters)
- Can use non-ASCII Latin characters if needed
- Must match one of the identities in your GPG key
- Must be verified in your GitHub account
- The ID of your GPG key
- Find it with:
gpg --list-secret-keys --keyid-format LONG
Verifying Git Configuration
GitHub Account Requirements
Verified Email
Your GitHub account must have a verified email that matches your git configuration:- Go to Settings → Emails
- Add your email if not already added
- Click the verification link sent to your email
- Ensure the email is set as your primary or commit email
GPG Key Upload
Add your public GPG key to GitHub:-
Export your public key:
-
Copy the output (including
-----BEGIN PGP PUBLIC KEY BLOCK-----and-----END PGP PUBLIC KEY BLOCK-----) - Go to GitHub Settings → SSH and GPG keys → New GPG key
- Paste your public key and click “Add GPG key”
Vigilant Mode (Recommended)
Enable vigilant mode to flag unsigned commits:- Go to Settings → SSH and GPG keys
- Check “Flag unsigned commits as unverified”
Releasing New Versions
Maintainers use these tools to release new versions of Ralph. See the Packaging documentation for the complete release process.Prerequisites Check
Before releasing, verify your setup:Release Process Overview
Themake release-new-version target automates most of the process:
Makefile:12 for the implementation and Packaging documentation for detailed release instructions.
Docker Configuration
Maintainers need Docker to build packages:Package Publishing
Packagecloud Access
Maintainers with publishing rights need:- Packagecloud account with access to
allegro/ralphrepository - API token configured in environment:
Docker Hub Access
For publishing Docker images:- Docker Hub account with access to
allegroorganization - Login to Docker Hub:
Security Best Practices
GPG Key Management
- Keep your private key secure: Never share it or commit it to repositories
- Use a strong passphrase: At least 20 characters with mixed types
-
Backup your key: Export and store securely
- Set expiration dates: Rotate keys every 2 years
-
Revoke compromised keys immediately:
Commit Signing
-
Always sign release commits: Use
git commit -S -
Verify signatures before pushing:
- Never push unsigned tags: All version tags must be signed
-
Use signed tags:
git tag -sinstead ofgit tag -a
Troubleshooting
GPG Agent Issues
If GPG won’t prompt for passphrase:Signature Verification Fails
If signature verification fails:GitHub Not Showing Verified Badge
Ensure:- Email in commit matches verified GitHub email
- GPG key is uploaded to GitHub
- Commit is signed:
git log --show-signature - Signature uses the uploaded key
”No Secret Key” Error
Your GPG key may not be imported:Tools Reference
Required Tools
- Git 2.30+ (with GPG signing support)
- GnuPG 2.2+ (GPG key management)
- Docker 20.10+ (package building)
- Make (build automation)
- GitHub CLI (optional, for releases)
Recommended Tools
- GPG Suite (macOS) - GUI for GPG key management
- Kleopatra (Windows/Linux) - GPG key manager
- password-store - GPG-based password manager
- git-crypt - Encrypt sensitive files in repos
Additional Resources
Related Documentation
- Packaging - How Ralph is packaged and released
- Development Environment - Setting up for development
- Contributing Guide - Guidelines for contributing to Ralph