Skip to content

Latest commit

 

History

History
166 lines (140 loc) · 6.71 KB

CONTRIBUTING.md

File metadata and controls

166 lines (140 loc) · 6.71 KB

Contribution Guide

Creating an issue

There are no specific rules for submitting issues, however if you can follow the following guidelines it would make prioritizing and development easier.

Development

Setup

This guide assumes you are using a command line, if you want to use other tools please refer to your own tools documentation.

  1. Clone the Github repository git clone https://github.com/bbody/CMD-Resume.git
  2. Change directory to the repository cd CMD-Resume
  3. Install Node and NPM (if not already installed)
  4. Install the dependencies npm install and npm run setup_local
  5. Install gulp command line tool npm i -g gulp-cli or sudo npm i -g gulp-cli if the first does not work
  6. Test if the running script works gulp

Making changes

  1. Fork the repository
  2. Create a new branch
  3. Create an issue or ask to be assigned to an issue
  4. Run command gulp
  5. Make changes and write tests
  6. Ensure tests and source code checking passes
  7. Commit code (Using format of ':emoji: Description of change') by default 📝 is prepended to any commit message without an emoji. Optional: Change previous commit message
  8. Create pull request into development branch
  9. Once tests pass, I will merge into development
  10. Then I will merge into master with other changes

Changes to the UI

Visual regression is tested on on Pull Requests, so if any changes are made to the way the page will look you will need to reset the reference images.

  1. Delete the reference images rm spec-e2e/visual-diffs/reference
  2. Regenerate the reference images test:e2e:visual_reference
  3. Stage the latest reference images git add spec-e2e/visual-diffs/reference/*
  4. Commit the latest reference images git commit -m ":ambulance: Update visual regression reference images"

Technologies

Despite CMD-Resume being quite simple there are quite a few packages and tools which are used to develop, test, build and deploy.

Build Flow

  • Run Dependencies

    • jQuery Terminal - required for getting a terminal inside web browser
    • jQuery Mousewheel - optional for improving mousewheel functionality
    • jQuery - required for libraries and for core CMD-Resume functions
  • Dependency Management

    • NodeJS - required for running NPM
    • NPM - required for installing dependencies
  • Building

    • Gulp - required for running tasks for development and deployment
  • Testing

  • Source Checking

    • JSHint - used to pick up simple JavaScript problems which could lead to bugs (differs across code, tests and tooling)
    • JSCS - used to ensure code style is consistent (differs across code, tests and tooling)
    • JSON Lint - used to check the JSON files creating the resume
    • YAML Lint - used to lint the Travis file
    • Travis Lint - used to lint and verify the Travis file according to Travis' recommended format
    • Code Climate - used to provide code coverage and code quality analysis
  • HTML

    • PugJs - used for building HTML through templating
  • JavaScript

  • Markdown

  • Deployment

    • Travis CI - used to build, run tests and deploy code
  • Release

    • Github Pages - used to host example of CMD-Resume
    • Github Releases - used to package CMD-Resume and host in releases on Github repository
    • NPM - used to deploy new code to NPM repository

For more information a list of dependencies please check package.json.

Releasing

Run the command node scripts/release.js {version type}, where the version type is either major, minor or patch (Semantic versioning).

Releases to:

Note: Releasing can only be performed by a project admin.