[mythtv] Backwards compatibility

Lawrence Rust lvr at softsystem.co.uk
Tue Jan 5 18:36:01 UTC 2016

Hi all,

Over the holidays I've been thinking about how to increase the amount of
testing that the master branch gets.  One of the common stumbling blocks
to more universal acceptance is that many Myth users have a 'production'
backend running an older version, often 0.27, which is incompatible with
the latest Myth protocol and database schema.

Proper testing of the master branch requires the setting up of a new
backend with tuners etc.  Many potential testers are unhappy disturbing
their 'production' backend that is used for daily recording - me
included.  Indeed, in the course of developing the Raspberry Pi frontend
I could have benefited from testing with a live BE,  What's more, I have
been asked several times whether there was a way to have the master
branch code work with a 0.27 backend.

This set me thinking - how difficult would it be to achieve backwards
protocol and schema compatibility for the frontend?  So over the weekend
I tried some ideas:

1. Enable read-only access to old old database schema.
2. Fallback to an old version of the Myth comms protocol.
3. Provide a translation layer for updated protocol requests
4. Provide a translation layer for serialised data structs.

I've made a new branch devel/lvr/backcompat.  The current state of
affairs is that I can connect to my production BE and watch recordings,
livetv and videos.  After creating a Music SG I can also play music.

My question is: Is there any mileage in this for general use?

Comments and suggestions most welcome.

-- Lawrence Rust

More information about the mythtv-dev mailing list