summaryrefslogtreecommitdiff
path: root/Documentation/source/contributing
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/source/contributing')
-rw-r--r--Documentation/source/contributing/code-integrity.rst43
-rw-r--r--Documentation/source/contributing/commit-messages.rst85
-rw-r--r--Documentation/source/contributing/index.rst12
-rw-r--r--Documentation/source/contributing/workflow.rst42
4 files changed, 182 insertions, 0 deletions
diff --git a/Documentation/source/contributing/code-integrity.rst b/Documentation/source/contributing/code-integrity.rst
new file mode 100644
index 0000000..7ead918
--- /dev/null
+++ b/Documentation/source/contributing/code-integrity.rst
@@ -0,0 +1,43 @@
+Code Integrity
+==============
+
+This project should preserve a reviewable and trustworthy history. The raw
+``docs/protecting-code-integrity.md`` note covers broader PGP background; this
+page records repository-level expectations.
+
+Source Provenance
+-----------------
+
+* Prefer signed commits and signed tags when publishing releases.
+* Protect credentials and signing keys outside the repository.
+* Do not commit generated secrets, local database state, or build output.
+* Review dependency changes with the same care as source changes.
+
+Git Practices
+-------------
+
+* Keep commits focused by subsystem or behavior.
+* Avoid mixing generated files with hand-written changes unless the generated
+ files are required for the change.
+* Use branches for non-trivial work.
+* Rebase or merge deliberately; avoid history rewrites on shared branches
+ unless the team has agreed.
+
+Release Tags
+------------
+
+Release tags should be annotated and signed when possible:
+
+.. code-block:: bash
+
+ git tag -s v1.2.0 -m "v1.2.0"
+
+Verification
+------------
+
+Before trusting a release or dependency bump, verify:
+
+* tag or commit signature when available;
+* changelog and diff scope;
+* dependency lockfile changes;
+* CI result for the exact commit being released.
diff --git a/Documentation/source/contributing/commit-messages.rst b/Documentation/source/contributing/commit-messages.rst
new file mode 100644
index 0000000..22bda0d
--- /dev/null
+++ b/Documentation/source/contributing/commit-messages.rst
@@ -0,0 +1,85 @@
+Commit Messages
+===============
+
+Commit messages should be structured enough to support readable history and
+future changelog generation.
+
+Format
+------
+
+.. code-block:: text
+
+ <type>(<scope>): <short summary>
+
+ <body>
+
+ <footer>
+
+The header is required. The body is recommended for all non-trivial changes and
+should explain why the change exists.
+
+Types
+-----
+
+.. list-table::
+ :header-rows: 1
+ :widths: 18 52
+
+ * - Type
+ - Use
+ * - ``build``
+ - Build system or dependency changes.
+ * - ``ci``
+ - CI configuration and automation.
+ * - ``docs``
+ - Documentation-only changes.
+ * - ``feat``
+ - New user-facing capability.
+ * - ``fix``
+ - Bug fix.
+ * - ``perf``
+ - Performance improvement.
+ * - ``refactor``
+ - Code change that does not add behavior or fix a bug.
+ * - ``test``
+ - Test additions or corrections.
+
+Scopes
+------
+
+Use a scope when it clarifies ownership. Recommended repository scopes:
+
+* ``app``;
+* ``payload``;
+* ``auth``;
+* ``comments``;
+* ``db``;
+* ``ui``;
+* ``email``;
+* ``docs``;
+* ``tooling``.
+
+Summary Rules
+-------------
+
+* Use imperative present tense.
+* Do not capitalize the first word unless it is a proper noun.
+* Do not end the summary with a period.
+* Keep the summary concise.
+
+Examples
+--------
+
+.. code-block:: text
+
+ feat(comments): add moderation role checks
+
+ fix(feed): keep rss canonical path consistent
+
+ docs: add Sphinx architecture guide
+
+Reverts
+-------
+
+Revert commits should start with ``revert:`` and include the SHA of the commit
+being reverted in the body.
diff --git a/Documentation/source/contributing/index.rst b/Documentation/source/contributing/index.rst
new file mode 100644
index 0000000..0a2394d
--- /dev/null
+++ b/Documentation/source/contributing/index.rst
@@ -0,0 +1,12 @@
+Contributing
+============
+
+This section describes contribution expectations for commits, review, and
+source integrity.
+
+.. toctree::
+ :maxdepth: 2
+
+ workflow
+ commit-messages
+ code-integrity
diff --git a/Documentation/source/contributing/workflow.rst b/Documentation/source/contributing/workflow.rst
new file mode 100644
index 0000000..8457cbd
--- /dev/null
+++ b/Documentation/source/contributing/workflow.rst
@@ -0,0 +1,42 @@
+Workflow
+========
+
+Before Coding
+-------------
+
+1. Identify which subsystem owns the change.
+2. Read the nearest existing implementation and tests.
+3. Decide whether the change affects runtime behavior, schema, UI, docs, or
+ operations.
+4. Keep the patch scoped to the requested behavior.
+
+During Implementation
+---------------------
+
+* Follow local patterns before introducing new abstractions.
+* Keep data fetching in server routes or ``src/lib`` helpers.
+* Use existing UI primitives and tokens.
+* Update tests when behavior changes.
+* Update this documentation when a public contract, architecture, or workflow
+ changes.
+
+Before Submitting
+-----------------
+
+Run the most relevant checks:
+
+.. code-block:: bash
+
+ pnpm lint
+ pnpm test
+ make -C Documentation html
+
+For schema changes, include the appropriate migration and generated type
+updates.
+
+Review Expectations
+-------------------
+
+Reviews should prioritize correctness, behavior regressions, missing tests,
+security-sensitive configuration, and unclear contracts. Style comments should
+point to an existing repository convention or a maintainability issue.