Diff for "LaunchpadOnKarmic"

Not logged in - Log In / Register

Differences between revisions 1 and 25 (spanning 24 versions)
Revision 1 as of 2009-07-27 23:40:32
Size: 1374
Editor: maxb
Comment:
Revision 25 as of 2009-08-26 07:50:15
Size: 8133
Editor: maxb
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
As mentioned on [[Getting]], Launchpad is not currently supported on Ubuntu Karmic Koala, primarily because it currently has a hard dependency on Python 2.4, which is no longer included in Karmic. As mentioned on [[Getting]], Launchpad is not currently supported on Ubuntu Karmic Koala.
Line 3: Line 3:
This page is a place to collect notes written for and by people living on the bleeding edge and attempting to get Launchpad working on Karmic / Python 2.5 This page is a place to collect notes written for and by people living on the bleeding edge and attempting to get Launchpad working on Karmic.
Line 5: Line 5:
== launchpad-dependencies ==
First, there is the issue that the ~launchpad PPA doesn't have any packages for Karmic. I (maxb) have tweaked the launchpad-dependencies package to have a first approximation of suitable dependencies for Python 2.5, and uploaded it to my PPA [[https://launchpad.net/~maxb/+archive/ppa]], and copied the geoip-data-city-lite package from the ~launchpad PPA there as well for convenience.
= Phase 1 - Python 2.4 =
Phase 1 is to get it working on Karmic using Python 2.4 - this requires rebuilding quite a few Python module packages, as Python 2.4 is not a supported Python version in Karmic. These packages are in my PPA for Launchpad-related packages [[https://launchpad.net/~maxb/+archive/launchpad]] and are ''mostly'' synced into the official Launchpad PPA.

Status: some test failures
 * canonical.testing.layers.!LaunchpadZopelessLayer tests:
  * lp.archiveuploader.tests.test_ppauploadprocessor.TestPPAUploadProcessor.testPPAUploadResultingInNoBuilds - `FatalUploadError: Unable to find mandatory field 'files' in the changes file.`
  * lp.archiveuploader.tests.test_uploadprocessor.!TestUploadProcessor.testUploadResultingInNoBuilds - `FatalUploadError: Unable to find mandatory field 'files' in the changes file.`
  * lp.soyuz.tests.test_packageupload.!PackageUploadTestCase.test_realiseUpload_for_delayed_copies - `AssertionError: <DBItem PackageUploadStatus.DONE, (3) Done> != <DBItem PackageUploadStatus.ACCEPTED, (2) Accepted>`
   * wgrant can't reproduce this on karmic i386
 * canonical.testing.layers.!LaunchpadFunctionalLayer tests:
  * lib/canonical/launchpad/ftests/../doc/canonical_url_examples.txt - `http://launchpad.dev/+groups vs. http://translations.launchpad.dev/+groups`

Once it becomes possible to run the testsuite successfully with Python 2.4 on Karmic, we move on to phase 2...

= Phase 2 - Python 2.5 =

The ultimate goal is to migrate Launchpad to Python 2.6. Rather than go straight to Python 2.6, I (maxb) am focusing on Python 2.5 first as a stepping stone.
Line 12: Line 27:
 * Making buildmailman.py compatible with Python 2.5 sys.path_importer_cache behaviour
 * Fixing Launchpad's !TestCase subclass for method renames in unittest in Python 2.5
 * etc...
Line 14: Line 32:
https://code.launchpad.net/~maxb/zope3/launchpad-3.4-py2.5 contains backports of some changes to zope.proxy and zope.security in post-3.4 Zope releases which are required for Python 2.5 compatibility (possibly only on 64-bit architectures). Without these, Launchpad produces perplexing MemoryErrors. Thanks to the completion and landing of Gary's zbuildout branch, the zope branch previously listed here is now obsolete.

However, you'll now need to fetch https://code.launchpad.net/~maxb/lp-source-dependencies/python2.5, for a patched version of `zope.sendmail`, working around a change in the ordering of atexit vs. waiting for non-main non-daemon threads to shut down which otherwise caused various Python processes to hang on shutdown.

== Related bugs ==
https://bugs.launchpad.net/launchpad-foundations/+bugs?field.tag=python-upgrade

== Test Status (pre zbuildout landing, tests are re-running now) ==
 * ''canonical.testing.layers.!BaseLayer tests: Ran 250 tests with 0 failures and 0 errors''
 * ''canonical.testing.layers.!LibrarianLayer tests: Ran 8 tests with 0 failures and 0 errors''
 * ''canonical.testing.layers.!DatabaseLayer tests: Ran 43 tests with 0 failures and 0 errors''
 * ''canonical.testing.layers.!LaunchpadLayer tests: Ran 23 tests with 0 failures and 0 errors''
 * ''canonical.testing.layers.!ZopelessLayer tests: Ran 17 tests with 0 failures and 0 errors''
 * canonical.testing.layers.!LaunchpadScriptLayer tests: Ran 72 tests with 0 failures and '''1 errors'''
  * test_initZopelessTwice (canonical.lp.ftests.test_zopeless.!TestInitZopeless) monkeypatches warnings.warn_explicit in way that is no longer compatible
 * canonical.testing.layers.!LaunchpadZopelessLayer tests: Ran 3147 tests with '''5 failures''' and '''11 errors'''
  * many - `AttributeError: 'UnicodeCSVReader' object has no attribute 'line_num'`, UnicodeCSVReader not compatible with Py2.5 csv.
  * lp.archiveuploader.tests.test_ppauploadprocessor.TestPPAUploadProcessor.testPPAUploadResultingInNoBuilds - `FatalUploadError: Unable to find mandatory field 'files' in the changes file.`
  * lp.archiveuploader.tests.test_uploadprocessor.!TestUploadProcessor.testUploadResultingInNoBuilds - `FatalUploadError: Unable to find mandatory field 'files' in the changes file.`
  * lib/lp/bugs/doc/bug-export.txt: Mysterious failure parsing doctest
  * lib/lp/bugs/doc/checkwatches-cli-switches.txt: Looks to be formatting differences in help message
  * lib/lp/bugs/doc/externalbugtracker-mantis-csv.txt: Sort order problem.
  * lib/lp/soyuz/doc/soyuz-set-of-uploads.txt: Uploads rejected?!
  * lp.soyuz.tests.test_packageupload.!PackageUploadTestCase.test_realiseUpload_for_delayed_copies: <fails with python 2.4 too>
 * ''canonical.launchpad.ftests.test_system_documentation.!ProcessMailLayer tests: Ran 269 tests with 0 failures and 0 errors''
 * ''canonical.testing.layers.!FunctionalLayer tests: Ran 164 tests with 0 failures and 0 errors''
 * canonical.testing.layers.!LaunchpadFunctionalLayer tests: Ran 8170 tests with '''11 failures''' and 0 errors
  * lib/canonical/launchpad/ftests/../doc/canonical_url_examples.txt - `http://launchpad.dev/+groups vs. http://translations.launchpad.dev/+groups`
  * lib/canonical/launchpad/doc/pagetest-helpers.txt: CDATA section introduced
  * lib/canonical/launchpad/doc/tales.txt: Exception message changed in Py2.5.
  * lib/canonical/launchpad/doc/unicode_csv.txt: Failure mode changed in Py2.5. Recurrence of above UnicodeCSVReader issue.
  * lib/canonical/launchpad/scripts/ftests/librarianformatter.txt: Spurious characters.
  * lib/lp/bugs/tests/externalbugtracker-xmlrpc-transport.txt: urllib2 seems to be behaving differently
  * lp.soyuz.scripts.tests.test_copypackage.!ReUploadFileTestCase.test_re_upload_file_does_not_leak_file_descriptors - `1 != 0`
  * lib/lp/translations/doc/poexport-language-pack.txt, lib/lp/translations/doc/potemplate.txt: Hints at tarfile.getnames() behaviour change as seen in unit tests too
  * lib/lp/translations/tests/../doc/poexport-request-productseries.txt: ?
  * lib/lp/translations/tests/../doc/poexport-request.txt: ?
  * lib/lp/translations/tests/../doc/poexport-request.txt: ?
 * ''canonical.testing.layers.!AppServerLayer tests: Ran 128 tests with 0 failures and 0 errors''
 * canonical.testing.layers.!DatabaseFunctionalLayer tests: Ran 3225 tests with '''1 failures''' and 0 errors
  * lib/lp/registry/doc/teammembership.txt: Looks like benign formatting issue.
<tests still in progress, below here are the results of the previous run...>
 * canonical.testing.layers.!PageTestLayer tests: Ran 6037 tests with '''6 failures''' and 0 errors
  * lib/canonical/launchpad/pagetests/feeds/xx-links.txt: Formatting issue
  * lib/lp/answers/stories/question-add.txt, question-obfuscation.txt: Formatting issue
  * lib/lp/bugs/stories/feeds/xx-bug-{atom,html}.txt: Looks like benign formatting issue.
  * lib/lp/bugs/stories/distribution/xx-distribution-upstream-bug-report.txt: Formatting issue.
 * ''canonical.testing.layers.!TwistedLayer tests: Ran 219 tests with 0 failures and 0 errors''
 * ''canonical.testing.layers.!TwistedLaunchpadZopelessLayer tests: Ran 23 tests with 0 failures and 0 errors''
 * ''canonical.testing.layers.!TwistedAppServerLayer tests: Ran 5 tests with 0 failures and 0 errors''
 * ''canonical.testing.layers.!ZopelessAppServerLayer tests: Ran 69 tests with 0 failures and 0 errors''
 * ''canonical.testing.layers.!ZopelessDatabaseLayer tests: Ran 145 tests with 0 failures and 0 errors''
 * ''lp.codehosting.tests.test_acceptance.SSHServerLayer tests: Ran 46 tests with 0 failures and 0 errors''
 * unit tests: Ran 1337 tests with '''8 failures''' and 0 errors
  * librarianformatter_noca.txt: Py2.5 differences in traceback formatting
  * test_helpers.make_test_tarball_2: odd discrepancy
  * test_raising_with_unprintable_exception (canonical.launchpad.webapp.tests.test_errorlog.!TestErrorReportingUtility): looks benign
  * lib/lp/translations/utilities/tests/test_xpi_properties_format.py: several escaping issues

As mentioned on Getting, Launchpad is not currently supported on Ubuntu Karmic Koala.

This page is a place to collect notes written for and by people living on the bleeding edge and attempting to get Launchpad working on Karmic.

Phase 1 - Python 2.4

Phase 1 is to get it working on Karmic using Python 2.4 - this requires rebuilding quite a few Python module packages, as Python 2.4 is not a supported Python version in Karmic. These packages are in my PPA for Launchpad-related packages https://launchpad.net/~maxb/+archive/launchpad and are mostly synced into the official Launchpad PPA.

Status: some test failures

  • canonical.testing.layers.LaunchpadZopelessLayer tests:

    • lp.archiveuploader.tests.test_ppauploadprocessor.TestPPAUploadProcessor.testPPAUploadResultingInNoBuilds - FatalUploadError: Unable to find mandatory field 'files' in the changes file.

    • lp.archiveuploader.tests.test_uploadprocessor.TestUploadProcessor.testUploadResultingInNoBuilds - FatalUploadError: Unable to find mandatory field 'files' in the changes file.

    • lp.soyuz.tests.test_packageupload.PackageUploadTestCase.test_realiseUpload_for_delayed_copies - AssertionError: <DBItem PackageUploadStatus.DONE, (3) Done> != <DBItem PackageUploadStatus.ACCEPTED, (2) Accepted>

      • wgrant can't reproduce this on karmic i386
  • canonical.testing.layers.LaunchpadFunctionalLayer tests:

    • lib/canonical/launchpad/ftests/../doc/canonical_url_examples.txt - http://launchpad.dev/+groups vs. http://translations.launchpad.dev/+groups

Once it becomes possible to run the testsuite successfully with Python 2.4 on Karmic, we move on to phase 2...

Phase 2 - Python 2.5

The ultimate goal is to migrate Launchpad to Python 2.6. Rather than go straight to Python 2.6, I (maxb) am focusing on Python 2.5 first as a stepping stone.

Launchpad code itself

https://code.launchpad.net/~maxb/launchpad/python2.5 contains a few fixes:

  • Adjusting the Python version in the Makefiles
  • Adjusting import statements to handle the built-in location of cElementTree in Python 2.5
  • Making buildmailman.py compatible with Python 2.5 sys.path_importer_cache behaviour
  • Fixing Launchpad's TestCase subclass for method renames in unittest in Python 2.5

  • etc...

Launchpad source dependencies - Zope

Thanks to the completion and landing of Gary's zbuildout branch, the zope branch previously listed here is now obsolete.

However, you'll now need to fetch https://code.launchpad.net/~maxb/lp-source-dependencies/python2.5, for a patched version of zope.sendmail, working around a change in the ordering of atexit vs. waiting for non-main non-daemon threads to shut down which otherwise caused various Python processes to hang on shutdown.

https://bugs.launchpad.net/launchpad-foundations/+bugs?field.tag=python-upgrade

Test Status (pre zbuildout landing, tests are re-running now)

  • canonical.testing.layers.BaseLayer tests: Ran 250 tests with 0 failures and 0 errors

  • canonical.testing.layers.LibrarianLayer tests: Ran 8 tests with 0 failures and 0 errors

  • canonical.testing.layers.DatabaseLayer tests: Ran 43 tests with 0 failures and 0 errors

  • canonical.testing.layers.LaunchpadLayer tests: Ran 23 tests with 0 failures and 0 errors

  • canonical.testing.layers.ZopelessLayer tests: Ran 17 tests with 0 failures and 0 errors

  • canonical.testing.layers.LaunchpadScriptLayer tests: Ran 72 tests with 0 failures and 1 errors

    • test_initZopelessTwice (canonical.lp.ftests.test_zopeless.TestInitZopeless) monkeypatches warnings.warn_explicit in way that is no longer compatible

  • canonical.testing.layers.LaunchpadZopelessLayer tests: Ran 3147 tests with 5 failures and 11 errors

    • many - AttributeError: 'UnicodeCSVReader' object has no attribute 'line_num', UnicodeCSVReader not compatible with Py2.5 csv.

    • lp.archiveuploader.tests.test_ppauploadprocessor.TestPPAUploadProcessor.testPPAUploadResultingInNoBuilds - FatalUploadError: Unable to find mandatory field 'files' in the changes file.

    • lp.archiveuploader.tests.test_uploadprocessor.TestUploadProcessor.testUploadResultingInNoBuilds - FatalUploadError: Unable to find mandatory field 'files' in the changes file.

    • lib/lp/bugs/doc/bug-export.txt: Mysterious failure parsing doctest
    • lib/lp/bugs/doc/checkwatches-cli-switches.txt: Looks to be formatting differences in help message
    • lib/lp/bugs/doc/externalbugtracker-mantis-csv.txt: Sort order problem.
    • lib/lp/soyuz/doc/soyuz-set-of-uploads.txt: Uploads rejected?!
    • lp.soyuz.tests.test_packageupload.PackageUploadTestCase.test_realiseUpload_for_delayed_copies: <fails with python 2.4 too>

  • canonical.launchpad.ftests.test_system_documentation.ProcessMailLayer tests: Ran 269 tests with 0 failures and 0 errors

  • canonical.testing.layers.FunctionalLayer tests: Ran 164 tests with 0 failures and 0 errors

  • canonical.testing.layers.LaunchpadFunctionalLayer tests: Ran 8170 tests with 11 failures and 0 errors

    • lib/canonical/launchpad/ftests/../doc/canonical_url_examples.txt - http://launchpad.dev/+groups vs. http://translations.launchpad.dev/+groups

    • lib/canonical/launchpad/doc/pagetest-helpers.txt: CDATA section introduced
    • lib/canonical/launchpad/doc/tales.txt: Exception message changed in Py2.5.
    • lib/canonical/launchpad/doc/unicode_csv.txt: Failure mode changed in Py2.5. Recurrence of above UnicodeCSVReader issue.
    • lib/canonical/launchpad/scripts/ftests/librarianformatter.txt: Spurious characters.
    • lib/lp/bugs/tests/externalbugtracker-xmlrpc-transport.txt: urllib2 seems to be behaving differently
    • lp.soyuz.scripts.tests.test_copypackage.ReUploadFileTestCase.test_re_upload_file_does_not_leak_file_descriptors - 1 != 0

    • lib/lp/translations/doc/poexport-language-pack.txt, lib/lp/translations/doc/potemplate.txt: Hints at tarfile.getnames() behaviour change as seen in unit tests too
    • lib/lp/translations/tests/../doc/poexport-request-productseries.txt: ?
    • lib/lp/translations/tests/../doc/poexport-request.txt: ?
    • lib/lp/translations/tests/../doc/poexport-request.txt: ?
  • canonical.testing.layers.AppServerLayer tests: Ran 128 tests with 0 failures and 0 errors

  • canonical.testing.layers.DatabaseFunctionalLayer tests: Ran 3225 tests with 1 failures and 0 errors

    • lib/lp/registry/doc/teammembership.txt: Looks like benign formatting issue.

<tests still in progress, below here are the results of the previous run...>

  • canonical.testing.layers.PageTestLayer tests: Ran 6037 tests with 6 failures and 0 errors

    • lib/canonical/launchpad/pagetests/feeds/xx-links.txt: Formatting issue
    • lib/lp/answers/stories/question-add.txt, question-obfuscation.txt: Formatting issue
    • lib/lp/bugs/stories/feeds/xx-bug-{atom,html}.txt: Looks like benign formatting issue.
    • lib/lp/bugs/stories/distribution/xx-distribution-upstream-bug-report.txt: Formatting issue.
  • canonical.testing.layers.TwistedLayer tests: Ran 219 tests with 0 failures and 0 errors

  • canonical.testing.layers.TwistedLaunchpadZopelessLayer tests: Ran 23 tests with 0 failures and 0 errors

  • canonical.testing.layers.TwistedAppServerLayer tests: Ran 5 tests with 0 failures and 0 errors

  • canonical.testing.layers.ZopelessAppServerLayer tests: Ran 69 tests with 0 failures and 0 errors

  • canonical.testing.layers.ZopelessDatabaseLayer tests: Ran 145 tests with 0 failures and 0 errors

  • lp.codehosting.tests.test_acceptance.SSHServerLayer tests: Ran 46 tests with 0 failures and 0 errors

  • unit tests: Ran 1337 tests with 8 failures and 0 errors

    • librarianformatter_noca.txt: Py2.5 differences in traceback formatting
    • test_helpers.make_test_tarball_2: odd discrepancy
    • test_raising_with_unprintable_exception (canonical.launchpad.webapp.tests.test_errorlog.TestErrorReportingUtility): looks benign

    • lib/lp/translations/utilities/tests/test_xpi_properties_format.py: several escaping issues