Files
docker-seafile-client/CONTRIBUTING.md
2024-08-24 22:46:19 +02:00

3.8 KiB

Do you want to contribute ? Please do!

How to help?

They are several ways to help and improve this project.

Report issues, propose features

You think you found a bug ? You think something is missing out ? Check that it has not been already reported. If it has not, report it.

Solve problems

You can't wait for a problem to be solved ? Pick one from the already reported problems and solve it. It will be greatly appreciated!

Say thanks

One great way to help is simply to say thanks. You can do that by adding a star to the Docker Hub repository or just saying thanks in the project topic on Seafile's forum.

Project workflow

The ins and outs of the project, from setting up a local environment for developments to notifying users of changes.

To provide the different Seafile's client versions, the project rely on the seafile package available throughout the different Debian versions. Check out Debian Developer's Package Overview and Debian Package Tracker for in depth details regarding that package.

The following state diagram describe essentially the project workflow for a release.


stateDiagram-v2
    feature: Checkout new branch from main
    changes: Apply changes
    mr: Create a Merge Request
    pipelines: CI/CD pipelines must be successful
    log: Changes must be documented
    merge: Branch is squash merged into main
    release: Release is created

    [*] --> feature
    feature --> changes
    changes --> mr
    mr --> pipelines
    pipelines --> log
    log --> merge
    merge --> release
    release --> [*]

Environment

The following is required to develop:

  • Docker engine
  • Bash
  • Make

Management

The project managemenet is mostly run through the Makefile.

The parameter TARGET define on which Debian version the instructions are run.

The following instructions are available:

mock

Start the Docker Compose mock for a Seafile server.

unmock

Start the Docker Compose mock for a Seafile server.

client

Purge and start the client service on the Docker Compose mock for a Seafile server.

logs

Continuously display the logs from the client service on the Docker Compose mock for a Seafile server.

build

Build the Seafile Docker client image depending on the TARGET.

build-test

Build the Seafile Docker client test image depending on the TARGET.

test

Run the Seafile Docker client test container.

documents

Build the documentation for both Docker Hub and Seafile's forum.

publish-images

Publish the Docker Seafile client image, properly tagged with the appropriate Seafile cliens versions.

publish-documents

Publish the generated documentation on Docker Hub only

save

Export the Seafile Docker client image as a tarball.

load

Load the Seafile Docker client image from a tarball

Pipelines

Pipelines are run either on merge requests or on commit tags.

The pipelines are divided into three stages:

  • Build
  • Test
  • Release

Release jobs are obviously not run on merge requests.