Community
Contributing to SelenaCore
Contributing to SelenaCore
Workflow
- Issues first — all work starts with creating a GitHub Issue
- One task at a time — take an Issue → implement → commit → close
- Tests required — cannot push to
mainwith failing tests
Branches
- Changes under 200 lines — work directly in
main - Over 200 lines —
feat/<issue-number>-<slug>
Commits
Format: <type>(<scope>): <description> [#<N>]
Types: feat, fix, chore, refactor, test, docs, security, perf.
Forbidden: fix, update, wip, ., empty message.
Code Standards
- Python 3.11+, all public methods —
async def - Type hints required
logging.getLogger(__name__)— noprint()except Exception as e:— never bareexcept: pass
Tests
pytest tests/ -v
pytest tests/ --cov=core --cov-report=term-missing
python -m mypy core/
Security
If you find a vulnerability — do not create a public Issue. Use GitHub Security Advisories.
Forbidden
eval(),exec()in any codeshell=Truewithout necessity- Secrets in
.env(only.env.example) - Direct reading of
/secure/from a module - Publishing
core.*events from a module