forgejo/CONTRIBUTING.md

2.1 KiB

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.

Sensitive security-related issues should be reported to security@forgejo.org using encryption.

You can find links to the different aspects of Developer documentation on this page: Forgejo Contributor Guide.

For developers

Consider the below an appendix to the valuable official Forgejo Contributor Guide.

For any development work, it's recommended to use the devcontainer.

Building

Build a single image for multiple architectures:

  1. Setup: (do this once)

    docker buildx create --name mybuilder --use
    docker buildx inspect --bootstrap
    docker run --privileged --rm tonistiigi/binfmt --install all
    
  2. Build:

    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.

Live reload

Live reload make it easy to view changes.

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:

    git remote add upstream https://codeberg.org/forgejo/forgejo.git
    
  2. Fetch changes: (note: --no-tags is necessary)

    git fetch --no-tags upstream
    
  3. Merge the changes into the fork:

    git merge upstream/$BRANCH
    

Tag a release

git tag $TAG
git push origin tag $TAG