# Contributing :smile: Thank you for contributing to Mapache! ## Development Mpache uses [Gulp](https://gulpjs.com/) as a build tool and [Yarn](https://yarnpkg.com/) to manage front-end packages. ```bash # clone this repo $ git clone https://github.com/godofredoninja/Mapache.git # Go to the folder $ cd Mapache # link to ghost themes dir $ ln -s $PWD path/to/ghost/content/themes/Mapache # install the dependencies $ yarn install # run build & livereload task $ yarn dev # restart ghost server $ cd path/to/ghost && ghost restart --development ``` ### Icons [Ionicons](https://github.com/ionic-team/ionicons) and generated by [Icomoon](https://icomoon.io/app/#/select) after import `src/svg-icons/selection.json` ### Build commands - `yarn dev` — Compile assets when file changes are made, start [livereload](http://livereload.com/) - `yarn build` — Compile and optimize the files in your assets directory - `yarn prod` — Compile assets for production and generate a `dist/mapache.zip` ### Additional commands - `yarn lint:js` — [Standard](https://standardjs.com/), Check for errors in the script. - `yarn lint:sass` — [Stylelint](https://stylelint.io/), Check for errors in the styles. - `yarn lint` — Check error in script and styles. - `yarn scan` — [Ghost Scan](https://github.com/TryGhost/gscan) check for errors, deprecation and other compatibility issues. - `yarn test` — Check the script errors and styles then check the theme if it is compatible with the latest version of Ghost. ## Git/GitHub workflow This is our preferred process for opening a PR on GitHub: 1. [Fork](http://help.github.com/fork-a-repo/) the repo, clone your fork, and configure the remotes: ```bash # Clone your fork git clone https://github.com//Mapache.git # Navigate to the newly cloned directory cd Mapache # Assign the original repo to a remote called "upstream" git remote add upstream https://github.com/godofredoninja/Mapache.git ``` 2. If you cloned a while ago, get the latest changes from upstream: ```bash git checkout master git pull upstream master ``` 3. Create a new topic branch (off the main project development branch) to contain your feature, change, or fix: ```bash git checkout -b ``` 4. Locally merge: ```bash git checkout master git merge ``` 5. When your changes are ready for review, push your branch: ```bash git push origin master ``` 6. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/) with a clear title and description. 7. When the changes have been reviewed and approved, I will merge for you.