On Wed, Feb 11, 2015 at 3:56 PM, Gurshabad Grover
<[email protected]> wrote:
> Hello again,
>
> Yes, I noticed how SageCell uses a different branch of Sage. That would be a
> nice problem to solve for all future versions and developers of SageCell. I
> guess the best way to go about this would be to carefully find out the exact
> differences between the two branches being used and figuring out a solution
> for each difference. I'd love to help with the Javascript parts, let me know
> what exactly I'll be looking at in that situation and how I should begin.

There's a basic philosophical reason that this problem exists in Sage
Cell and not in SageMathCloud, say, where I have to deal with
precisely the same compatibility problems -- except on I think a
larger scale.

There are three options:

  1. Maintain a separate branch and repeatedly merge/rebase it against
each new version of Sage.

  2. Monkey patch the Sage library on startup to make all necessary changes.

  3. Significantly modify Sage so that every single change that
SageCell (and SageMathCloud) has to make to the Sage library can be
done via a clearly documented hook/API/plugin mechanism.


Option 1 is what Sage cell does right now.  It's technically the
worst, hardest to maintain, and people are not happy with it.

Option 2 is what SageMathCloud does right now.  It's technically bad
too since it's potentially confusing/ugly/random, but it's pretty easy
to maintain and flexible.  For SMC, 1 is simply not an option, since
what SMC does has to work with whatever random copy of sage people
build for themselves.  But it is an option for SageCell, since
SageCell only supports one canonical sage install.

Option 3 is probably the best technically, and both Sage cell and SMC
(and IPython) could use it.  It is  hard technically to implement, and
would also require waiting a while until it actually gets into Sage.
It's even harder socially, since technically it isn't really doing
anything, but you have to get several people to agree on an API.

Often patches to sage take months (or more) from when they are
basically done to when they get into Sage, due our current pace of
development (since we have very little money and most work is done in
people's spare time).  Due to things being slow, if there's one extra
new thing about Sage that needs to be changed for SMC or SageCell, and
there's no hook in the plugin mechanism for it (e.g., change
pretty_print), then you have to do either 1 or 2 *and* also 3, and
then switch out 1 or 2 for 3 later when it eventually gets into Sage.
That's not fun.    If Sage releases happened much more frequently
(like every week or two, like they used to), then this wouldn't be a
problem.  But these days stable Sage releases happen maybe every 3
months.   It might get worse, since our release manager is going to be
much busier with other things (besides Sage) soon.

 -- William



>
> In the meanwhile, I've applied to be added to the sage-cell development
> forum to keep myself updated about relevant changes in the system. Please
> approve the request if you think this would be helpful. I'll send an update
> over the weekend summarizing some actions and plans.
>
> Thanks a lot,
>
> On Thursday, February 12, 2015 at 3:19:18 AM UTC+5:30, Andrey Novoseltsev
> wrote:
>>
>> Hi Gurshabad,
>>
>> Contributions to SageCell are certainly welcome! In particular it would be
>> nice to make it "more standalone" in the sense of not needing any patches to
>> Sage (which will greatly simplify upgrading to new Sage versions since there
>> will be no need to resolve merge conflicts and fix resulting bugs) and
>> cleaner interaction with other dependencies, chiefly IPython. I am trying to
>> improve the situation gradually, but would not mind help, especially with
>> the JavaScript parts. Another angle is robustness under load spikes and nice
>> tests for it.
>>
>> Best,
>> Andrey
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-gsoc" 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 http://groups.google.com/group/sage-gsoc.
> For more options, visit https://groups.google.com/d/optout.



-- 
William (http://wstein.org)

-- 
You received this message because you are subscribed to the Google Groups 
"sage-gsoc" 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 http://groups.google.com/group/sage-gsoc.
For more options, visit https://groups.google.com/d/optout.

Reply via email to