This module is a Yeoman generator for Compute.io modules.
To use the generator, ensure that you have installed Yeoman:
$ npm install -g yo
For a general overview of Yeoman generators, see the Getting Started Guide.
$ npm install -g generator-compute-io
Once installed, navigate to the directory in which you want to place generated files and run
$ yo compute-io
The generator will provide a series of prompts and will use your answers to tailor the module files, providing a scaffold upon which you can immediately build.
The prompts are as follows...
The module name requires the convention that the module be prefixed with compute-
. This ensures consistency with the current naming of Compute.io modules.
Valid names include: compute-mean
, compute-variance
, compute-sum
, etc. Do not include spaces or special characters in the name; e.g., compute io correlation @ value
.
Also note that using the generator requires internet access, as module name availability is confirmed on NPM via npm-name.
You have the option to initialize the module directory as a Git repository. The default option is Y
. Typing enter
or y+enter
will confirm initialization and do the following:
$ git init
$ git remote add origin https://github.com/compute-io/<repo_name>.git
$ git add -A
$ git commit -m "[INIT]"
The initialization process stops short of pushing the commit to the remote repository.
Note: Git initialization assumes you have write access to the Compute-io organization on Github. If you are not already a member and are interested in contributing, contact one of the owners.
If you elected to initialize a local Git repository, you must specify the corresponding remote repository name. The default is the unique module id (e.g., compute-mean
--> mean
).
Enter the primary author's name; i.e., in all likelihood that will be your name.
If you have chosen to initialize the directory as a Git repository, the default will be the email associated with your Github account. This email should be a correspondence address for those individuals wanting to contact you directly with their questions and comments.
If the Github email address is fine, just type enter
.
Enter the module description.
Once you have answered all prompts, you will have the following scaffold:
benchmark/
examples/
- index.js
lib/
- index.js
test/
- test.js
.gitignore
.gitattributes
.npmignore
.travis.yml
.jshintrc
.jshintignore
.editorconfig
LICENSE
Makefile
package.json
README.md
TODO.md
These are standard fare. If you notice that files are neither tracking in Git nor making their way onto NPM, consult .gitignore
and .npmignore
. The scaffold includes a .travis.yml
file for continuous integration purposes. Visit Travis-CI to setup running builds.
The Makefile
includes methods to run tests and generate notes. To see TODOs and FIXMEs,
$ make notes
The default license is the MIT license.
The generator creates a scaffold package.json
, using the module name to generate the Github repository urls. You need to manually add keywords
and any additional dependencies
.
The generator includes a TODO.md
file. Use this file for general TODOs which are not tied to any particular file line.
The README.md
is a scaffold. You should add to the usage and example code sections.
The main library file lib/index.js
is stubbed. The file includes a dummy method (foo
).
The generator creates a skeleton test file. Aim for 100% test coverage.
The generator creates an empty directory for benchmarks. Should the module warrant benchmarks, include the benchmark files in this directory.
The examples/index.js
file should be modified to showcase the module and should correspond to the example provided in the README
.
The generator will automatically run npm install
and install any node modules used by the scaffold. If you need any additional dependencies,
$ npm install <module_name> --save
or development dependencies (either for testing or examples)
$ npm install <module_name> --save-dev
If you opted to initialize the module as a Git repository, you will need to manually push changes to Github.
$ git push origin master
By default, the generator generates a Travis-CI *.yml
file for continuous integration and uses Coveralls for tracking code coverage over time.
Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:
$ make test
All new feature development should have corresponding unit tests to validate correct functionality.
This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:
$ make test-cov
Istanbul creates a ./reports/coverage
directory. To access an HTML version of the report,
$ make view-cov
Copyright © 2014-2015. The Compute.io Authors.