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.