summaryrefslogtreecommitdiff
path: root/www/wiki/resources/lib/oojs/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/resources/lib/oojs/README.md')
-rw-r--r--www/wiki/resources/lib/oojs/README.md98
1 files changed, 98 insertions, 0 deletions
diff --git a/www/wiki/resources/lib/oojs/README.md b/www/wiki/resources/lib/oojs/README.md
new file mode 100644
index 00000000..ec14576f
--- /dev/null
+++ b/www/wiki/resources/lib/oojs/README.md
@@ -0,0 +1,98 @@
+[![npm](https://img.shields.io/npm/v/oojs.svg?style=flat)](https://www.npmjs.com/package/oojs) [![David](https://img.shields.io/david/dev/wikimedia/oojs.svg?style=flat)](https://david-dm.org/wikimedia/oojs#info=devDependencies)
+
+OOjs
+=================
+
+OOjs is a JavaScript library for working with objects.
+
+Key features include inheritance, mixins and utilities for working with objects.
+
+<pre lang="javascript">
+/* Example */
+( function ( oo ) {
+ function Animal() {}
+ function Magic() {}
+ function Unicorn() {
+ Animal.call( this );
+ Magic.call( this );
+ }
+ oo.inheritClass( Unicorn, Animal );
+ oo.mixinClass( Unicorn, Magic );
+}( OO ) );
+</pre>
+
+Quick start
+----------
+
+This library is available as an [npm](https://npmjs.org/) package! Install it right away:
+<pre lang="bash">
+npm install oojs
+</pre>
+
+Or clone the repo, `git clone https://phabricator.wikimedia.org/diffusion/GOJS/oojs.git`.
+
+ECMAScript 5
+----------
+
+OOjs requires a modern ECMAScript 5 environment. It is not necessarily compatible with ES3 engines (such as for IE 6-8). For ES3 environments, the old 1.x releases are available but not recommended.
+
+jQuery
+----------
+
+If your project uses jQuery, use the optimised `oojs.jquery.js` build instead.
+
+This build assumes jQuery is present and omits various chunks of code in favour of references to jQuery.
+
+jQuery 3.0.0 or higher is required.
+
+Versioning
+----------
+
+We use the Semantic Versioning guidelines as much as possible.
+
+Releases will be numbered in the following format:
+
+`<major>.<minor>.<patch>`
+
+For more information on SemVer, please visit http://semver.org/.
+
+Bug tracker
+-----------
+
+Found a bug? Please report it in the [issue tracker](https://phabricator.wikimedia.org/maniphest/task/edit/form/1/?projects=OOjs)!
+
+Release
+----------
+
+Release process:
+<pre lang="bash">
+$ cd path/to/oojs/
+$ git remote update
+$ git checkout -B release -t origin/master
+
+# Ensure tests pass
+$ npm install && npm test
+
+# Avoid using "npm version patch" because that creates
+# both a commit and a tag, and we shouldn't tag until after
+# the commit is merged.
+
+# Update release notes
+# Copy the resulting list into a new section on History.md
+$ git log --format='* %s (%aN)' --no-merges --reverse v$(node -e 'console.log(require("./package.json").version);')...HEAD
+$ edit History.md
+
+# Update the version number
+$ edit package.json
+
+$ git add -p
+$ git commit -m "Tag vX.X.X"
+$ git review
+
+# After merging:
+$ git remote update
+$ git checkout origin/master
+$ git tag "vX.X.X"
+$ git push --tags
+$ npm publish
+</pre>