Version compatibility

Client Server Protocol Recording
2.2 beta 2.x.x dp:4.22.2 22.2
2.1.4–2.1.17 dp:4.21.2 21.2
2.1.3
2.1.2
2.1.0, 2.1.1
2.0.9–2.0.11 dp:4.20.1 20.1
2.0.8
2.0.6, 2.0.7
2.0.0–2.0.5
1.0.5, 1.0.6 1.0.x 15.6 ≤15.6
1.0.4
1.0.3
1.0.0–1.0.2

Notes about compatiblity

  • All clients in the same session must share the exact protocol version number (e.g. dp:4.20.1)
  • A client can use any server that supports the same server protocol version (4 in case of Drawpile 2.0.) However, some new features may not work with older servers.
  • The (new style) protocol version number consists of four parts:
    1. namespace (dp)
    2. server version (4, indicates change to client↔server protocol)
    3. major version(20, indicates change to client↔client message structure)
    4. minor version (1, indicates change to client↔client message semantics)
  • See the protocol version history for details

Stability promises

  • Compatibility is never broken in patch releases (e.g. 2.0.0 → 2.0.1)
  • Client compatability may only be broken between minor number bumps (e.g. 2.0.0 → 2.1.0)
  • Server compatibility may only be broken between major number bumps (e.g. 2.0.0 → 3.0.0)
  • Any new feature added without a protocol version bump must be backward/forward compatible

Notes about recording compatiblity

  • Version 1.0.6 can play recordings made with all previous versions (exact reproduction not guaranteed)
  • Version 2.0.0 cannot play recordings made with older versions
  • Opening recordings with a newer minor number will likely produce unexpected results
  • Opening recordings with a newer major number will likely result in missing drawing actions