Skip to content
josephg edited this page Jan 25, 2012 · 22 revisions

Version 0.5.0pre ->

  • Added postgresql support (Thanks @nullobject, @collin, and anyone I'm forgetting)
  • Added authenticated redis database parameters (thanks @thegoleffect)
  • Rewrote the client connection code.
    • It now uses browserchannel.
    • Changed connection.on('connect') to connection.on('ok').
    • Added automatic reconnection and resyncing to the client code
    • New bugs!
    • By default listening URL is browserchannel's default of /channel instead of /sjs. I might change this back; I'm not sure.
  • The socket.io frontend is turned off by default
  • Changes to the wire protocol
    • Added duplicate op detection
    • Added auth message, which tells the client its session ID
  • Renamed Client to UserAgent
  • Renamed agent.id to agent.sessionId
  • Added agent.name optional field which you can use to tell everyone a client's id

Version 0.4.1 -> 0.5.0pre

Action required: The server and client APIs have changed. Errors are now passed as the first argument to all callbacks. This means:

client.open('hello', 'text', function(doc, error) {
  // ...
});

becomes

client.open('hello', 'text', function(error, doc) {
  // ...
});

This change also affects the (undocumented) server APIs. Update your code!

  • Renamed the 'listen' auth request to 'open'.
  • Put a caching layer around the database, which reduces the number of database queries by a factor of 3-4x.
  • CouchDB support! (Thanks @maxogden)
  • JSON OT has a nice new API! (Thanks @nornagon)
  • For consistency with nodejs, made all callback functions all pass an error as the first callback argument.
  • Swapped from tabs to spaces project-wide.
  • Removed the need to compile the server. The project now depends on coffeescript directly and is compiled when its require()'ed.
  • Ops are stored with source:client.id now instead of using the socketio id
  • Added node-browserchannel support in the server
  • Rewrote the demo page
  • Giant refactor / rewrite of the server code
  • The model is now an event emitter. You can do model.on 'create', (docName) -> ... to initialize documents with data.
  • Added docs for the restful web frontend

Version 0.4.0 -> 0.4.1

  • Switched to from Closure to UglifyJS - Blog post
  • Removed remotePort from auth's client object. (Its not actually useful). I know this changes the api, I'm naughty.
  • Removed the junky comment header at the top of the compiled code
  • Fixed running sharejs-exampleserver from the command line after installing sharejs globally.
  • Added some missing tests (The people demand more tests!)
  • Swapped across to node-hat for generating IDs

Version 0.3.0 -> 0.4.0

Action required: Anyone using the JSON type must explicitly include <script src='share/json.js'/>

Action required: Manually specifying a hostname to connect to is now in the new socket.io style. See client docs for details.

Action required: The optional version parameter on doc.submitOp has been removed, because it really doesn't seem useful. File an issue if I'm wrong.

  • Improved support for sharejs types to live outside of the compiled code bundle.
  • The JSON type now compiles separately (to json.js). This has reduced the standard share.js client size significantly (14k -> 9.5k).
  • Renamed Document to Doc to avoid confusion with window.Document
  • Changed the textarea code to use the new text API.
  • ShareJS now uses socket.io 0.8 up from 0.6. Unfortunately, socket.io has lots of bugs related to connecting / disconnecting. If there are any more stable alternatives to socket.io, I'm happy to talk about moving.
  • ShareJS now supports User access control!
  • Connection.open now behaves better when the connection has been disconnected, or is disconnected while the document is being opened.
  • REST options.delete has been removed in favor of specifying an authentication function.

Version 0.2.3 -> 0.3.0

Action required: Anyone using the ace editor should include <script src='share/ace.js'/> instead of <script src='share/share-ace.js'/>

  • Added support for type-specific APIs to be added to Document. Blog post
  • Added window.sharejs.version and require('share').version fields
  • Added more tests for the closure compiled code
  • Removed documentation in /docs (thats what the wiki is for)
  • Rewrote ace editor code to use new text API instead of generating ops directly
  • Updated to the most recent version of ace (Issue #21)
  • Renamed share-ace.js to ace.js. Code using the ace editor should be updated. share-ace.js is still there for now, but it will be removed in a subsequent version of ShareJS.