Hi Thierry, thanks for clarifying on this--

On Fri, Nov 10, 2017 at 1:04 PM, Thierry
<sage-googlesu...@lma.metelu.net> wrote:
> Hi,
>
> On Fri, Nov 10, 2017 at 12:35:51PM +0100, Erik Bray wrote:
>> It seems to me those should be among the most important, if not *the*
>> most important tickets to farm out to patchbots across multiple
>> platforms.  If it made sense to I would set my Windows patchbot to
>> prioritize these among all others.
>>
>> New versions of packages are far more likely to break across
>> platform-related issues than, say, updates to non-platform specific
>> Python and Cython code.
>>
>> What is the reason for this, and is there anything I can do to improve
>> this situation?
>
> IIRC, this was for security reasons. I am +1 to allow those tickets to be
> patchbot tested, as an option (not by default).

Okay, this *sort of* makes sense.  I write "sort of" because it's not
immediately clear what the "security" concern is compared to any other
ticket.  Any change to Sage can contain arbitrary code.  While it's
true that changes to third-party packages are less immediately
transparent than patches to Sage's own codebase, at the end of the day
the risk is the same--anyone who can post a ticket to Sage's Trac and
who is already "trusted" by the patchbots (and the default is to only
run changes by "trusted" authors as it is) can make a risky change.

If there were a security risk to a third-party package this doesn't
offer any protection to those patchbots in the long term because as
soon as the package update is merged those patchbots will start
building with the updated package.

> I personally run my patchbot within a VM (actually i have to since i have
> to emulate 32-bit architecture for Sage Debian Live), so i will volonteer
> to test such tickets. I have an automatic way to bootstrap such patchbot
> VM (more-or-less every supported versions of Debian and Ubuntu, both 32
> and 64 bits, if there is a strong need, i could work on supporting more
> distros and architectures), so i am thinking on providing ready-to-run
> patchbots for users that do not want to take risks for their computers,
> nor loose time in setting such things up.

Right--anyone who is running a patchbot on either a personal machine,
or at least not in a VM, is accepting the risk to run arbitrary code
on it (which is a risk they should not accept IMO, but there's only so
much we can do to protect them from that).

As for testing on more distros I do have a plan for that which I hope
to enact soon.  I have a patchbot running with the Ubuntu-based Docker
image that has been working well for some time.  There have been a few
tiny issues specific to running the tests in Docker, but in general
this is no different from testing directly on that distro.  So my plan
is to make more Sage docker images for other distros (plain Debian,
CentOS, Arch, Gentoo, and Alpine are among my top priorities but I'd
welcome input on that).  Then I can run patchbots with all of them.

> Note however that it is not clear what to do with such tickets: by default
> a patchbot runs the tests only with respect to the packages installed by
> its owner. In this case, if the owner did not install the corresponding
> package (which will always be the case if the ticket is about a new
> package), the patchbot will report a possibly wrong false positive.

I don't understand the issue here--if a package is a dependency of
Sage then it will be built, right?  This only seems to apply to
optional packages.

> But, if we want to add an option to let the patchbot install a new package
> proposed by some ticket, after testing that ticket, the patchbot will be
> in a different state than before to test other tickets, in this situation,
> the patchbot will report possibly wrong false negative.

Ah, well that's where my improved package uninstallation system comes
in:  https://trac.sagemath.org/ticket/22510

This actually works very well in my testing so far, but getting the
functionality merged is taking some time as there are some difficult
prerequisites (e.g. https://trac.sagemath.org/ticket/22509).

As a temporary alternative, I suppose that if a *new* package is
installed I suppose the patchbot can run `make distclean` after that
build.  That will slow things down considerably for the next build
but...oh well?

> So, at the end, we have an issue with our packaging system: there is no
> systematic way to uninstall a package.

Well, there is now, if it ever gets merged... :)

Thanks,
Erik

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

Reply via email to