Moves the "Hacking on Gitea" page out of the documentation website and into the repository as `docs/development.md`, so contributors find build and test instructions next to the code. The content has been cleaned up and corrected for in-repo use. --------- Signed-off-by: bircni <bircni@icloud.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
2.6 KiB
Setup and requirements
This document lists the tools you need to build Gitea from source and how to get the code. Once your environment is ready, see development.md for the build and development workflow, and testing.md for running tests.
For the contribution workflow and review process, see CONTRIBUTING.md.
Requirements
Go
Install Go and set up your Go environment. The
required version is the one declared in go.mod; installing the same
version your continuous integration uses avoids gofmt differences between Go
releases.
Note
Some
maketasks build external Go tools on demand (for examplemake watch-backend). To use them, the"$GOPATH"/bindirectory must be on your executablePATH; otherwise you have to manage those tools yourself.
Node.js and pnpm
Install Node.js to build the JavaScript and CSS
files. The minimum supported version is the one declared in
package.json (engines.node); the latest LTS is recommended.
Gitea manages frontend dependencies with pnpm. The make
targets invoke it for you, so installing pnpm manually is only needed if you want
to run pnpm commands directly.
Make
Gitea uses Make to drive builds, linting, and tests. On Windows it can be installed via MSYS2 or Chocolatey.
Python with uv (optional)
Linting the templates, workflow files, and YAML requires Python tooling that Gitea
runs through uv. After installing uv, make creates
the environment automatically (uv sync); you only need this if you run
make lint-templates, make lint-yaml, or make lint-actions locally.
Git LFS
The integration tests require Git LFS to be installed.
Getting the source code
Clone the repository:
git clone https://github.com/go-gitea/gitea
To contribute changes, fork the repository on GitHub and add your fork as a git remote so you can push branches and open pull requests. See GitHub's working with forks documentation for the details.
Installing dependencies
Most build and test targets install the dependencies they need on their own. To
fetch everything up front, run make deps (or the per-group make deps-frontend,
make deps-backend, make deps-tools, make deps-py).