There are no specific rules for submitting issues, however if you can follow the following guidelines it would make prioritizing and development easier.
This guide assumes you are using a command line, if you want to use other tools please refer to your own tools documentation.
- Clone the Github repository
git clone https://github.com/bbody/CMD-Resume.git
- Change directory to the repository
cd CMD-Resume
- Install Node and NPM (if not already installed)
- Install the dependencies
npm install
andnpm run setup_local
- Install gulp command line tool
npm i -g gulp-cli
orsudo npm i -g gulp-cli
if the first does not work - Test if the running script works
gulp
- Fork the repository
- Create a new branch
- Create an issue or ask to be assigned to an issue
- Run command
gulp
- Make changes and write tests
- Ensure tests and source code checking passes
- 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
- Create pull request into
development
branch - Once tests pass, I will merge into
development
- Then I will merge into
master
with other changes
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.
- Delete the reference images
rm spec-e2e/visual-diffs/reference
- Regenerate the reference images
test:e2e:visual_reference
- Stage the latest reference images
git add spec-e2e/visual-diffs/reference/*
- Commit the latest reference images
git commit -m ":ambulance: Update visual regression reference images"
Despite CMD-Resume being quite simple there are quite a few packages and tools which are used to develop, test, build and deploy.
-
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
-
Building
- Gulp - required for running tasks for development and deployment
-
Testing
- Karma - used for running unit testing across multiple browsers
- Jasmine - used for unit testing
- WebdriverIO - used for UI testing
- Web Browsers (Remote) - browser launchers for running the tests on the
build server
- Headless Chrome
- Headless Firefox
- BrowserStack - run tests across a large group of browsers
- Web Browsers (Local) - browser launchers for running the tests on local
machine
- Headless Chrome
- Headless Firefox
- Chrome
- Firefox
- Safari (OSX/MacOS Only)
- Internet Explorer (Windows Only)
- Edge (Windows Only)
-
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
- Gulp Uglify - used for minifying JavaScript code
-
Markdown
- Markdown Preprocessor - build Markdown from a preprocessor
-
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.
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.