Skip to content

Latest commit

 

History

History
44 lines (32 loc) · 1.54 KB

File metadata and controls

44 lines (32 loc) · 1.54 KB

Contributing to WokeLang

Thank you for your interest in contributing.

Getting Started

  1. Fork the repository

  2. Create a feature branch (feat/my-feature)

  3. Ensure SPDX headers on all new files (MPL-2.0)

  4. Run panic-attack assail before committing

  5. Submit a pull request

Code Quality

  • All code must have detailed annotations

  • No dangerous patterns: believe_me, assert_total, sorry, Admitted, unsafeCoerce, Obj.magic

  • Tests required for new functionality

Reporting Issues

Use GitHub Issues with clear reproduction steps.

Author

Jonathan D.A. Jewell j.d.a.jewell@open.ac.uk

Signed commits

Every commit that reaches the default branch must be signed; a ruleset refuses unsigned pushes. Estate policy: SIGNING-POLICY.

  • People and interactive agents sign with an SSH key registered on GitHub as a signing key (gpg.format=ssh, user.signingkey=<key>.pub, commit.gpgsign=true). The committer email must be verified on that account.

  • Apps, bots and workflows never git push local commits. They write through the API (createCommitOnBranch or the estate signed-push action) so that GitHub signs each commit.

  • Merge PRs with squash. The ruleset checks every commit on the PR branch, not just the result, so one unsigned commit blocks the merge. Re-create such a branch with signed commits (git cherry-pick -S) and open a new PR. Rebase-merge replays commits unsigned and is disabled.