forked from josephg/ShareJS
-
Notifications
You must be signed in to change notification settings - Fork 0
Changelog
josephg edited this page Jan 25, 2012
·
26 revisions
- 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')
toconnection.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
toUserAgent
- Renamed
agent.id
toagent.sessionId
- Added
agent.name
optional field which you can use to tell everyone a client's id
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
- Switched to from Closure to UglifyJS - Blog post
- Removed
remotePort
from auth'sclient
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
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
toDoc
to avoid confusion withwindow.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.
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
andrequire('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
toace.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.