<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ohcnwiki.tellmey.fyi/index.php?action=history&amp;feed=atom&amp;title=Contributing%2FContribution_workflow</id>
	<title>Contributing/Contribution workflow - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ohcnwiki.tellmey.fyi/index.php?action=history&amp;feed=atom&amp;title=Contributing%2FContribution_workflow"/>
	<link rel="alternate" type="text/html" href="https://ohcnwiki.tellmey.fyi/index.php?title=Contributing/Contribution_workflow&amp;action=history"/>
	<updated>2026-07-06T05:19:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.4</generator>
	<entry>
		<id>https://ohcnwiki.tellmey.fyi/index.php?title=Contributing/Contribution_workflow&amp;diff=463&amp;oldid=prev</id>
		<title>Admin: Add Navbox contributing (via update-page on MediaWiki MCP Server)</title>
		<link rel="alternate" type="text/html" href="https://ohcnwiki.tellmey.fyi/index.php?title=Contributing/Contribution_workflow&amp;diff=463&amp;oldid=prev"/>
		<updated>2026-07-06T04:21:35Z</updated>

		<summary type="html">&lt;p&gt;Add Navbox contributing (via update-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:51, 6 July 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 101:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 101:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;All participation in the Care community is governed by the [&amp;lt;nowiki/&amp;gt;https://github.com/ohcnetwork/care/blob/develop/CODE_OF_CONDUCT.md Contributor Covenant Code of Conduct]. By contributing, you agree to uphold it — be respectful, assume good faith, and help keep the community welcoming.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;All participation in the Care community is governed by the [&amp;lt;nowiki/&amp;gt;https://github.com/ohcnetwork/care/blob/develop/CODE_OF_CONDUCT.md Contributor Covenant Code of Conduct]. By contributing, you agree to uphold it — be respectful, assume good faith, and help keep the community welcoming.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Navbox contributing}}&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Related}}&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Related}}&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://ohcnwiki.tellmey.fyi/index.php?title=Contributing/Contribution_workflow&amp;diff=200&amp;oldid=prev</id>
		<title>Admin: OHC identity seed</title>
		<link rel="alternate" type="text/html" href="https://ohcnwiki.tellmey.fyi/index.php?title=Contributing/Contribution_workflow&amp;diff=200&amp;oldid=prev"/>
		<updated>2026-07-04T23:07:34Z</updated>

		<summary type="html">&lt;p&gt;OHC identity seed&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Doc header&lt;br /&gt;
|type=guide&lt;br /&gt;
|domain=contributing&lt;br /&gt;
|title=Contribution workflow&lt;br /&gt;
|order=4&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This page walks through the end-to-end path a change takes — from finding an issue to getting your pull request merged. It applies to both the backend ([&amp;lt;nowiki/&amp;gt;https://github.com/ohcnetwork/care ohcnetwork/care]) and the frontend ([&amp;lt;nowiki/&amp;gt;https://github.com/ohcnetwork/care_fe ohcnetwork/care_fe]). If you haven&amp;#039;t set up your environment yet, start with the [[Documentation|Contributor&amp;#039;s Guide overview]] and the [[Contributing/Local development/Backend setup|backend local setup]].&lt;br /&gt;
&lt;br /&gt;
== 1. Find and claim work ==&lt;br /&gt;
&lt;br /&gt;
Both repositories tag approachable, well-scoped issues so you can find a starting point quickly:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Backend&amp;#039;&amp;#039;&amp;#039; — browse the [&amp;lt;nowiki/&amp;gt;https://github.com/ohcnetwork/care/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22good+first+issue%22 &amp;lt;code&amp;gt;good first issue&amp;lt;/code&amp;gt;] and [&amp;lt;nowiki/&amp;gt;https://github.com/ohcnetwork/care/issues?q=is%3Aissue+sort%3Aupdated-desc+label%3A%22help+wanted%22+is%3Aopen &amp;lt;code&amp;gt;help wanted&amp;lt;/code&amp;gt;] issues on &amp;lt;code&amp;gt;ohcnetwork/care&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Frontend&amp;#039;&amp;#039;&amp;#039; — browse the equivalent &amp;lt;code&amp;gt;good first issue&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;help wanted&amp;lt;/code&amp;gt; labels on &amp;lt;code&amp;gt;ohcnetwork/care_fe&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When you find an issue you&amp;#039;d like to take:&lt;br /&gt;
&lt;br /&gt;
* Comment on the issue saying you&amp;#039;d like to work on it, and wait to be assigned. This avoids two people building the same thing.&lt;br /&gt;
* Link your pull request to the issue once you open it, so the issue closes automatically when the PR merges. See GitHub&amp;#039;s guide on [&amp;lt;nowiki/&amp;gt;https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword linking a pull request to an issue].&lt;br /&gt;
&lt;br /&gt;
{{Tip|1=If an issue has been assigned but looks inactive, comment to ask whether it&amp;#039;s still being worked on rather than opening a duplicate PR.}}&lt;br /&gt;
&lt;br /&gt;
== 2. Branch off &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; is the default branch for contributions and the base for every pull request. Always branch from the latest &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt;, never from &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;git checkout develop&lt;br /&gt;
git pull&lt;br /&gt;
git checkout -b issues/7001/edit-prescriptions&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The frontend convention for branch names is &amp;lt;code&amp;gt;issues/{issue#}/{short-name}&amp;lt;/code&amp;gt; (for example, &amp;lt;code&amp;gt;issues/7001/edit-prescriptions&amp;lt;/code&amp;gt;). Using a descriptive branch name keeps your work easy to trace back to its issue.&lt;br /&gt;
&lt;br /&gt;
== 3. Follow the coding standards ==&lt;br /&gt;
&lt;br /&gt;
Each repository ships its own linting and formatting tooling. Run it locally before you push so review focuses on substance, not style.&lt;br /&gt;
&lt;br /&gt;
=== Backend ===&lt;br /&gt;
&lt;br /&gt;
The backend follows PEP 8 and enforces it with [&amp;lt;nowiki/&amp;gt;https://docs.astral.sh/ruff/ Ruff] via &amp;lt;code&amp;gt;pre-commit&amp;lt;/code&amp;gt;. Install the hooks once after setting up your environment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;pre-commit install&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Run the hooks against the files you changed on your branch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;pre-commit run --files $(git diff --name-only develop...HEAD)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
With the hooks installed, &amp;lt;code&amp;gt;pre-commit&amp;lt;/code&amp;gt; also runs automatically on every &amp;lt;code&amp;gt;git commit&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Frontend ===&lt;br /&gt;
&lt;br /&gt;
The frontend uses ESLint and Prettier. Lint and format your changes before committing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;npm run lint&lt;br /&gt;
npm run format&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The dev server (&amp;lt;code&amp;gt;npm run dev&amp;lt;/code&amp;gt;) also surfaces lint errors in the console as you work.&lt;br /&gt;
&lt;br /&gt;
=== Commit messages ===&lt;br /&gt;
&lt;br /&gt;
Write clear, descriptive commit messages that explain &amp;#039;&amp;#039;what&amp;#039;&amp;#039; changed and &amp;#039;&amp;#039;why&amp;#039;&amp;#039;. Use a meaningful pull request title too — the frontend repo favours a short, descriptive title such as &amp;lt;code&amp;gt;💊 Adds support for editing prescriptions&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 4. Test before you push ==&lt;br /&gt;
&lt;br /&gt;
Run the relevant test suite locally and make sure it passes before pushing.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Backend&amp;#039;&amp;#039;&amp;#039; — see the test commands in the [[Contributing/Local development/Backend setup|backend local setup]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Frontend&amp;#039;&amp;#039;&amp;#039; — end-to-end tests run on [&amp;lt;nowiki/&amp;gt;https://playwright.dev/ Playwright]. Install the browsers once with &amp;lt;code&amp;gt;npm run playwright:install&amp;lt;/code&amp;gt;, then run &amp;lt;code&amp;gt;npm run playwright:test&amp;lt;/code&amp;gt;. Playwright requires a local backend with seeded data; see the [[Contributing/Local development/Backend setup|backend local setup]] for how to run and seed it.&lt;br /&gt;
&lt;br /&gt;
{{Note|1=Frontend Playwright tests need the frontend pointed at your local backend. Set &amp;lt;code&amp;gt;REACT_CARE_API_URL=http://127.0.0.1:9000&amp;lt;/code&amp;gt; in your environment before running them.}}&lt;br /&gt;
&lt;br /&gt;
== 5. Open a pull request ==&lt;br /&gt;
&lt;br /&gt;
Push your branch and open a pull request against &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Open a draft early.&amp;#039;&amp;#039;&amp;#039; Opening a draft PR as soon as you have something to show makes it easy to get early feedback and signals that the issue is being worked on. Mark it &amp;#039;&amp;#039;&amp;#039;Ready for review&amp;#039;&amp;#039;&amp;#039; when it&amp;#039;s complete.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Fill in the PR body.&amp;#039;&amp;#039;&amp;#039; Follow the PR template and reference the issue with a closing keyword (for example, &amp;lt;code&amp;gt;Closes #7001&amp;lt;/code&amp;gt;) so it links and closes automatically.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Request review.&amp;#039;&amp;#039;&amp;#039; For frontend PRs, tag &amp;lt;code&amp;gt;@ohcnetwork/care-fe-code-reviewers&amp;lt;/code&amp;gt; for faster resolution.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Attach screenshots.&amp;#039;&amp;#039;&amp;#039; For any change that touches the UI, attach before/after screenshots (or a short screen capture) showing the change.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Address feedback promptly.&amp;#039;&amp;#039;&amp;#039; Respond to review comments and push follow-up commits. On the frontend, a reviewed PR is labelled &amp;#039;&amp;#039;&amp;#039;Needs Testing&amp;#039;&amp;#039;&amp;#039; and queued for QA; once QA passes it is labelled &amp;#039;&amp;#039;&amp;#039;Tested&amp;#039;&amp;#039;&amp;#039; and queued for merge.&lt;br /&gt;
&lt;br /&gt;
{{Tip|1=Keep pull requests focused. A small PR that does one thing is reviewed and merged far faster than a large one that mixes unrelated changes.}}&lt;br /&gt;
&lt;br /&gt;
== 6. Keep your branch in sync with &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
While your PR is open, &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; keeps moving. If GitHub reports conflicts, sync your branch with the upstream &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; and resolve them locally.&lt;br /&gt;
&lt;br /&gt;
If you haven&amp;#039;t already, add the canonical repository as an &amp;lt;code&amp;gt;upstream&amp;lt;/code&amp;gt; remote. Use the &amp;lt;code&amp;gt;ohcnetwork&amp;lt;/code&amp;gt; org in the URL (the frontend repo is shown here; for the backend, use &amp;lt;code&amp;gt;https://github.com/ohcnetwork/care.git&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;git remote add upstream https://github.com/ohcnetwork/care_fe.git&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Fetch the latest upstream history and merge &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; into your branch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;git fetch upstream&lt;br /&gt;
git merge upstream/develop&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If the merge reports conflicts, open the affected files and resolve the conflict markers (&amp;lt;code&amp;gt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=======&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt;), keeping the correct combination of both sides. Then stage the resolved files and complete the merge:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;git add .&lt;br /&gt;
git commit&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Push the updated branch to refresh your pull request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;git push&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Warning|1=Always merge &amp;lt;code&amp;gt;upstream/develop&amp;lt;/code&amp;gt; into your feature branch — never the reverse. Resolve conflicts carefully: deleting the wrong side of a conflict marker can silently drop someone else&amp;#039;s work.}}&lt;br /&gt;
&lt;br /&gt;
== Code of Conduct ==&lt;br /&gt;
&lt;br /&gt;
All participation in the Care community is governed by the [&amp;lt;nowiki/&amp;gt;https://github.com/ohcnetwork/care/blob/develop/CODE_OF_CONDUCT.md Contributor Covenant Code of Conduct]. By contributing, you agree to uphold it — be respectful, assume good faith, and help keep the community welcoming.&lt;br /&gt;
&lt;br /&gt;
{{Related}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>