This repo is a fork of Quill, a modern rich text editor built for compatibility and extensibility. It was created by Jason Chen and Byron Milligan and open sourced by Salesforce.com.
To get started with Quill, check out the Github Page or jump straight into the demo.
Please see the official Quill README for more information about the base project and its development.
To add a new feature to kahoot-quill, follow these steps.
git checkout stage
git pull origin stage
git checkout -b JIRA-9999-feature-name
Make changes to the code. See Local development of kahoot-quill below for how to install and build the code.
Run the tests on your local machine. This is essential as we currently do not run the tests automatically at any point. We are running builds on TravisCI experimentally, and this will be built into the process in the future. Right now you can see the build status on pull requests.
Commit and push your branch, then go to GitHub and make a pull request from your branch to the stage branch. N.B. By default the selected base branch will be quilljs/quill:develop. Make sure you switch to mobitroll/kahoot-quill:stage! Review the PR with someone, then merge it to stage when ready.
kahoot-quill is pulled into mobitroll-kahoot through the GitHub registry via jspm (see LINK). This uses GitHub release objects. In order to update the kahoot-quill code pulled into mobitroll-kahoot, therefore, we need to do a new GitHub release. There is no fixed schedule: these releases can be done as needed.
Create a PR from stage to master and review the changes with someone else. When you are satisfied that the changes are ready to go into production, merge the PR.
Do this on your local machine, from the base kahoot-quill directory. The script requires perl. Make sure you've committed/stashed any work before running the script.
./release.sh a.b.c
where a.b.c
is the target semver release number, e.g. 0.20.2
.
Accept the default commit message when vim comes up.
The script will abort if certain conditions are not met: for example, if your working directory is not clean when you run the script, or if there are no changes to the dist files after compiling. Make sure it has exited successfully before continuing.
Go to the kahoot-quill GitHub releases page at https://github.com/mobitroll/kahoot-quill/releases. Click Draft a new release and select the tag corresponding to the target release number.
Quill's source is in Coffeescript and utilizes Browserify to organize its files.
npm install -g grunt-cli
npm install
grunt dist - compile and browserify
grunt server - starts a local server that will build and serve assets on the fly
With the local server (grunt server
) running you can try out some minimal examples on:
grunt test:unit - runs javascript test suite with Chrome
grunt test:e2e - runs end to end tests with Webdriver + Chrome
grunt test:coverage - run tests measuring coverage with Chrome
Tests are run by Karma and Protractor using Jasmine. Check out Gruntfile.coffee
and config/grunt/
for more testing options.
If grunt test:e2e
fails with the error No selenium server jar found at the specified location
, try running the following command in the base kahoot-quill directory:
node node_modules/protractor/bin/webdriver-manager update
Then run grunt test:e2e
again.
If you want to develop on kahoot-quill live within the vagrant development environment of mobitroll-kahoot/builder, you'll have to use jspm linking.
First in the checked out kahoot-quill repository, create a local link to "mobitroll/[email protected]".
jspm link npm:mobitroll/[email protected]
Then in mobitroll-kahoot/builder, install the link:
jspm install --link npm:mobitroll/[email protected]
This will create a symlink in mobitroll-kahoot/builder/jspm_packages/npm/[email protected] to the kahoot-quill directory. The problem is that the symlink is created with an absolute path and will fail to be served from within vagrant (unless you use jspm inside vagrant). The not-so-pretty solution to this is to override the symlink inside vagrant:
vagrant ssh
ln -s /home/sync_dir/kahoot-quill /home/sync_dir/mobitroll-kahoot/builder/jspm_packages/npm/mobitroll/[email protected]
- Integrate Travis CI into pull requests (as in base repo)
- Develop strategy for merging in upstream changes
- Run tests automatically in release script
- Accept default commit message in release script so user doesn't have to quit vim
BSD 3-clause