← Назад к Wiki
Community

Contributing to SelenaCore

Contributing to SelenaCore

🇺🇦 Українська версія

Workflow

  1. Issues first — all work starts with creating a GitHub Issue
  2. One task at a time — take an Issue → implement → commit → close
  3. Tests required — cannot push to main with 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__) — no print()
  • except Exception as e: — never bare except: 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 code
  • shell=True without necessity
  • Secrets in .env (only .env.example)
  • Direct reading of /secure/ from a module
  • Publishing core.* events from a module
Contributing to SelenaCore | Wiki · Selena Home AI