## Contributing All contribution are welcome even not tech one. To contribute you need to fork, then clone the repo: ``` git clone git@github.com:your-name/jquery.terminal.git ``` Please only modify `js/jquery.terminal-src.js`/`css/jquery.terminal-src.css` files. You can run `make`, but you may have conflicts others push commits with their build (you may have conflict because there is build date/time in build file) make sure you're on devel branch and create PR to devel brach as well, fixes to examples and README can be made directly to master but they could also be made to devel. Non tech contribution are also welcome, if you find a bug in documentation on the website you can file an issue to [jcubic/jquery.terminal-www](https://github.com/jcubic/jquery.terminal-www). ## List of contributors with avatars To update the list, the script need to be run when change is merged to master and since all merges are done on devel. I need to run the script when I'm releasing new version. To help me remember, if this is yours first contribution, please modify template/Makefile.in and update line `UPDATE_CONTRIBUTORS=1` it should be 1 which is true (0 is false). On each build it will show red reminder message and it will stop build when run on master. ## Building the project The process of building the project is very simple all you need is this: ```bash clone https://github.com/jcubic/jquery.terminal.git cd jquery.terminal npm install make ``` While developing you can use -src versions they are work fine. Make will just create Release files that have proper version number, create minified files and build emoji css. ## Test You should run test to make sure you don't break anything, to run tests from browser you need to run ```bash npm install make test ``` and run ESlint and JSONLint using: ```bash make lint ``` you can also run test coverage using ```bash make coverage ``` ## README if you want to modify readme please modify the one in `./templates` directory, because that one is source file with {{VER}} markers that get filled with current version when running `make`. ## Release Cycle * New version is developed on devel branch * Each fix and feature need to be added to CHANGELOG.md file * After random number of feature and bugfixes are done, the code need to be merged with master ```bash git checkout master git merge devel --no-ff -m 'merge with devel' ``` * then the next version need to be created, last version from CHANGELOG need to be used to call version script that rename files that have version at the end. ``bash ./scripts/version 2.21.0 make git commit -am 'version 2.21.0' git push git tag 2.21.0 git push --tags ``` **NOTE:** if something is wrong (e.g. Travis CI failed) the tag can be removed, fix can be added in new commit and tag need to be added again. * Now version on GitHub is released. You need to wait a bit to have confirmation from CI that the build was successful. In mean time you can add Release Notes on GitHub. Just click releases -> draft new release then pick the version and copy paste what's in CHANGELOG.md file. * After you git confirmation that CI (travis) run successfully you can release to npm. By calling: ```bash make publish ``` * Script will clone the repo (just in case you have lot of files in repo that you don't want to publish to npm) into ./npm directory and run `npm publish`, after that it will delete the directory. * New version is ready.