-
Notifications
You must be signed in to change notification settings - Fork 31
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
Builds on Travis CI not passing #3
Comments
xolox
added a commit
that referenced
this issue
Mar 1, 2015
Right now the test suite consistently fails (or rather, is expected to fail consistently :-) on Travis CI as described by me earlier today in issue #3. However while researching I noticed that build 3 on Travis CI actually passed for Python 3.4 which it really shouldn't have according to my expectations! After some research I realized the "problem". The test suite doesn't explicitly include a test with a Python package containing shared object files, it only includes such a package implicitly: * test_conversion_of_extras converts raven[flask]==3.6.0 * raven[flask]==3.6.0 pulls in Flask * Flask pulls in markupsafe * markupsafe includes markupsafe/_speedups.so, BUT ONLY ON PYTHON 2.X! I've now rectified this situation by explicitly including the conversion of a Python package that is know to require a compiled shared object file. That package (setproctitle) supports Python 3.x as well so this test can be run on all supported Python versions. The immediate effect is that this will break the one passing test suite version on Travis CI :-) but that is exactly my intention: I'd rather have a failing test suite than a false sense of safety. For the record: The complete test suite passes for me locally on all documented to be supported Python versions, but for more details about that please refer to issue #3. $ tox ... py26: commands succeeded py27: commands succeeded py34: commands succeeded congratulations :) Issue 3 on GitHub: #3 Build 3 on Travis CI: https://travis-ci.org/paylogic/py2deb/builds/52351852
xolox
added a commit
that referenced
this issue
Mar 1, 2015
Related to issue #3 on GitHub: #3 The test suite is now passing on Python 2.7 and 3.4 but its still failing on Python 2.6. I'm not sure why the difference, but it still seems to fail on the exact same issue. The simplest workaround seems to be to set LB_LIBRARY_PATH for Travis CI runs. But then I need to know what I should set it to :-). See also the following StackOverflow thread for more details: http://stackoverflow.com/questions/23244418/set-ld-library-path-before-importing-in-python
Conclusion:
Because the test suite is now properly running on Travis CI I'm closing this issue. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
While developing py2deb I've been extending and running the test suite continuously for months now and that was working great. When I published py2deb on GitHub a couple of days ago I got my first chance to run the py2deb test suite on Travis CI and I found out and that it fails consistently on all Python versions :-(.
Because there are multiple ways to fix this problem and all of them are somewhat involved / complex, I will use this GitHub issue to summarize my thoughts and weigh the pros and cons of each approach.
My local testing environment
To summarize my local testing environment:
The Travis CI testing environment
To summarize what I know and have inferred (assumed) about the Travis CI testing environment:
At present it seems like Travis CI is using a Chef cookbook that uses pyenv to install custom compiled Python binaries to run test suites against. Some references:
python::pyenv
python::pyenv
doesWhy the py2deb test suite fails
Due to its goals py2deb obviously integrates quite a bit with Debian Python packaging. One such bit of integration is my (ab)use of dpkg-shlibdeps. It seems to me that the main issue on Travis CI right now is that
dpkg-shlibdeps
immediately errors out because*.so
files are compiled against a Python binary that is not packaged. The same basic issue is described in the StackOverflow thread dpkg-shlibdeps: error: no dependency information found for.Ways to get the test suite running
--ignore-missing-info
option. Maybe I'll use that as my first option (easiest to try out).dpkg-shlibdeps
fails I want py2deb to fail, because blindly marching on could mean a binary Debian package is generated which is missing essential dependencies on system libraries! So just ignoring error codes could get awkward.dpkg-shlibdeps
is a huge hack waiting to bite me in the ass. I've been itching to replacedpkg-shlibdeps
because of this, but as I mentioned I looked into its sources and there are literally thousands of lines of (for me) indecipherable Perl code underneath.dpkg-shlibdeps
running.dpkg-shlibdeps
? (a rhetorical question; I know the answer ;-) I'll also need to maintain all of this in later Debian/Ubuntu releases...Right now I will investigate option two because it's the most light weight approach with the least potential to bite me (the py2deb project) in the ass later on.
The text was updated successfully, but these errors were encountered: