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!
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...
- every PR must address one single problem and should be as small as possible
- if possible, open an issue that will be referenced by the PR (maybe there will be some discussion about what you want to do?)
- if you add or change a configuration option, you must also update the README
- if you want to use an 3rd-party module, be sure that its license is compatible with Jingo's
- add a meaningful description to the PR and possibly some comments in the code as well
- be kind and write a test for your change
- be patient: I will review and merge your PR as soon as I have time and not as soon as you publish it :D
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.
Use eslint
to validate the code format for Jingo.
If you use Sublime Text, take a look at SublimeLinter-eslint. You need to install Sublime-linter first.
- Run jingo once with the
-s
command line parameter. Redirect the output to a configuration file:./jingo -s > config.yaml
- 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 - Create an empty git repository accessible by jingo and point its configuration file's
repository
to it:mkdir my-wiki; cd wiki; git init
- Maybe you want to set the
loggingMode
to 2 (less verbose, more compact output) in the config - Run jingo in development mode (jingo will automatically restart when a file changes):
npm run start-dev
- Start hacking :)