On Thu, May 29, 2014 at 10:37 AM, William Stein <wst...@gmail.com> wrote: > On Thu, May 29, 2014 at 10:01 AM, kcrisman <kcris...@gmail.com> wrote: >> Please excuse the following rant. As usual, it is ill-informed, and if some > > I appreciate it, and I'm glad we're having this discussion. (It's a > rant, but it isn't a flame. Yeah!) > >> of the points are due to ignorance, I have no problem with that being >> pointed out. But from reading the lists, I'm not the only one experiencing >> difficulty with this sort of thing. At the very least I think it shows it's >> not that easy to do everything right now. >> >> <rant> >> Git workflow. >> >> The goal was to reduce work for some developers and make things more >> modular, but in fact what happens is that people are basing their "branches" >> on all kinds of different starting points, forcing constant recompilation >> for even the most trivial changes. I'm told "ccache" will help with this, >> but it's still not in the developer guide, and I'm not sure it will help >> with [s]pkgs anyway, which also change frequently. > > There were arguments last year by various people that our patch-based > workflow was bad, at least as opposed to using branches. There was > little in the way of arguments back for patches. I personally wasn't > really paying attention then, and I frankly didn't know which was > better, having only had experience with patches. I'm glad that > you're presenting some of the arguments below in favor of the value of > a more patches-based workflow. > > I recently listened to an interview with the release manager for the > stable linux kernel. Linux is of course a big project that uses git > -- in fact, as we all know, Linus invented git for Linux development. > They use *patches* rather than branches. In fact, their workflow is > email + patches. He argues in the interview (in response to > questions, etc.) that this is far more efficient than the branch > model. > Evidently, git has extremely good support for sending patches via > email and applying them from email (at least in a local mail spool). > Another project I'm involved in called bup > (https://github.com/bup/bup) does the same thing -- all code > contributions are patches to the mailing list, so I've seen this work. > > I'm not arguing for replacing trac by patches to a mailing list! I'm > just pointing out that some people's assertions that using patches > instead of branches is not properly using git can't be right, since > the Linux kernel devs use of git is just as "proper" as anybody > else's. Basically, I'm trying to argue that there is merit to your > rant. > >> In addition, a web-based interface just like github pull requests was >> promised, but I don't see it. Since we don't use the github version to >> allow people to just "edit" (see e.g. >> https://github.com/grant/sage/commit/27c97d376a956a05c6e4abd97102f80195bda4c0 >> for one request that apparently has been ignored), we are actually in a >> *worse* place than we were with patches, where at least those could be >> applied more or less independently of the state of Sage. >> >> As another example, in attempting to review one patch which relies upon the >> new Maxima update: where that is, one cannot learn easily from git log, >> since >> >> $ git log | grep maxima | less >> $ git log | grep Maxima | less >> >> both do not tell me that in fact, even though Trac says "closed", #13973 >> apparently is not yet in a merged release, and so I just wasted a lot of >> time figuring that out. Since "Merged in" is no longer updated. You would >> think that I could learn this by doing >> >> $ git log | grep 13973 >> >> but since Trac #s are no longer in commit messages, that isn't foolproof >> either. And indeed, the standard output of "git log" is kind of scary, >> because while some entries look like this, roughly as in the old one >> >> commit 3ea4f9bfc3c1acb6cb9eaa8e7a8ffa41779a6181 >> Author: XYZ >> Date: Thu May 22 08:37:36 2014 +0200 >> >> 16199: documentation cosmetics >> >> >> others look like this >> >> commit e9352062ad7fedbe00ad62d397672203824e0267 >> Merge: cc54f6e 80e319d >> Author: XYZ >> Date: Thu May 22 08:01:19 2014 +0200 >> >> Merge branch 'develop' into >> t/16199/improve_docs__add_doctests_in_power_seri >> >> * develop: (606 commits) >> Updated Sage version to 6.3.beta1 >> trac #16237: Typos >> Use lazy_import instead >> Use point collections more directly. >> trac #15036: fix late import of is_Matrix to avoid startup problems >> Fixes to normal_form_pc to work with point collections properly. >> Fixed failing doctests. >> trac #16277: A typo >> minor fixes >> Trac 15099: numeric evaluation of zetaderiv >> trac 16211: Review reviewer patch. >> Added a category parameter to Module >> change raise syntax to python3 style >> >> and still others look like this >> >> commit 9a4b0b83fa06a113c485f22f37af02c24ef35e90 >> Merge: f4cbb5f b8fea1c >> Author: Release Manager <rele...@sagemath.org> >> Date: Wed May 21 16:40:31 2014 +0100 >> >> Trac #15921: work around Maxima fpprintprec bug and other ARM-specific >> probl >> >> [https://groups.google.com/d/msg/sage-devel/oRpkswzpK38/rNVbVN2RyEcJ >> Maxima uses CL FORMAT function wrongly], resulting in outputting wrong >> number of digits for floats (one extra), and >> contradicting its own manual on fpprintprec. In particular it outputs >> too many digits on ix86 and ix86_64, which got in Sage's doctests. As a >> result, doctests fail on ARM. >> >> The fixes are to convert the results into `RealField(prec)`, with >> appropriate `prec` >> (at least 54, or sometimes more). This ticket also fixes ARM-specific >> numerical noise stemming >> from various other upstream problems, such as `eglibc` loss of precision >> in `lgamma`. >> >> I don't know why the description of a ticket is ending up in the log. We >> want a description of what actually was done, and the description in the >> ticket is often full of brainstorming etc. >> >> Oh, and this all assumes that one knows about pipes and grep. Perhaps "git >> trac" deals with these kinds of situations, which is great, but one >> shouldn't really have to use git or the command line at all to find out some >> of this information. Particularly not as a beginner. >> >> Anyway, in order to use git properly to do trivial change, one still really >> has to learn at least as much as before with hg_sage or hg or sage -dev or >> whatever the flavor of the month is. For instance, for this one I guess I >> need to first do #13973, and then somehow add #13712 on top of it - which >> sounds like a more advanced operation of "merging", and we are many times >> warned not to do unnecessary merges. A hint from Travis S. and some Google >> helped me eventually figure out how to do this but it's certainly no easier >> than what I would have done before. >> </rant> >> >> Okay, done ranting, and foolish stuff it probably was. At first I thought >> this wasn't all a regression, but by the end of writing this I'm not so >> sure. I appreciate Robert's input on this a lot, though. I actually think >> that using Github per se would be worse, definitely, because you have to >> interact with all their stuff; I find helping with sagenb very tiresome for > > It depends. If one wanted to add a docstring in github, a person > could do this in a minute: > > (0) get account on github > > (1) browser to a file, e.g., > > https://github.com/sagemath/sage/blob/master/src/sage/calculus/calculus.py > > (2) click edit, which in 1 click (and 1 second) creates a fork of the > repo, and opens that file in an editor in your browser. > > (3) make changes and click the big green button "Propose file change" > at the bottom of the screen. > > Github has solved some real technical problems regarding lowering the > barrier to entry for people to contribute to projects, which we > haven't solved, and I think we shouldn't just ignore/dismiss this...
Exactly. I'd like to see us better integrate this workflow rather than try to replicate it. For more complex changes, one can easily "migrate" from this workflow to a local copy with git. It'd be cool to make it just as easy to migrate a branch on github (or any git hosting service) to a SMC project (and back). Personally, I find line comments and being able easily look at different diffs very useful as well compared to using trac, but I agree that it's good to have issues consolidated at one place. > Of course, the above is only reasonable for certain very limited types > of contributions. For us, we would want to be able to use the > modified version of Sage online as well, so one could test/develop > code, then "Propose change". If only there were a good way to use > Sage online with a code editor... > >> that reason. So here are a few concrete proposals. Obviously I am not >> capable of doing them myself, or I would, and clearly #3 is hard. >> >> 1) Put "Merged in" back. >> 2) Fix just how much crazy stuff shows up in "git log", presumably by >> merging things differently or with different messages or something. >> 3) Wherever the web interface idea went to, bring it back. Or create a >> workflow where github pull requests create a ticket, or something. (I do >> like that we have "issues" disabled, since otherwise that would keep things >> in too many places.) >> 4) Get http://trac.sagemath.org/ticket/14372 in. >> >> -- >> 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 http://groups.google.com/group/sage-devel. >> For more options, visit https://groups.google.com/d/optout. > > > > -- > William Stein > Professor of Mathematics > University of Washington > http://wstein.org > > -- > 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 http://groups.google.com/group/sage-devel. > For more options, visit https://groups.google.com/d/optout. -- 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 http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.