-
Notifications
You must be signed in to change notification settings - Fork 309
Working On Intern
These are some basic guidelines for contributing to Intern. Welcome!
git clone git@github.com:theintern/intern.git
cd intern
npm install
cd node_modules/intern
npm install dojo chai
cd ../..
Because these two versions of Intern have slightly different dependencies, the easiest way to switch between the two is as follows:
The first time you switch to geezer:
git checkout geezer
mv node_modules/dojo node_modules/dojo-2
npm install
cd node_modules/intern-geezer
npm install dojo
cd ../..
Subsequent switch geezer → master:
git checkout master
mv node_modules/dojo node_modules/dojo-1
mv node_modules/dojo-2 node_modules/dojo
Subsequent switch master → geezer:
git checkout geezer
mv node_modules/dojo node_modules/dojo-2
mv node_modules/dojo-1 node_modules/dojo
etc.
(Hey, maybe you can write a script to automate this!)
You can run Intern’s self-test suite using the tests/selftest.sh
script. This script uses the production version of Intern installed in node_modules
to run the self-test suite using both the Node.js client and WebDriver runner. WebDriver tests are run on Sauce Labs, so you’ll need to provide your Sauce username and access key as environment variables:
SAUCE_USERNAME=… SAUCE_ACCESS_KEY=… ./tests/selftest.sh
Always run the self tests before issuing a pull request. Travis-CI will warn you later if you’ve done something dumb, but do you really want to broadcast that to the world?!!
Whenever landing a PR, always use git pull https://github.com/cool-person/intern.git branch-name --squash --author="Original Author <foo@example.com>"
instead of allowing a merge or fast-forward. NEVER allow a merge commit to be introduced to the master branch. ALWAYS make sure discrete features are committed in a single commit. Or else.
Whenever merging a PR against the master branch, make sure you also commit it to the geezer branch, for as long as that thing exists.
git commit
git checkout geezer
git merge master --no-commit
- Fix conflicts, if any
- Fix any getter/setters that need to be changed to use
get
/set
methods git commit