title: Development environment setup description: Set up the tools you need to contribute to anoni.net's repositories: a GitHub account, Git, Python 3.12 with uv, and an editor. Then fork anoni-net/docs and open your first pull request. icon: octicons/mark-github-24
Development environment setup¶
What you need first¶
anoni.net's documentation site, Pulse, and the ASN Coverage tools all live in anoni-net/docs on GitHub. The project uses Git for version control and takes contributions through pull requests. Before you start you need:
- A GitHub account
- Git, Python, uv, and an editor installed locally, covered below
If you have never used Git or GitHub, you do not need to become an expert first. Understanding one workflow is enough to start contributing: fork someone's repository, create a branch, commit, open a pull request. The references below cover that ground, and GitHub's own documentation stays more current than anything we could write here.
Git and GitHub basics
- Git Basics from the official Pro Git book
- Fork a repository
- Editing files on GitHub
- Creating a pull request
- Learn Git for Yourself by Eddie Kao, in Traditional Chinese
Development environment¶
Python¶
Pulse and ASN Coverage are written in Python, and so are the documentation site's build scripts. All three subprojects require Python 3.12 or newer, so check your version before going further.
Installation
- Download the installer from python.org.
- Run it, and make sure Add Python to PATH is checked on the first screen. Choose "Customize installation" to review the options, or "Install Now" for the defaults.
- Open Command Prompt and run
python --versionto confirm the install and check you are on 3.12 or newer.
- With Homebrew (recommended): open Terminal and run
brew install python. - Or download the macOS installer from python.org and open the
.pkgfile. - Run
python3 --versionto confirm the install and check the version.
- On Ubuntu or Debian:
sudo apt updatethensudo apt install python3. - Run
python3 --versionto confirm. If your distribution ships something older than 3.12, install a newer version through uv or your distribution's backports.
uv¶
uv manages Python packages and virtual environments, and every anoni.net subproject uses it for dependencies. Running uv sync inside a subproject directory creates an isolated environment and installs everything that project needs, so dependencies never collide between subprojects.
How to install uv
- See the official documentation.
An editor¶
Visual Studio Code is a cross-platform editor from Microsoft with built-in Git support, and extensions covering Python and Markdown, which is what this project uses. You do not have to use it. If you already have an editor you like, use that. This is only a suggestion for people without a preference.
Fork a Project¶
Forking copies a repository into your own GitHub account so you can change and experiment with it without touching the original. It is the standard way to contribute to an open-source project you do not have write access to.
Log into GitHub, go to anoni-net/docs, and click Fork in the upper right. GitHub copies the repository to your account.
Clone your fork locally, then create a branch so your work stays off the main branch:
git clone https://github.com/<your-username>/docs.git
cd docs
git checkout -b your-branch-name
Make your changes, then stage and commit them:
git add .
git commit -m "A short description of your change"
Push the branch to your fork:
git push origin your-branch-name
GitHub will then show a Compare & pull request button on your repository page. Click it, describe what you changed and why, and submit. A maintainer reviews the change and merges it once it is ready.
Working on the docs site specifically
The documentation site lives under docs/ with one directory per language (zh-TW, zh-CN, en). To preview your changes locally:
cd docs
uv sync
source .venv/bin/activate
mkdocs serve
That serves the zh-TW site at http://127.0.0.1:8000. Use sh run_en.sh for the English version.
Where to go from here¶
- How to contribute — pick a topic and open your first pull request
- Self-skills evaluation — work out where to start based on what you already know
- Join the community — our Matrix space, and how to reach us if you get stuck