116 lines
3.8 KiB
Markdown
116 lines
3.8 KiB
Markdown
**Do you want to contribute ? Please do!**
|
|
|
|
* [How to help?](#how-to-help?)
|
|
* [Report issues, propose features](#report-issues-propose-features)
|
|
* [Solve problems](#solve-problems)
|
|
* [Say thanks](#say-thanks)
|
|
* [Project workflow](#project-workflow)
|
|
* [Environment](#environment)
|
|
* [Development](#development)
|
|
* [CI/CD](#ci/cd)
|
|
|
|
# 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](https://gitlab.com/flrnnc-oss/docker-seafile-client/-/issues). If it has not, [report it](https://gitlab.com/flrnnc-oss/docker-seafile-client/-/issues/new?issue).
|
|
|
|
## Solve problems
|
|
You can't wait for a problem to be solved ? Pick one from the [already reported problems](https://gitlab.com/flrnnc-oss/docker-seafile-client/-/issues) 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](https://hub.docker.com/r/flrnnc/seafile-client) or [just saying thanks in the project topic on Seafile's forum](https://forum.seafile.com/t/docker-client-to-sync-files-with-containers/8573).
|
|
|
|
# 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][packages]. Check out [Debian Developer's Package Overview][ddpo] and [Debian Package Tracker][tracker] for in depth details regarding that package.
|
|
|
|
[packages]: https://packages.debian.org/search?keywords=seafile-cli
|
|
[ddpo]: https://qa.debian.org/developer.php?login=team%2Bseafile%40tracker.debian.org
|
|
[tracker]: https://tracker.debian.org/pkg/seafile
|
|
|
|
|
|
The following state diagram describe essentially the project workflow for a release.
|
|
```mermaid
|
|
|
|
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.
|