Version compatibility
Client |
Server |
Protocol |
Recording |
2.2 beta 4 |
2.x.x |
dp:4.24.0 |
24.0 |
2.2 pre-beta 4 |
dp:4.23.0 |
23.0 |
2.2 beta 1 to 3 |
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 |
- All clients in the same session must share the exact protocol version number (e.g.
dp:4.20.1
), unless they happen to provide additional compatibility modes.
- 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 protocol version number consists of four parts:
- namespace (
dp
)
- server version (
4
, indicates change to client↔server protocol)
- major version(
20
, indicates change to client↔client message structure)
- 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