Subject: bug#25746: python-pykka

From: ng0 <[email-masked]>
Date: Sun, 19 Feb 2017 11:31:23 +0000

On 17-02-18 20:20:51, ng0 wrote:
> On 17-02-18 14:24:40, Ricardo Wurmus wrote:
> > 
> > ng0 <[email-masked]> writes:
> > 
> > >>From 5f04445d95ac22a98eb80038f6e087218f3cf369 Mon Sep 17 00:00:00 2001
> > > From: ng0 <[email-masked]>
> > > Date: Mon, 17 Oct 2016 10:30:58 +0000
> > > Subject: [PATCH] gnu: Add python-pykka.
> > >
> > > * gnu/packages/python.scm (python-pykka): New variable.
> > > ---
> > >  gnu/packages/python.scm | 26 ++++++++++++++++++++++++++
> > >  1 file changed, 26 insertions(+)
> > >
> > > diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> > > index 3e59b5892..875149b74 100644
> > > --- a/gnu/packages/python.scm
> > > +++ b/gnu/packages/python.scm
> > > @@ -2614,6 +2614,32 @@ somewhat intelligeble.")
> > >  (define-public python2-pyjwt
> > >    (package-with-python2 python-pyjwt))
> > >  
> > > +(define-public python-pykka
> > > +  (package
> > > +    (name "python-pykka")
> > > +    (version "1.2.1")
> > > +    (source
> > > +     (origin
> > > +       (method url-fetch)
> > > +       (uri (pypi-uri "Pykka" version))
> > > +       (sha256
> > > +        (base32
> > > +         "049w3r0mdnnw7xv19jiq7rvls9k7xs73x05b4qs5d6z4vvmgyiz8"))))
> > > +    (build-system python-build-system)
> > > +    (arguments
> > > +     `(#:tests? #f)) ; Testsuite fails for unspecified reasons.
> > 
> > It would be nice to have some more details here and a FIXME, so that
> > dedicated folks could fix this in the future.
> 
> I think it's safe to use a git checkout. No new features are being
> added, it's being used in mopydi so an community of interest keeps it
> alive, and one of the commits which happened this year - the first ones
> after 2 years pause - looks like it fixes tests.
> I'll give it a try.

I tried running the build using the git versions in the package
definition, and the python tests hang forever. I stopped after 3 - 5
hours:

phase `build' succeeded after 4.3 seconds
starting phase `check'
running "python setup.py" with command "test" and parameters ()
running test
running egg_info
creating Pykka.egg-info
writing Pykka.egg-info/PKG-INFO
writing dependency_links to Pykka.egg-info/dependency_links.txt
writing top-level names to Pykka.egg-info/top_level.txt
writing manifest file 'Pykka.egg-info/SOURCES.txt'
warning: manifest_maker: standard file '-c' not found

reading manifest file 'Pykka.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'Pykka.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'Pykka.egg-info/SOURCES.txt'
running build_ext
eventlet (unittest.loader._FailedTest) ... ERROR
gevent (unittest.loader._FailedTest) ... ERROR
test_actor_is_registered_when_started (tests.registry_test.ConcreteRegistryTest.<locals>.C) ... ok
test_actor_is_unregistered_when_stopped (tests.registry_test.ConcreteRegistryTest.<locals>.C) ... ok
test_actor_may_be_registered_manually (tests.registry_test.ConcreteRegistryTest.<locals>.C) ... ok
test_actor_may_be_unregistered_multiple_times_without_error (tests.registry_test.ConcreteRegistryTest.<locals>.C) ... ok
test_actors_may_be_looked_up_by_class (tests.registry_test.ConcreteRegistryTest.<locals>.C) ... ok
test_actors_may_be_looked_up_by_class_name (tests.registry_test.ConcreteRegistryTest.<locals>.C) ... ok
test_actors_may_be_looked_up_by_superclass (tests.registry_test.ConcreteRegistryTest.<locals>.C) ... ok
test_actors_may_be_looked_up_by_urn (tests.registry_test.ConcreteRegistryTest.<locals>.C) ... ok
test_all_actors_can_be_stopped_through_registry (tests.registry_test.ConcreteRegistryTest.<locals>.C) ... ok
test_broadcast_sends_message_to_all_actors_if_no_target (tests.registry_test.ConcreteRegistryTest.<locals>.C) ... ok
test_broadcast_sends_message_to_all_actors_of_given_class (tests.registry_test.ConcreteRegistryTest.<locals>.C) ... ok
test_broadcast_sends_message_to_all_actors_of_given_class_name (tests.registry_test.ConcreteRegistryTest.<locals>.C) ... ok
test_get_by_urn_returns_none_if_not_found (tests.registry_test.ConcreteRegistryTest.<locals>.C) ... ok
test_stop_all_stops_last_started_actor_first_if_blocking (tests.registry_test.ConcreteRegistryTest.<locals>.C) ... ok
test_can_call_method_that_was_added_at_runtime (tests.method_call_test.ThreadingDynamicMethodCallTest) ... ok
test_can_proxy_itself_and_use_attrs_added_at_runtime (tests.method_call_test.ThreadingDynamicMethodCallTest) ... ok
test_calling_unknown_method_raises_attribute_error (tests.method_call_test.ThreadingStaticMethodCallTest) ... ok
test_can_proxy_itself_for_offloading_work_to_the_future (tests.method_call_test.ThreadingStaticMethodCallTest) ... ok
test_functional_method_call_returns_correct_value (tests.method_call_test.ThreadingStaticMethodCallTest) ... ok
test_side_effect_of_method_is_observable (tests.method_call_test.ThreadingStaticMethodCallTest) ... ok
test_null_handler_is_added_to_avoid_warnings (tests.logging_test.LoggingNullHandlerTest) ... ok
test_base_exception_is_logged (tests.logging_test.ConcreteActorLoggingTest.<locals>.C) ...

The last one (test_base_exception_is_logged) is the one where it hangs.
I'm fairly sure it has to do with the previous failures of gevent and
eventlet, which is surprising as both are python3 core functions or at
least somehow existing within python3 and external modules of those are
only required on python2.

Without 'mopidy' https://github.com/mopidy I don't know if these
test failures are grave or just minor.
My idea is now to just use the tarball version, skip the tests, provide
a comment about it (upstream is also fixing issues again after some
hiatus) and package mopidy to have a proof of work.
I just wanted to drop the attempt of packaging mopidy but I'm curious
about these errors.

What do you think?

> > > +    (home-page "https://www.pykka.org/")
> > > +    (synopsis "Pykka is a Python implementation of the actor model")
> > > +    (description
> > > +     "Pykka is a Python implementation of the actor model.
> > > +The actor model introduces some simple rules to control the sharing
> > > +of state and cooperation between execution units, which makes it
> > > +easier to build concurrent applications.")
> > > +    (license license:asl2.0)))
> > > +
> > > +(define-public python2-pykka
> > > +  (package-with-python2 python-pykka))
> > > +
> > 
> > Other than that the patch looks fine to me.  Could you provide a more
> > detailed explanation about the test failures?  Do all tests fail or just
> > some?  Any idea why they might fail?  Do they only fail when built by
> > Guix or also when building outside of a container?
> > 
> > -- 
> > Ricardo
> > 
> > GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
> > https://elephly.net
> > 
> 
> -- 
> ng0 -- https://www.inventati.org/patternsinthechaos/
> 
> 
> 

-- 
ng0 -- https://www.inventati.org/patternsinthechaos/