Skip to content

Instantly share code, notes, and snippets.

@BrianSipple
Last active April 17, 2017 18:27
Show Gist options
  • Save BrianSipple/9f8090f2e868f10c45c5e63b44bbeaa1 to your computer and use it in GitHub Desktop.
Save BrianSipple/9f8090f2e868f10c45c5e63b44bbeaa1 to your computer and use it in GitHub Desktop.
Ember Addon Essentials -- A checklist of some of the finer details to keep in mind when developing Ember addons

Ember Addon Pro-Tips

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:

Filling out your package.json

Filling out travis.yml

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.

Consider Installing and Running Chrome in CI tests

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

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

Filling out your README.md

Badging FTW


[![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>

Managing versions and publishing with ember-release (& and possibly git flow)

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:

Creating A Demo? Deploy your dummyApp to GitHub Pages!

  • 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.
    • In the ember-addon hash of your package.json, set the demoURL property to the hosted address
    "ember-addon": {
      "configPath": "tests/dummy/config"
      "demoURL": "{{GITHUB_PAGES_URL}}"
    }
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment