This document is meant to be a "checklist" of things to setup for your Ember addon when beginning development in order to have the best possible architecture and workflow out of the gate. For comprehensive, reference-manual-style material, the following are bookshelf-caliber:
- Make a good description
- Use helpful keywords
- Enter proper author info
- Enter proper repo info
- Are you using Ember Data? If not, it can be safely removed from
package.json
to lighten your depencency load.npm uninstall --save-dev ember-data
node_js:
- "0.12"
- "4"
- "5"
- "6"
These values are passed on to nvm; newer releases not shown above may be used if nvm recognizes them.
sudo: required
dist: trusty
before_install:
- export CHROME_BIN=/usr/bin/google-chrome
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
- sudo apt-get update
- sudo apt-get install -y libappindicator1 fonts-liberation
- wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
- sudo dpkg -i google-chrome*.deb
- npm config set progress false
- npm install -g bower
- npm install -g npm@^3
install:
- npm install
- bower install
ember-try's pre-generated setup is golden, but you might also want to include support for the current Ember LTS release:
In .travis.yml
:
- EMBER_TRY_SCENARIO=default
- EMBER_TRY_SCENARIO=ember-1.13
- EMBER_TRY_SCENARIO=ember-lts-2.4
- EMBER_TRY_SCENARIO=ember-release
- EMBER_TRY_SCENARIO=ember-beta
- EMBER_TRY_SCENARIO=ember-canary
- npm package
- Travis Build Status
- Code Climate
- Coveralls
- Ember Observer Score
dependencies
StatusdevDependencies
Status- License
[![Latest NPM release][npm-badge]][npm-badge-url]
[![TravisCI Build Status][travis-badge]][travis-badge-url]
[![Test Coverage][coveralls-badge]][coveralls-badge-url]
[![Code Climate][codeclimate-badge]][codeclimate-badge-url]
[![Ember Observer Score][ember-observer-badge]][ember-observer-badge-url]
[![License][license-badge]][license-badge-url]
[![Dependencies][dependencies-badge]][dependencies-badge-url]
[![Dev Dependencies][devDependencies-badge]][devDependencies-badge-url]
[npm-badge]: https://img.shields.io/npm/v/{{REPO_NAME}}.svg
[npm-badge-url]: https://www.npmjs.com/package/{{REPO_NAME}}
[travis-badge]: https://img.shields.io/travis/{{USER_NAME}}/{{REPO_NAME}}
[travis-badge-url]: https://travis-ci.org/{{USER_NAME}}/{{REPO_NAME}}
[coveralls-badge]: https://coveralls.io/repos/github/{{USER_NAME}}/{{REPO_NAME}}/badge.svg?branch=master
[coveralls-badge-url]: https://coveralls.io/github/{{USER_NAME}}/{{REPO_NAME}}?branch=master
[codeclimate-badge]: https://img.shields.io/codeclimate/github/{{USER_NAME}}/{{REPO_NAME}}.svg
[codeclimate-badge-url]: https://codeclimate.com/github/{{USER_NAME}}/{{REPO_NAME}}
[ember-observer-badge]: http://emberobserver.com/badges/{{REPO_NAME}}.svg
[ember-observer-badge-url]: http://emberobserver.com/addons/{{REPO_NAME}}
[license-badge]: https://img.shields.io/npm/l/{{REPO_NAME}}.svg
[license-badge-url]: LICENSE.md
[dependencies-badge]: https://img.shields.io/david/{{USER_NAME}}/{{REPO_NAME}}.svg
[dependencies-badge-url]: https://david-dm.org/{{USER_NAME}}/{{REPO_NAME}}
[devDependencies-badge]: https://img.shields.io/david/dev/{{USER_NAME}}/{{REPO_NAME}}.svg
[devDependencies-badge-url]: https://david-dm.org/{{USER_NAME}}/{{REPO_NAME}}#info=devDependencies
Does your addon need a customized default blueprint?
ember g blueprint <addon-name>
ember-release is a tremendously useful (and built-in) tool that can be used with any particular branching philosophy -- but it gels quite nicely with git flow:
git flow init
- ...create an awesome stuff...ready a release...
- bump the project version appropriately from your release branch
ember release
(and its variants)
- PR the release branch back into master
npm publish
- Why?
- Supercool way to show off your addon
- Use it to run acceptance tests against the current version
- How
- Establish a workflow for building a dummy app and pushing it to your repository's
gh-pages
branch.- ember-cli-github-pages is your best friend.
- In the
ember-addon
hash of yourpackage.json
, set thedemoURL
property to the hosted address
"ember-addon": { "configPath": "tests/dummy/config" "demoURL": "{{GITHUB_PAGES_URL}}" }
- Establish a workflow for building a dummy app and pushing it to your repository's