aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-common/src/meshbay_common/__init__.py
blob: 1f82f884c6453e6c1c5e0e993a64ff468493c131 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
"""MeshBay common — shared crypto primitives and protocol types."""

__version__ = "0.7.0"
# 0.2: added PING/PONG, and `before`/`has_more` on chat history. Both are
# additive — an 0.1 peer sends no `before` and gets the newest page, which is
# what it wanted — so this is a MINOR bump, not a MAJOR one.
# 0.4: added `apps_enabled`/`apps_enabled_ack`, and `enabled_apps` on the
# handshake ack, for the group-applications registry. Additive — a node that
# predates it is never sent the op, and a client that predates it never looks
# for the field — so this is a MINOR bump too.
# 0.5: added `width`/`height`/`display_title`/`season`/`episode` to
# `IndexEntry`, started populating the already-declared `duration`/
# `thumb_hash`, and added `media_meta_req`/`media_meta_resp`, for the Videos
# group app. Additive — an older client simply doesn't render the new
# fields — so this is a MINOR bump too.
# 0.6: added `season_meta_req`/`season_meta_resp` (per-season TMDB overview,
# rather than one static show-level summary applied to every season alike)
# and `tmdb_search_req`/`tmdb_search_resp` + `tmdb_override`/`tmdb_override_ack`
# (an operator correcting a wrong automatic TMDB match, found live against a
# real show fragmented across TMDB entries per season). All additive.
# 0.7: added `tmdb_enabled`/`tmdb_enabled_ack` — whether TMDB is used moved
# from a node-wide setting to per-group (an operator running a real media
# library alongside test/demo groups on one node wants outbound TMDB traffic
# for one, not all of them). `tmdb_config`/`tmdb_config_ack` keep their name
# but now only cover the token/language, which stay node-wide. Additive: an
# older client simply never sends/handles the new pair.
# 0.8: added `artist`/`album`/`track_no` to `IndexEntry`, and
# `musicbrainz_config`/`_ack`, `musicbrainz_enabled`/`_ack`,
# `music_meta_req`/`_resp`, for the Music group app (docs/musicbay.md).
# Same shape as 0.5-0.7's Videos additions, and reuses `duration`/
# `thumb_hash`/`display_title` rather than declaring new ones. Additive:
# an older client simply doesn't render the new fields or send the new
# messages.
# 0.9: added `audio_transcode_req`/`_resp` — WMA and Musepack tag/cover
# fine but decode in no mainstream browser's <audio> element at all, so
# the node transcodes to AAC/M4A on request and caches the result the same
# way a TMDB poster or MusicBrainz cover is cached. Additive: an older
# client never sends the request, and simply can't play those two formats,
# same as before this existed.
# 0.10: added `audio_root`/`_ack` — the Music app's own entry point, same
# shape as `video_root`/`_ack`. Reverses musicbay.md's original "no root,
# whole shared tree" call: a real messy library showed that call was
# wrong, and Music now requires one before showing/enriching anything,
# exactly like Videos. Additive at the protocol level: an older client
# never sends the op and never expects the field.
# 0.11: added `taken_at`/`camera` to `IndexEntry` (best-effort, from a photo's
# own EXIF block) and `photo_roots`/`photo_roots_ack`, for the Photos group
# app (docs/photos.md). Unlike `video_root`/`audio_root`, `photo_roots` is a
# *set*, replaced whole in one signed op — a photo library is routinely
# scattered across several folders, not one. Additive: an older client
# never sends the op and never expects either field.
# 0.12: added `link_preview_req`/`link_preview_resp` — the node unfurls a URL
# pasted in chat into an OpenGraph card. Additive: an older node logs "unknown
# type" and the client just shows the bare link, as it always did.
MNP_VERSION = "0.12"
MHP_VERSION = "0.1"