73 lines
2.1 KiB
Markdown
73 lines
2.1 KiB
Markdown
# Forgejo Contributor Guide
|
|
|
|
The Forgejo project is run by a community of people who are expected to follow this guide when cooperating on a simple bug fix as well as when changing the governance. For more information about the project, take a look at [the documentation explaining what Forgejo provides](README.md).
|
|
|
|
Sensitive security-related issues should be reported to [security@forgejo.org](mailto:security@forgejo.org) using [encryption](https://keyoxide.org/security@forgejo.org).
|
|
|
|
You can find links to the different aspects of Developer documentation on this page: [Forgejo Contributor Guide](https://forgejo.org/docs/next/contributor/).
|
|
|
|
## For developers
|
|
|
|
Consider the below an appendix to the valuable [official *Forgejo Contributor Guide*](https://forgejo.org/docs/next/contributor).
|
|
|
|
For any development work, it's recommended to use the devcontainer.
|
|
|
|
### Building
|
|
|
|
Build a single image for multiple architectures:
|
|
|
|
1. Setup: (do this once)
|
|
|
|
```bash
|
|
docker buildx create --name mybuilder --use
|
|
docker buildx inspect --bootstrap
|
|
docker run --privileged --rm tonistiigi/binfmt --install all
|
|
```
|
|
|
|
2. Build:
|
|
|
|
```bash
|
|
docker buildx build --platform linux/amd64,linux/arm64 -t user/repo:tag --push .
|
|
```
|
|
|
|
Replace the tag. You can add more architectures, if you wish.
|
|
|
|
For non-Docker builds, [use the official instructions](https://forgejo.org/docs/next/contributor/from-source/).
|
|
|
|
### Live reload
|
|
|
|
Live reload make it easy to view changes.
|
|
|
|
```bash
|
|
TAGS='sqlite sqlite_unlock_notify' make watch
|
|
```
|
|
|
|
It's still recommended to restart whenever it's convenient, or making a bigger change.
|
|
|
|
### Merge
|
|
|
|
Merging changes from vanilla.
|
|
|
|
Make sure you checked out the branch to merge to.
|
|
|
|
1. Add the upstream repository, if you haven't already:
|
|
```bash
|
|
git remote add upstream https://codeberg.org/forgejo/forgejo.git
|
|
```
|
|
|
|
2. Fetch changes: (note: `--no-tags` is necessary)
|
|
```bash
|
|
git fetch --no-tags upstream
|
|
```
|
|
|
|
3. Merge the changes into the fork:
|
|
```bash
|
|
git merge upstream/$BRANCH
|
|
```
|
|
|
|
### Tag a release
|
|
|
|
```
|
|
git tag $TAG
|
|
git push origin tag $TAG
|
|
```
|