← Back to team overview

duplicity-team team mailing list archive

Re: Progress on 0.8.0

 

Thanks Ken,

On Jun 1 2019, at 4:45 pm, Kenneth Loafman <kenneth@xxxxxxxxxxx> wrote:
> Launchpad runs tests when building the package. It will fail if something is wrong.

Sure, and that is really helpful, but that is only at/post release time, rather than on merge to trunk.
>
> I am working on a dev PPA for 0.8.xx but I'm having some issues. Missing packages for one. Having to understand unclear errors is the main one.
Presumably to do with the Python 3 enablement, rather than anything to do with the actual 0.8 changes? I was tracking some of the backends that seemed problematic for us with Python 3 in the first paragraph of:
https://blueprints.launchpad.net/duplicity/+spec/python3
please feel free to update there/add bugs for anything that is not working if you want help.

I would not be averse to just cutting off non-python3 backends behind a "Sorry, this does not yet work on Python 3" error. It obviously does not solve the problem, but would let us get python3-compatible debs out the door (which is pretty vital with distros busy kicking out anything non-python3 in advance of the python2 EOL) and then work on updating the backends after that -- it may also encourage contributions from those who actually use those backends.
> We can add the Snap package to the PPA if that helps.
I agree that, in the medium and long term, we should replace the PPAs with Snap packages.
Once we are happy that the Snap is working well enough (I have had nearly zero feedback on whether it is working for others), I think step one is to encourage new users who want a non-distro-supplied version (e.g. if they have a bug or need a later version) to install duplicity that way instead of through the PPAs. That essentially means that we on the team are effectively only targeting one release/set of package versions at a time (currently Ubuntu Bionic).
If that is going well we can then just stop updating the PPAs and anyone wanting further updates can move over to the Snap. I believe some packages then push an updated package to the PPAs that installs the Snap instead.
> > > > > On py2 I cannot get past to import even though it's in tox and local site-packages. This causes all of the functional tests to fail.
> > > > Do we need this on Py2? Isn't it to provide Python 2-equivalent functionality in Python 3? Can we put the import within a test for Python version (and then obviously in future move over to using Python 3 constructs).
> > > >
> > >
> > > Yes, past.old_div() is used in multiple modules to keep away from py3's broken division.
> > >
> > >
> > >
> >
> > I am still getting this when trying to do ./run-tests on trunk, but I see you managed to get 0.8.00 out the door -- how did you fix it on your machine?
>
>
> I did a clean install on a Ubuntu Bionic VM and that worked.
Hmmm... Did you install anything from outside the Bionic repos (e.g. pip etc) to make it work?
When I try to run our tests on a clean 18.04 environment, I'm getting an "IndexError: list index out of range" again:
lxc launch ubuntu:18.04 duplicity-run-tests
lxc exec duplicity-run-tests -- /bin/bash
apt update && \
apt -y install build-essential librsync-dev python-dev bzr python3-dev \
python-fasteners python-future python-mock python-requests python-urllib3 python3-urllib3 \
python-coverage python3-coverage python-pexpect python3-pexpect python-pycodestyle python3-pycodestyle pylint pylint3 python-pytest python-pytest-pylint python3-pytest-pylint python-pytest-runner python3-pytest-runner tox && \
bzr branch lp:duplicity && \
cd duplicity/duplicity && \
python2 compilec.py && python3 compilec.py && \
cd ../testing && \
./run-tests
[...]
GLOB sdist-make: /root/duplicity/setup.py
Traceback (most recent call last):
File "/usr/bin/tox", line 11, in <module>
load_entry_point('tox==2.5.0', 'console_scripts', 'tox')()
File "/usr/lib/python3/dist-packages/tox/session.py", line 39, in main
retcode = Session(config).runcommand()
File "/usr/lib/python3/dist-packages/tox/session.py", line 390, in runcommand
return self.subcommand_test()
File "/usr/lib/python3/dist-packages/tox/session.py", line 535, in subcommand_test
path = self.get_installpkg_path()
File "/usr/lib/python3/dist-packages/tox/session.py", line 511, in get_installpkg_path
path = self._makesdist()
File "/usr/lib/python3/dist-packages/tox/session.py", line 414, in _makesdist
return self.config.distdir.listdir()[0]
IndexError: list index out of range

That is not an error I am getting on my normal development box, but I cannot remember what I have done to that since a fresh install. Any tips if you have just done it? That's all the packages from requirements.txt in both their python2 and python3 variants.
Kind regards,
Aaron

References