-
Notifications
You must be signed in to change notification settings - Fork 42
Enable deployment on Python 3.7 systems #135
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
You can view the result of the Travis jobs run on a staged repository here: https://travis-ci.org/fnordahl/flux-capacitor/builds/520189327 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm overall +1 on this proposal, and I really like the idea of having tests for this layer against all the different series.
We should probably add an exclude
rule to this layer's layer.yaml
to keep the new files from ending up in every charm.
I enabled this repo on Travis, but can't get it to trigger a build. Can you push a commit or perhaps close and re-open the PR to trigger the build? |
The Kubernetes team has requested that this PR be held until the in-progress 1.15 release is completed, just to be safe. |
The ``python-apt`` package is a wrapper around the ``apt`` C++ library which is tightly connected to the version of the distribution it is shipped on. This in turn makes it incredibly hard to distribute as a wheel for a charm that supports a large span of distro versions. We do not want to rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see discussion in LP: #1824112 and canonical/layer-basic#135
The ``python-apt`` package is a wrapper around the ``apt`` C++ library which is tightly connected to the version of the distribution it is shipped on. This in turn makes it incredibly hard to distribute as a wheel for a charm that supports a large span of distro versions. We do not want to rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see discussion in LP: #1824112 and canonical/layer-basic#135
The ``python-apt`` package is a wrapper around the ``apt`` C++ library which is tightly connected to the version of the distribution it is shipped on. This in turn makes it incredibly hard to distribute as a wheel for a charm that supports a large span of distro versions. We do not want to rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see discussion in LP: #1824112 and canonical/layer-basic#135
No worries, let's hurry this slowly @johnsca One of the main obstacles people may face in a non-system python packages world is a dependency on I also have functional test results for a pre-existing charm on trusty through bionic with these bits [0][1], and another one on bionic through disco [2][3]. 0: https://openstack-ci-reports.ubuntu.com/artifacts/test_charm_pipeline_func_full/openstack/charm-aodh/655370/2/3251/consoleText.test_charm_func_full_6433.txt |
The ``python-apt`` package is a wrapper around the ``apt`` C++ library which is tightly connected to the version of the distribution it is shipped on. This in turn makes it incredibly hard to distribute as a wheel for a charm that supports a large span of distro versions. We do not want to rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see discussion in LP: #1824112 and canonical/layer-basic#135
The ``python-apt`` package is a wrapper around the ``apt`` C++ library which is tightly connected to the version of the distribution it is shipped on. This in turn makes it incredibly hard to distribute as a wheel for a charm that supports a large span of distro versions. We do not want to rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see discussion in LP: #1824112 and canonical/layer-basic#135
To support Python 3.7 we need to unpin ``pip``, recent versions of ``pip`` require recent versions of ``setuptools``. To have the charm use the bundled version of ``setuptools`` ``include_system_packages`` must be set to ``false``.
When deploying on a system with Python 3.7 the currently pinned ``pip`` version will be overridden as the pin set does not include a version of ``pip`` with Python 3.7 support. Set upper constraints for ``pip`` to retain Python 3.4 support. Set upper constraints for ``setuptools`` just in case.
When building dependencies ``pip`` will want to source ``wheel`` from the wheelhouse. Ref logs in LP: #1824112
Trusty went EOL April 2019 for standard support, it does however live on in ESM. Update ``distro-info`` package to ensure the functional test can still deploy ``trusty``. Increse loglevel to avoid Travis timing out the job prematurely when under high load.
Also enables Python 3.4 lint and unit tests.
The ``python-apt`` package is a wrapper around the ``apt`` C++ library which is tightly connected to the version of the distribution it is shipped on. This in turn makes it incredibly hard to distribute as a wheel for a charm that supports a large span of distro versions. We do not want to rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see discussion in LP: #1824112 and canonical/layer-basic#135
The ``python-apt`` package is a wrapper around the ``apt`` C++ library which is tightly connected to the version of the distribution it is shipped on. This in turn makes it incredibly hard to distribute as a wheel for a charm that supports a large span of distro versions. We do not want to rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see discussion in LP: #1824112 and canonical/layer-basic#135
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pending the imminent merge up the aforementioned charmhelpers PR, I see no blockers on this. +1
* setup: Add missing ``psutil`` dependency * Add module with subset of ``apt_pkg`` API The ``python-apt`` package is a wrapper around the ``apt`` C++ library which is tightly connected to the version of the distribution it is shipped on. This in turn makes it incredibly hard to distribute as a wheel for a charm that supports a large span of distro versions. We do not want to rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see discussion in LP: #1824112 and canonical/layer-basic#135 * Make c-h use provided apt_pkg compability shim * Detect consumer use of upstream ``apt_pkg`` module When our consumer use the upstream ``apt_pkg`` module in conjunction with the apt_cache helper function, they may expect us to call ``apt_pkg.init()`` for them. Detect this situation, log a warning and make the call to ``apt_pkg.init()`` to avoid the consumer Python interpreter from crashing with a segmentation fault. * Improve string handling in ``upstream_version`` * Update ``apt_cache`` function signature Make it more clear that any arguments will be ignored. * Use AttributeDict trick for ``_container`` class * Accept any kw args to apt_cache for compability
charmhelpers 0.20.0 is released, so moving forward with this merge. |
Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: I0f136f7c1e0e5509f5f2aa5904f89dbd4a227682
* Update charm-barbican from branch 'master' - Distribute direct charm dependencies Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: I0f136f7c1e0e5509f5f2aa5904f89dbd4a227682
Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: Ic89bbc395d970039e5da4fe131b0feab9ed0f0a2
Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: I99aa452221bea06331519c3a6cf3fde18c75c879
* Update charm-nova-cell-controller from branch 'master' - Distribute direct charm dependencies Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: I99aa452221bea06331519c3a6cf3fde18c75c879
Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: I03b866648183124cca354c63a81628fcb61ffcd3
* Update charm-designate from branch 'master' - Distribute direct charm dependencies Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: I03b866648183124cca354c63a81628fcb61ffcd3
Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: I23c08f50f1d193a91a02e3f654202a5269ba9590
* Update charm-pacemaker-remote from branch 'master' - Distribute direct charm dependencies Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: I23c08f50f1d193a91a02e3f654202a5269ba9590
Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: Ie868ed20563d3e37e19ba513ccffe575923bb9e4
* Update charm-ceph-fs from branch 'master' - Distribute direct charm dependencies Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: Ie868ed20563d3e37e19ba513ccffe575923bb9e4
Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: I29304997cdbe3987fb0e55d3ea67b20550653704
* Update charm-barbican-vault from branch 'master' - Distribute direct charm dependencies Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: I29304997cdbe3987fb0e55d3ea67b20550653704
Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: Id459b11c110ef0454c665c312824791bdb2f0f38
* Update charm-vault from branch 'master' - Distribute direct charm dependencies Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: Id459b11c110ef0454c665c312824791bdb2f0f38
Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: I2d728072bfca20e612c2d4c9178095a22f83631c
* Update charm-manila-generic from branch 'master' - Distribute direct charm dependencies Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: I2d728072bfca20e612c2d4c9178095a22f83631c
Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: I11fb4020dc358c40bf9c1870e94186ba7e97c2db
* Update charm-keystone-saml-mellon from branch 'master' - Distribute direct charm dependencies Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: I11fb4020dc358c40bf9c1870e94186ba7e97c2db
Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Update domain name uesd in ``.gitreview``. Change-Id: Ib8476c72020c0a1fbb2549c3ceeafac7f12f3efe
* Update charm-masakari from branch 'master' - Distribute direct charm dependencies Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Update domain name uesd in ``.gitreview``. Change-Id: Ib8476c72020c0a1fbb2549c3ceeafac7f12f3efe
Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Fix charm locations in functional test bundles. Change-Id: I7ad4b548669989f778c604addb1aa873f958a5f9
* Update charm-masakari-monitors from branch 'master' - Distribute direct charm dependencies Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Fix charm locations in functional test bundles. Change-Id: I7ad4b548669989f778c604addb1aa873f958a5f9
Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: Ie36ead6090021bb751d04f19796761ed577781bd
Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: Ie868ed20563d3e37e19ba513ccffe575923bb9e4
Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see discussion in LP: #1824112 and canonical/layer-basic#135 Change-Id: Ie868ed20563d3e37e19ba513ccffe575923bb9e4
Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: Ie868ed20563d3e37e19ba513ccffe575923bb9e4
Do not rely on system installed Python packages but distribute the direct charm dependencies as part of the charms wheelhouse. As the span of distributions we need to support with reactive charms widens we will run into compability problems with the current model. For further reference see juju/charm-helpers#341 and canonical/layer-basic#135 Change-Id: I129ca4506e44abc1e062d5545ff52f992f86a3b9
The current wheelhouse pin set in
layer-basic
raises challenges when deploying to systems with Python 3.7 as the default Python interpreter.The pinned version of
pip
does not have Python 3.7 support and newer versions ofpip
require newer versions ofsetuptools
.To be able to use newer versions of
setuptools
the charm needs to disableinclude_system_packages
in layer.yaml.To tackle all this I propose we flip the default of
include_system_packages
to false and unpinpip
andsetuptools
.