From 933e1e25e105c3f1fffb54bd38d0498ed6d8e97c Mon Sep 17 00:00:00 2001 From: Mickael Kerjean Date: Fri, 17 May 2019 14:53:10 +1000 Subject: [PATCH] doc (contributing): first shot at the contributor guide --- CONTRIBUTING.md | 72 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..ba6592db --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,72 @@ +# Contributing Guide + +Thanks for taking the time to join our community and start contributing. This guide will help you get started with the Filestash project. + +## How to contribute? + +### Before you submit a pull request + +For anything else than a typo or an obvious bug fix, please raise an issue to discuss your proposal before submitting any code. + +### License for contributions + +As the copyright owner, you agree to license your contributions under an irrevocable MIT license. + + +## Building from source + +### Prerequisites +- Git +- Make +- Node +- Go + +### Download the source +``` +export $GOPATH=/wherever/you/want +cd $GOPATH +mkdir -p github.com/mickael-kerjean/ && cd github.com/mickael-kerjean/ +git clone https://github.com/mickael-kerjean/filestash +cd filestash +``` + +### Install dependencies +``` +# frontend dependencies +npm install + +# backend dependencies +go get ./server/... +make build_init # beware this will install the required C headers under /usr/local/include/ +``` + +### Building +*Frontend*: +``` +# Production build: +make build_frontend + +# Development build: +npm run dev +``` + +*Backend*: +``` +make build_backend +``` + +*Run*: +``` +./dist/filestash +``` + +*Clear*: +``` +# clear the frontend +rm -rf ./dist/data/public/ +# clear the entire build +rm -rf ./dist +``` + +### Tests +Our tests aren't open source. This comes as an attempt to restrict opportunistic forks (see [1](https://news.ycombinator.com/item?id=17006902#17009852) and [2](https://www.reddit.com/r/selfhosted/comments/a54axs/annoucing_jellyfin_a_free_software_fork_of_emby/ebk92iu/?utm_source=share&utm_medium=web2x)) from creating a stable release without serious commitment and splitting the community in pieces while I'm on holidays. Also the project welcome serious and willing maintainers.