Contributing
Thanks for helping improve UOCompanion!
We use the standard fork โ branch โ pull request workflow.
0. Requirements
- Git + GitHub account
- Python 3.x (for local preview)
- Optional:
pipxorvirtualenv
1. Fork and Clone
Fork the repository on GitHub (click Fork).
Clone your fork locally:
git clone https://github.com/YOURUSER/uocompanion.github.io.git
cd uocompanion.github.io
git remote add upstream https://github.com/UOCompanion/uocompanion.github.io.git
git remote -v
2. Create a Feature Branch
Always branch from the latest main.
git fetch upstream
git checkout main
git merge --ff-only upstream/main # or: git rebase upstream/main
git push origin main
git checkout -b docs/short-topic-name
3. Set Up and Preview Locally (MkDocs)
python -m venv .venv
. .venv/bin/activate # Windows: .\.venv\Scripts\activate
pip install -r requirements.txt
# Live preview at http://127.0.0.1:8000
mkdocs serve
Make your edits under docs/, then verify that the site builds cleanly:
mkdocs build
4. Commit and Push
git add -A
git commit -m "docs: clarify X in Y page"
git push -u origin docs/short-topic-name
5. Open a Pull Request
-
Go to your fork on GitHub โ Compare & pull request
-
Base repository:
UOCompanion/uocompanion.github.ioโ base branchmain -
Head repository:
YOURUSER/uocompanion.github.ioโ your feature branch -
Fill out the PR template and submit for review
6. Keep Your PR Up to Date
If main changes while your PR is open:
git fetch upstream
git checkout docs/short-topic-name
git rebase upstream/main
# resolve conflicts if any, then:
git push --force-with-lease
Use --force-with-lease (not plain --force) for safety.
7. Review Cycle
-
Respond to reviewer comments with follow-up commits
-
Ensure mkdocs build succeeds (no warnings in strict mode)
-
Maintainers will squash-and-merge or rebase-merge after approval
Guidelines
Our site is built as a static documentation project, so clarity and simplicity matter most.
Use concise, well-structured Markdown. Images are welcome when they add value, but prefer words, tables, and data to communicate information whenever possible.