Documentation

Heads Up! Components & docs are subject to change until official v1.0 release. ×

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.


    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.