To contribute, pick an issue or look through the source code. Then mail me a patch or file a pull request.
Before you do that, please read Roadmap and Practices sections below.
For the 1.0 release, the purpose is to replicate the functionality of the original Clical. Well, up to a point anyway. The browser is a different environment to 286 computers of the last millennium.
Also, there is no immediate need to add any server backends for persistence. Saving and loading data can be done with localStorage at first.
After 1.0, extensions and radically new features such as visualization may be included.
We'll follow the semantic versioning approach. In a nutshell:
- three-component version numbers: major.minor.patch
- bugfixes increment patch number
- new features increment minor version
- backwards incompatible modifications increment major version
These rules don't apply to 0.x.y versions, but we'll try to stick with them anyway.
Before 1.0, let's KEEP IT SIMPLE.
Prefer naive algorithms over fancier ones, if the only benefit is performance. First we make it work, then make it nice.
Avoid dependencies. Managing dependencies is like looking after kids; if they're not yours, you must really really like them. Only add dependencies, which give you significant leverage with regard to features. Do not add convinience dependencies, at least until the pain of inconvinience has grown too great.
Do not add dependencies to pre-1.0 software.
- tabs are tabs
- camelCase names
The development environment for the Javascript libraries requires Node and npm. After installing those, run
npm link
make unittest
Unit tests go to test
subdirectory.
For UI tests, you will need CasperJS. Then run
make uitest
To run all tests, run
make test
UI tests are written in Coffeescript and go to test/ui
subdirectory.
- nodeunit: https://github.com/caolan/nodeunit#readme
- Jison: http://zaach.github.com/jison/docs/
- MathJax: http://docs.mathjax.org/en/latest/
- CasperJS: http://casperjs.org/testing.html