Commit 824d9580 authored by Neil Williams's avatar Neil Williams Committed by Senthil Kumaran Shanmugasundaram
Browse files

Deprecate Jessie in favour of Stretch

Add notes on Python3 development.

Change-Id: I53a8b9dee7591a58340eec0073b7214c017ecb65
parent 1e9c1aa4
......@@ -9,11 +9,14 @@ LAVA no longer supports development on Ubuntu.
Packages for LAVA are available for:
* Debian Jessie (oldstable) - with backports
* Debian Stretch (stable) - with backports
* Debian Buster (testing)
* Debian Sid (unstable)
Packages will remain available for Debian Jessie (oldstable) with backports
until June 2018 as security support for Jessie will end. Developers are
recommended to use Debian Stretch or Buster for development.
When using the packages to develop LAVA, there is a change to the workflow
compared to the old lava-deployment-tool buildouts.
......@@ -26,7 +29,7 @@ compared to the old lava-deployment-tool buildouts.
stable in Debian are always built in a stable chroot or VM for this
reason.
.. index:: developer - preparation, lava-dev
.. index:: developer: preparation, lava-dev
.. _developer_preparations:
......@@ -40,13 +43,6 @@ a full desktop environment is already installed::
$ sudo apt install lava-dev
.. note:: There are problems with the version of ``python-sphinx`` in jessie
for building the documentation. Newer versions of ``lava-dev`` depend on
the version of ``python-sphinx`` from ``jessie-backports``::
$ sudo apt -t jessie-backports install python-sphinx
$ sudo apt install lava-dev
If you want to build local packages on a headless box or a system with limited
space, you can trim the set of dependencies by pre-installing
``pinentry-curses`` instead of the default ``pinentry-gtk2``. QEMU is still
......@@ -223,6 +219,60 @@ From August 2015, LAVA uses git tags without a leading zero on the month
number, in accordance with PEP440, so the git tag will be ``2015.8`` instead of
``2015.07`` used for the previous release tag.
.. index:: developer: python3
.. _developer_python3:
Development using Python3
*************************
LAVA has been moving towards Python3 support as an integral part of the
migration to V2 and with the completion of the migration and the removal of the
V1 codebase, `the announcement has been made
<https://lists.linaro.org/pipermail/lava-announce/2017-June/000032.html>`_ that
all LAVA packages will move exclusively to Python3 support.
Both lava-server and lava-dispatcher optionally support running the unit tests
with Python3 using the ``-a`` option to ``./ci-run``.
In due course, the internal CI within LAVA (called ``lavabot``) will support
running the Python3 unit tests for lava-server as well as lava-dispatcher. At
this point, **all** reviews **must** pass the unit tests when run with Python3.
Once builds for Debian Jessie cease, support for Python2 will be dropped and
**only** Python3 will be supported.
The 2018.2 release of LAVA will enable both Python2 and Python3, so that
installations will bring in both sets of dependencies to allow both sets of
unit tests to be run. At runtime, LAVA will still use Python2 for the 2018.1
release but will switch over when support for Jessie ceases.
In the meantime, the :ref:`dev_builds` can support Python3 by using the ``-b``
option to specify the ``python3`` branch::
$ /usr/share/lava-server/debian-dev-build.sh -p lava-server -b python3
$ /usr/share/lava-server/debian-dev-build.sh -p lava-dispatcher -b python3
.. note:: The first time you install a package built using the ``python3``
branch, you are likely to see dependency failures which block the install.
Check the information about the newly built packages and ensure that the
relevant dependencies are installed. In particular,
``python3-django-auth-ldap`` will need to be installed from
``stretch-backports``.
Python3 dependencies include:
python3-django (>= 1.8), python3-django-auth-ldap (>= 1.1.8),
python3-django-restricted-resource (>= 2015.09),
python3-django-tables2 (>=1.2), python3-docutils, python3-jinja2,
python3-markdown, python3-psycopg2, python3-simplejson,
python3-voluptuous (>= 0.8.8), python3:any (>= 3.3.2-2~),
python3-configobj, python3-magic, python3-netifaces (>=0.10.0),
python3-nose, python3-pexpect (>= 4.2), python3-pyudev (>= 0.21),
python3-requests, python3-serial, python3-setproctitle (>= 1.1.8),
python3-tz, python3-yaml, python3-zmq, python3-guestfs (>= 1.32.7)
.. _quick_fixes:
Quick fixes and testing
......@@ -237,10 +287,8 @@ packages use python2.7, so the path is beneath
$ sudo cp <git-path> /usr/lib/python2.7/dist-packages/<git-path>
.. tip:: This path has recently changed - there are no files in
``/usr/share/pyshared/`` after change in python2.7.
However, this does simplify changes which involve new
files.
.. warning:: To fix failures in the Python3 unit tests, the **same** change
will also need to be copied to ``/usr/lib/python3/dist-packages/``.
Viewing changes
***************
......
......@@ -20,7 +20,7 @@ These instructions cover installation on Debian. The supported versions are:
+---------------+------------------------+--------+----------------------+
| Debian | Stretch (stable) | 9.0 | Yes [#f2]_ |
+---------------+------------------------+--------+----------------------+
| Debian | Jessie (oldstable) | 8.0 | Yes [#f3]_ |
| Debian | Jessie (oldstable) | 8.0 | Deprecated [#f3]_ |
+---------------+------------------------+--------+----------------------+
Debian uses codenames for releases (buster, stretch, jessie, wheezy,
......@@ -56,18 +56,15 @@ that codename in the table.
the relevant production release available from the
:ref:`lava_repositories`.
.. [#f3] Jessie was released on April 25th, 2015. All updates to LAVA packages
for Jessie will be made using `jessie-backports`_. Systems using
Debian Jessie are recommended to enable jessie-backports. LAVA
packages and dependencies which are installed using jessie-backports
are **fully supported** by upstream and are the same codebase as the
relevant production release available from the
:ref:`lava_repositories`.
.. [#f3] Jessie was released on April 25th, 2015 and security support for
Jessie is expected to terminate in June 2018. All instances using
Jessie are recommended to upgrade to Debian Stretch as soon as
possible. Remaining updates to LAVA packages for Jessie will be made
using `jessie-backports`_.
.. [#f4] `buster` is the name of the next Debian release after Stretch, which
is supported automatically via uploads to Sid (unstable).
.. _experimental: https://wiki.debian.org/DebianExperimental
.. _jessie-backports: http://backports.debian.org/
......@@ -98,6 +95,19 @@ In times when the current production release has not made it into either
or a pre-release package freeze in Debian), this repository can be used
instead.
The :file:`services-trace.txt` file in the repository shows the latest update
timestamp and is accompanied by a GnuPG signature of the trace file, signed
using the :ref:`lava_archive_signing_key`.
Interim builds (including release candidates) are available in the staging
repository, using the same suites::
deb https://images.validation.linaro.org/staging-repo stretch-backports main
deb https://images.validation.linaro.org/staging-repo jessie-backports main
This repository uses the same key as the production repository.
There are differences in how the packages are built between
``jessie-backports`` and ``stretch-backports`` but the contents are otherwise
the same for the same upstream version.
......@@ -105,6 +115,8 @@ the same for the same upstream version.
Stretch users
-------------
.. note:: The recommended base for LAVA is Debian Stretch, as of 2018.1.
::
deb https://images.validation.linaro.org/production-repo stretch-backports main
......@@ -112,6 +124,8 @@ Stretch users
Jessie users
-------------
.. caution:: Deprecated - please upgrade Jessie systems to Stretch.
::
deb https://images.validation.linaro.org/production-repo jessie-backports main
......@@ -119,22 +133,6 @@ Jessie users
.. note:: The packages formerly in the ``sid`` suite in the repository are
not being updated after 2017.6.
The :file:`services-trace.txt` file in the repository shows the latest update
timestamp and is accompanied by a GnuPG signature of the trace file, signed
using the :ref:`lava_archive_signing_key`.
Interim builds (including release candidates) are available in the staging
repository, using the same suites::
deb https://images.validation.linaro.org/staging-repo sid main
deb https://images.validation.linaro.org/staging-repo stretch-backports main
deb https://images.validation.linaro.org/staging-repo jessie-backports main
This repository uses the same key as the production repository and uses ``sid``
in the same way.
.. _archive_repository:
Archive repository
......@@ -371,6 +369,9 @@ require updates from backports.
Installing on Debian Jessie
===========================
.. caution:: Deprecated - new LAVA instances should no longer use Debian
Jessie.
Debian Jessie was released on April 25th, 2015, containing a full set of
packages to install LAVA at version 2014.9. Debian stable releases of LAVA do
not receive updates to LAVA directly, so a simple install on Jessie will only
......@@ -488,7 +489,7 @@ All of these packages can be installed separately alongside the main
set. ::
$ sudo apt install postgresql
$ sudo apt -t jessie-backports install lava
$ sudo apt -t stretch-backports install lava
$ sudo a2dissite 000-default
$ sudo a2enmod proxy
$ sudo a2enmod proxy_http
......@@ -499,6 +500,31 @@ set. ::
:ref:`authentication_tokens` and the :ref:`first job definition
<first_job_definition>`.
.. index:: python3
.. _lava_python3:
LAVA and Python3
================
Python2 has been `marked as end of life
<http://legacy.python.org/dev/peps/pep-0373/>`_ and distributions are in the
process of removing packages which depend on Python2. Django has had Python3
support for some time and will be dropping Python2 support in the next LTS.
(The current non-LTS release of django, version 2.0, has already dropped
support for Python2.)
LAVA has been moving towards Python3 support as an integral part of the
migration to V2 and with the completion of the migration and the removal of the
V1 codebase, `the announcement has been made
<https://lists.linaro.org/pipermail/lava-announce/2017-June/000032.html>`_ that
all LAVA packages will move exclusively to Python3 support.
Supporting LAVA with Python3 on Debian Jessie is awkward and as Jessie is now
deprecated and will have security support dropped in 2018, the decision has
been taken to **not** support Python3 in Jessie for LAVA packages. The move to
Python3 will therefore happen with the move to Stretch.
Setting up a reverse proxy
==========================
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment