1 | # Contributing to Jingo
|
2 |
|
3 | Jingo is developed primarly by Claudio Cicali but a lot of small and not-so-small pull requests from other contributors have been merged into it over the time. Pull requests are welcome!
|
4 |
|
5 | Keep in mind that Jingo is used by quite a lot of people and we must be super-sure that we are not introducing bugs on their installations, thus there are just a few things to know before start hacking...
|
6 |
|
7 | - every PR must address one single problem and should be as small as possible
|
8 | - if possible, open an issue that will be referenced by the PR (maybe there will be some discussion about what you want to do?)
|
9 | - if you add or change a configuration option, you must also update the README
|
10 | - if you want to use an 3rd-party module, be sure that its license is compatible with Jingo's
|
11 | - add a meaningful description to the PR and possibly some comments in the code as well
|
12 | - be kind and write a test for your change
|
13 | - be patient: I will review and merge your PR as soon as I have time and not as soon as you publish it
|
14 | - a PR that might have an impact on existing installations (like for example changing the markdown engine)
|
15 | it's not guaranteed to be merged even if it makes a lot of sense
|
16 |
|
17 | A big PR, even if would add a lot of value to Jingo, would have problems to be merged. I cannot trust you 100% on the regression tests that you may (or many not) have ran, and I want to try my best to always deliver a Jingo which won't break things to people upgrading it. Unfortunately I don't have a set of integration tests to test for regressions (only units tests) and all the tests I need to run I do them manually, which translates in more time to spend on the project.
|
18 |
|
19 | ## Jingo uses standardjs for formatting (npm install -g standard)
|
20 |
|
21 | Before committing your work, run `standard` in the root directory. If you see no errors, you're good to push
|
22 |
|
23 | ## Test
|
24 |
|
25 | Run `npm test` to ensure that your code didn't break anything
|
26 |
|
27 | ## Running
|
28 |
|
29 | - Run jingo once with the `-s` command line parameter. Redirect the output to a configuration file: `./jingo -s > config.yaml`
|
30 | - If you don't want to use the Google authentication (which is enabled by default), run `jingo -# something` to create an hash for "something" and use it in the config file for the local authentication mechanism
|
31 | - Create an empty git repository accessible by jingo and point its configuration file's `repository` to it: `mkdir my-wiki; cd wiki; git init`
|
32 | - Maybe you want to set the `loggingMode` to 2 (less verbose, more compact output) in the config
|
33 | - Run jingo in development mode (jingo will automatically restart when a file changes): `npm run start-dev`
|
34 | - Start hacking :)
|