> > 3. use a separate virtualenv when running under `make test`, without > > --system-site-packages if possible, and ensure up-to-date deps are always > > installed, to eliminate any differences that can occur on different setups >
> > The only problem I see here, is that some of the packages that you'd need > > to > > install into the test-virtualenv need some C-compilation when installing > > from PyPi, and that (if used without the --system-site-packages) would mean > > having to install not only gcc but also plenty of -dev packages. > > > Not a _huge_ ussue but an issue nevertheless. > > That's a good point. But do we have a good alternative here? If we depend on > packages like that, I see only two options: > a) ask the person to install pyfoo as an RPM (in readme) > b) ask the person to install gcc and libfoo-devel as an RPM (in readme) and > pyfoo will be then compiled and installed from pypi > Approach a) is somewhat easier and does not require compilation stack and > devel libraries. OTOH it requires using virtualenv with > --system-site-packages, which means people get different results on > different setups. That's exactly what I'm trying to eliminate (or at least > reduce). E.g. https://phab.qa.fedoraproject.org/D1111 where I can run the > test suite from makefile and you can't, and it's quite difficult to figure > out why. > With b) approach, you need compilation stack on the system. I don't think > it's such a huge problem, because you're a developer after all. The > advantage is that virtualenv can be created without --system-site-packages, > which means locally installed libraries do not affect the execution/test > suite results. Also, pyfoo is installed with exactly the right version, > further reducing differences between setups. The only thing that can differ > is the version of libfoo-devel, which can affect the behavior. But the > likeliness of that happening is much smaller than having pyfoo of a > different version or pulling any deps from the system site packages. Sigh, OTOH Josef has a very good point in https://phab.qa.fedoraproject.org/D1112#20744 that figuring out which devel packages are needed on the system for pypi module compilation is quite a non-trivial task. Seems harder than figuring out which packages you need to install on the system when using --system-site-packages. So, I don't really see a simple solution here that would guard us from inconsistent dev setups (system site packages) or not require us to have a painful deps maintenance (no system site packages, but devel packages) :/ Even if we decide to keep --system-site-packages for simplicity, I can implement all the rest of the proposed improvements. Just the reliability will not be as great as I wished. The main question is now, I believe, whether we want to install compilation-dependent packages from pypi or rpm.
_______________________________________________ qa-devel mailing list -- qa-devel@lists.fedoraproject.org To unsubscribe send an email to qa-devel-le...@lists.fedoraproject.org