This is a long mail but there is a lot to cover...
Stretch ======
Debian Stretch is expected to be released on June 17 2017: https://lists.debian.org/debian-devel-announce/2017/05/msg00002.html
As has been mentioned on this list before - admins MUST check the apt sources for all machines *NOW* to ensure that all your Debian apt sources are pointing at 'jessie' NOT 'stable' if you are to be able to manage the upgrade yourself.
What you want in /etc/apt/sources.list and /etc/apt/sources.list.d/* is:
deb http://mirror.bytemark.co.uk/debian jessie main deb http://mirror.bytemark.co.uk/debian jessie-backports main
(The mirror you choose is up to you.)
If you find any apt sources referencing 'stable' or 'testing' CHANGE THESE NOW or those systems could automatically upgrade to Stretch or Buster respectively on 17th June.
As with all such releases, production machines are recommended to allow some time for final testing before doing the upgrade. The Cambridge LAVA lab is expected to upgrade from Jessie to Stretch during August 2017. The LAVA software team have been doing testing of this upgrade for some time, without issues. However, real machines with extra packages and local admin configuration cannot be tested in this way, so each lab should take some time to plan when and how to do the upgrade. (Hint: have a backup and check that it can be restored correctly before starting.) https://validation.linaro.org/static/docs/v2/admin-backups.html
There has been a fix for lava-server in stretch to smooth the upgrade for those users who have not installed lava-server from jessie-backports. Those already running 2017.* are not affected by this change and can continue using jessie-backports and the LAVA repositories as before. Stretch will release with lava-server 2016.12-2 and python-django 1:1.10.7-2
Once Stretch is released, Debian testing will be called 'buster', Debian stable will be 'stretch' and Debian oldstable will be 'jessie'.
At a later date, jessie-backports will be opened again and a new stretch-backports will become available. New LAVA production releases will be uploaded to unstable to migrate into testing (buster) and then be backported to stretch-backports and jessie-backports. The LAVA repositories will be updated as well.
Support for jessie-backports will continue after stretch-backports support is added but cannot continue indefinitely. At some point, all instances will need to have moved to Stretch to continue getting updates of LAVA. (Prior to the process of releasing Debian Buster, the jessie packages will be dropped from the archive, including jessie-backports.)
Changes in LAVA repositories =======================
2017.6 will be released in the same way as previous releases in 2017 - to the LAVA repository for use on jessie using jessie-backports.
At a later point, 2017.6 will be uploaded to Debian unstable for migration into testing (buster). Only developers should install that version as Debian unstable can be problematic in the first few weeks after a Debian stable release.
There are changes in how the lava packages are built on jessie versus on stretch, so the lava repositories will be split. I'll be updating the documentation in 2017.6 to cover the changes required to help admins use the new suites. There will be a new jessie-backports suite and a new stretch-backports suite. The existing 'sid' or unstable suite will have no uploads after 2017.6.
This will be covered again in the 2017.6 release email and again with 2017.7. For now, no changes are required.
Once the new suites are announced, admins who choose to upgrade to Stretch would use the stretch-backports suite from the LAVA repository.
deb https://images.validation.linaro.org/production-repo stretch-backports main
Those who will upgrade later, would use jessie-backports from the LAVA repository.
deb https://images.validation.linaro.org/production-repo jessie-backports main
The purpose of these suites is to allow admins to choose to upgrade to the latest production release for jessie or stretch without waiting for the migration of the packages into Debian testing and the subsequent uploads to backports. The packages are otherwise the same.
Django ======
Longer term, there have been a lot of discussions within Debian about managing django releases. The plan is that only django LTS releases will be available in Debian unstable, testing and therefore stable after the Stretch release. Non-LTS releases will only be available in Debian experimental. This means that lava-server will migrate from one django LTS to the next django LTS with future Debian releases. The LAVA software team will manage how deprecation cycles within django affect lava-server.
This does have the issue that the version of django in Debian stable will be towards the end of the upstream support cycle but it is better than having a non LTS django release in Debian stable. Synchronising releases across multiple upstream teams is not feasible.
The next django LTS release after 1.8 is 1.11 which is expected to be in the next Debian stable release - buster.
https://www.djangoproject.com/download/
Python3 ========
The last django LTS release to support python2.7 will be 1.11 LTS which retains upstream security and data loss bug fix support until at least April 2020.
The LAVA software team have already been testing lava-dispatcher V2 with python3. Once the V1 code is removed from lava-server, testing will proceed for lava-server too. We fully expect to be able to support lava-dispatcher V2 and lava-server V2 on python2.7 and python3 for a limited time.
There will never be python3 support in lava-dispatcher V1 or lava-server V1.
Python2.7 support for lava-dispatcher V2 and lava-server V2 will be removed at some point prior to the release of the next django LTS after 1.11 which is 2.2 LTS, due in April 2019.
Once django 2.0 (non-LTS) arrives in Debian experimental, the LAVA software team will begin testing lava-dispatcher V2 and lava-server V2 with python3. For some period in 2018, both python2 and python3 will be supportable but only when building local developer packages. LAVA production releases will stay on python2.7 during testing with python3. Once we are happy that python3 support is ready, there will be an email to this list and the following production release will provide only python3 packages. This change will be transparent for most instances, the upgrade will simply pull in a lot of python3 packages and the python2 packages will be left unused.
Reviews and contributions to lava-dispatcher V2 already run the unit tests with python3 and once the V1 code is removed, this will start to happen with the lava-server code as well.
LAVA can move to python3 at any time once the V1 code is removed - all the necessary support is already available in Jessie. LAVA will have to move to python3 before django 2.2LTS is the only version of django released in Debian stable.
Details of how this will be managed are yet to be defined. We expect to continue parallel support of python2.7 and python3 for a limited time.
It is likely that support for jessie-backports would need to cease before support for both python2.7 and python3 is included, just to manage to matrix of builds and tests. LAVA can support python3 using django 1.11LTS but must drop support for python2.7 to support django 2.2LTS.
Summary =======
17th June 2017 - expected date of Debian Stretch release
August 2017 - migration of Cambridge lab to Debian Stretch instead of Jessie
November/December 2017 - removal of V1 codebase
Q1 2018 - testing with django 1.11 LTS
Q2 2018 - testing with python3, likely end of support for jessie-backports
Q3/4 2018 - add python3 support
Q1 2019 - drop python2.7 support.
April 2019 - release of django 2.2LTS
lava-announce@lists.lavasoftware.org