Introduction:
Components:
Resources:
Contributing to Metaphor
We love making super awesome stuff, but even more we like to empower people to make changes on their own. Feel free to fork and improve Metaphor. Please take a moment to review this page in order to make the contribution process easy and effective for everyone involved.
Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue or assessing patches and features.
Current Contributors:
Developer Setup Instructions
#1. To begin contributing first clone the metaphor repository from Github:
$ git clone https://github.com/csun-metalab/metaphor.git
#2. Next you will need to install all the dependencies identified in the projects package.json
& bower.json
:
// Node/NPM Packages$ npm install
// Bower Packages$ bower install
Note: If you haven't already you will need to install Node/NPM & Bower first.
#3. Metaphor utilizes a task runner to compile *.scss
& *.js
assets. Run the following Gulp tasks to compile files:
// Run all Gulp tasks$ gulp
// Gulp will watch your assets for any changes and automatically recompile your assets if you modify them$ gulp watch
// Run All Gulp tasks and minify for production$ gulp --production
Note: If you haven't already you will need to install the Gulp CLI first.
SASS/SCSS
All of Metaphors components are written in SASS. As you compile your SASS styles gulp
will automatically lint your code to make sure your code conforms to the guidelines specified in the .scss-lint.yml
file and the Metaphor contributing guidelines.
To enable linting on your machine you will have to run the following commands in your terminal:
$ gem install scss_lint
You will also have to update your text editor of choice to support linting by installing the following packages.
Sublime Text:
Github Workflow & Pull Requests
When commiting code leverage the Github Workflow when building out Metaphor. To learn more about this process take a look at Understanding the GitHub Flow by Github.
Feature Requests
Feature requests are welcome. But take a moment to find out whether your idea fits within the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of any new features. Please provide as much detail and context as possible.
To view a current log of features/issues visit our Github issues page.
Product Versioning
Given a version number MAJOR.MINOR.PATCH
, increment the:
MAJOR
version when you make incompatible API changes, MINOR
version when you add functionality in a backwards-compatible manner, and PATCH
version when you make backwards-compatible bug fixes. Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH
format.
For more information on versioning visit Semantic Versionings website.
Issue Tracking & Task Management
We use Githubs default issue tracking system to manage enhancements, bugs, and new feature requests. The issue tracker also allows us to assign/delegate contributors to a task. To learn more about this process take a look at Githubs Mastering Issues Guide.