Contributing to Aetheris
Aetheris is an open-source project and we welcome contributions from the community. This guide explains how to contribute to any of the Aetheris repositories.
How Contributions Work
All improvements to Aetheris go through Pull Requests. This ensures:
- Automated quality checks run before any human review
- Consistent code style across all repositories
- No breaking changes reach the main branch
- Documentation stays up to date
Step-by-Step Process
1. Fork the Repository
Choose the repository you want to contribute to and fork it:
| Repository | Purpose |
|---|---|
| aetheris-app (opens in a new tab) | Main platform (Next.js + Prisma) |
| aetheris-website (opens in a new tab) | Marketing site |
| aetheris-docs (opens in a new tab) | Documentation wiki |
| aetheris-addons (opens in a new tab) | Integration store |
| aetheris-game-eggs (opens in a new tab) | Game server eggs |
| aetheris-windows-installer (opens in a new tab) | Windows installer |
| aetheris-installer (opens in a new tab) | Linux/macOS installer |
2. Create a Branch
git checkout -b feature/your-feature-nameUse descriptive branch names:
feature/add-new-payment-gatewayfix/login-redirect-bugdocs/update-installation-guide
3. Make Your Changes
- Follow the existing code style
- Write clear commit messages
- Add tests for new features
- Update documentation if needed
4. Open a Pull Request
Push your changes and open a PR against the main branch. Fill in the PR template:
## Description
Brief description of what this PR does.
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation update
- [ ] Refactoring
## Testing
- [ ] Tests pass locally
- [ ] New tests added (if applicable)
## Checklist
- [ ] Code follows project conventions
- [ ] Documentation updated
- [ ] No breaking changesAutomated CI Checks
Every Pull Request triggers automated checks. All required checks must pass before a maintainer will review your PR.
Required Checks
| Check | What it validates |
|---|---|
| Lint | Code formatting, unused imports, style rules |
| Type Check | TypeScript types, no any types, strict mode |
| Build | Production build completes without errors |
| Tests | All unit and integration tests pass |
How Checks Work
- You push commits to your PR branch
- GitHub Actions runs the CI pipeline automatically
- Check results appear on the PR page
- All checks must be green (passing) before merge
If Checks Fail
- Click on the failing check to see the error details
- Fix the issue locally
- Push a new commit to your PR branch
- Checks will re-run automatically
Review Process
After all automated checks pass:
- Automated review - Bot checks for common issues
- Manual review - @Leo-Galli reviews the code
- Feedback - You may be asked to make changes
- Approval - Once approved, your PR is merged
What Reviewers Look For
- Code quality: Readable, maintainable, following conventions
- Test coverage: New features should have tests
- Documentation: Updates to relevant docs
- Security: No vulnerabilities introduced
- Performance: No unnecessary performance impact
- Breaking changes: Clearly documented and justified
Repository-Specific Guidelines
aetheris-app (Main Platform)
# Setup
npm install
npx prisma generate
npm run dev
# Before submitting
npm run lint
npm run typecheck
npm run build
npm testaetheris-website (Marketing Site)
# Setup
npm install
npm run dev
# Before submitting
npm run build # Must complete without errorsaetheris-docs (Documentation)
- Use Markdown for content
- Add new pages to
_meta.json - Test build:
npm run build
aetheris-addons (Integration Store)
- Follow the addon manifest format in
manifest.json - Include
README.mdwith setup instructions - Add your addon to
store.json
aetheris-game-eggs (Game Server Eggs)
- Follow the egg.json PTDL_v2 schema
- Include
DockerfileandREADME.md - Run validation:
python tools/validate_eggs.py
aetheris-windows-installer (Windows Installer)
- Test on Windows 10 and 11
- Follow Python coding conventions
- Run tests:
python -m pytest
Getting Help
- Open a Discussion in the relevant repository
- Contact: hello@another-horizon.eu
- Join the community on Discord (link in the repository)
License
By contributing to Aetheris, you agree that your contributions will be licensed under the AGPL-3.0 license.