#20382: Replace is_package_installed with Features
-------------------------------------+-------------------------------------
       Reporter:  saraedum           |        Owner:
           Type:  enhancement        |       Status:  new
       Priority:  major              |    Milestone:  sage-7.2
      Component:  build              |   Resolution:
       Keywords:                     |    Merged in:
        Authors:  Julian Rüth        |    Reviewers:  Nicolas M. Thiéry,
Report Upstream:  N/A                |  ...
         Branch:                     |  Work issues:
  u/saraedum/replace_is_package_installed_with_features|       Commit:
   Dependencies:                     |  1bba301b7255d4725a0cb0e758ada93025b3e53b
                                     |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by vdelecroix):

 I like more the centralized approach in this ticket rather than the one in
 #20377 in which each feature needs a special care. Though many things
 looks very complicated and the related #20182 is much more readable
 (though using inheritance from this ticket would save some efforts).
 Moreover #20182 implements some ''database of available features'' which
 is not discussed here. The latter has the advantage of minimizing the
 requests time after the first call. With the architecture proposed here,
 each check involves a `Feature` class creation and some associated test...

 Some more specific remarks:

 - Do we really care about the class `FeatureTestResult`? If the result is
 `True` then we mostly don't care about explanation and if it is `False` we
 likely want an error (with an explicit error message). Similarly, I would
 get rid of `FeatureNotPresentError`. Instead, I would add an `error` and a
 `message` arguments in the `require` method (with of course some
 reasonable default which would mimic the current behavior using the
 standard `RuntimeError`).

 - Are you sure `CSDP` is better inside the file `lovasz_theta.py`? Do we
 want to spread the `Features` all around the modules or should they be
 centralized?

 - Finally class names might be confusing. `GapPackage` is not a handle on
 a gap package nor something describing what is inside a given package
 (what I would guess from the name). Similarly, with having `CSDP` has a
 class when `CSDP` is the name of the program. It would be fine if all of
 them belong to a fixed module.

--
Ticket URL: <http://trac.sagemath.org/ticket/20382#comment:16>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to