...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
# https://stackoverflow.com/a/48285243 cd pegasus-src/lib/pegasus/python/ # Debian 9 docker run -i --rm -w /srv -v `pwd`:/srv debian:9 bash -s <<EOT apt-get update && apt-get -y install python-pip python-setuptools debhelper pip install stdeb rm -rf ./x pip download --no-binary=:all: . -d x cd x tar zxvf pika-1.1.0.tar.gz cd pika-1.1.0 python setup.py --command-packages=stdeb.command bdist_deb EOT # CentOS 7 docker run -i --rm -w /srv -v `pwd`:/srv centos:7 bash -s <<EOT yum -y install epel-release yum -y install python36-pip python36-setuptools rpm-build rm -rf ./x pip download --no-binary=:all: . -d x cd x tar zxvf pika-1.1.0.tar.gz cd pika-1.1.0 python3 setup.py bdist --formats=rpm |
Minimum Python Version
Pegasus Code except Worker Package
Lowest common version across supported platforms is
Worker Package
Lowest common version across supported platforms is /
Mats Rynge Can we expect Python 2.7 to be available on CentOS 6?
Mats Rynge List Python components included in worker package.
- Use python-six compatibility library.
- Refactor code such that Python 3 code is made Python 2 compatible instead of the opposite.
- See: https://python-future.org/compatible_idioms.html
- See: https://docs.python.org/3/howto/pyporting.html
Pegasus Code except Worker Package
Continue src/externals
Platform specific packages, python-flask
Will need to test with the lowest common available version across supported platforms.
Will require more platform specific integration tests.
Run pre/post install scripts to install using pip, i.e. pip install Flask.
Mats Rynge Do .rpm, .deb packages support this? Mats: this is only allowed if you do into your own space (which is similar to what we do with externals. You are not allowed to pip install to the system location)
Packages may conflict with system installed packages. yum install python-flask (v0.9) vs pip install Flask (v1.0.2)
Latter two will require more platform specific integration tests to detect incompatible, missing dependencies.
Worker Package
Continue src/externals
Only for packages not expected to be available on supported platforms.
"Vendorize"
Copy dependency code into Pegasus.vendor directory.
Code Block | ||||
---|---|---|---|---|
| ||||
# Instead of this
import six
# Use this
import Pegasus.vendor.six |
Testing
Environment
...
Using pytest instead of unittest
...
See: https://docs.pytest.org/en/latest/contents.html
Pegasus Code except Worker Package
Continue src/externals
Platform specific packages, python-flask
Will need to test with the lowest common available version across supported platforms.
Will require more platform specific integration tests.
Run pre/post install scripts to install using pip, i.e. pip install Flask.
Mats Rynge Do .rpm, .deb packages support this? Mats: this is only allowed if you do into your own space (which is similar to what we do with externals. You are not allowed to pip install to the system location)
Packages may conflict with system installed packages. yum install python-flask (v0.9) vs pip install Flask (v1.0.2)
Latter two will require more platform specific integration tests to detect incompatible, missing dependencies.
Worker Package
Continue src/externals
Only for packages not expected to be available on supported platforms.
"Vendorize"
Copy dependency code into Pegasus.vendor directory.
Code Block | ||||
---|---|---|---|---|
| ||||
# Instead of this
import six
# Use this
import Pegasus.vendor.six |
...
-- RESOLVED --
Minimum Python Version
Pegasus Code except Worker Package
Lowest common version across supported platforms is
Worker Package
Lowest common version across supported platforms is /
Mats Rynge Can we expect Python 2.7 to be available on CentOS 6?
Mats Rynge List Python components included in worker package.
- Use python-six compatibility library.
- Refactor code such that Python 3 code is made Python 2 compatible instead of the opposite.
- See: https://python-future.org/compatible_idioms.html
- See: https://docs.python.org/3/howto/pyporting.html