3. Kwankyu has brought up some issues about github release creation.
4. ... Item 3 arose, and some other issues arose, because code was removed without carefully thinking about the consequences.
I think one reason you’re bringing this up is that the current release cycle has been especially tough on sage-the-distro users:
First came the setuptools update, which broke the Jupyter kernel and caused some annoying recompilation issues.
Then the move to the Meson build backend introduced a few doctest and docbuild hiccups on some systems.
And now, the cleanup work after that switch has brought along a couple more bugs (like the current sage-conf problem).
Since I was closely involved in points 2 and 3, I really want to say I’m sorry for the headaches this has caused. My goal was never to make things harder for anyone. PR #39030 was a big, nine-month effort, non-trivial but necessary, and honestly, given the state of sage-the-distro, I’m relieved it went as smoothly as it did.
That said, you’re absolutely right: I should have done a better job communicating these changes ahead of time, if only to set expectations and help everyone brace for the bumps along the way.
Here are some recent occurrences in Sage development:1. The documentation is not built by default.
2. There has been the assertion that Conda is the recommended approach for compiling from source.
3. Kwankyu has brought up some issues about github release creation.
4. Historically (at least in my experience) Sage developers were careful to maintain backwards compatibility, whereas there are at least some now who are willing to break things and then maybe fix them later. Item 3 arose, and some other issues arose, because code was removed without carefully thinking about the consequences.
On Sun, Sep 28, 2025 at 10:52 AM Kwankyu Lee <ekwa...@gmail.com> wrote:
>
> On Friday, September 26, 2025 at 7:47:25 AM UTC+9 John H Palmieri wrote:
>
> Here are some recent occurrences in Sage development:
>
> 1. The documentation is not built by default.
>
>
> Previously "make" built doc. Now it doesn't. This change affects all developers using sage-the-distro.
And it is a positive change, as one does building of the code more
often than building of the code and the docs.
> As such, It should have been announced in sage-devel. I don't know if it was.
And this is fine. You were not visibly doing anything Sage-related for
at least half a year, after a minor scandal,
with you demanding more "respect" legacy of a developer removed from
the project for major misconduct.
>
> 2. There has been the assertion that Conda is the recommended approach for compiling from source.
>
>
> This is a major change. This should be approved in sage-devel before it is officially adopted (appear in docs).
No, why? It's just how things are at the moment. Conda is the easiest
cross-platform way to install Sage, full stop.
It's hard to argue otherwise. If someone writes that 2+2==4 in the
manual, will you demand an approval for this too?
>
>
> 3. Kwankyu has brought up some issues about github release creation.
>
>
> We are keeping changelogs here: https://www.sagemath.org/changelogs/index.html. They are automatically generated by a few github workflows.
>
> To keep the format (contributions divided by releases) of the changelogs, I made the PR https://github.com/sagemath/sage/pull/39194.
>
> Recently https://github.com/sagemath/sage/pull/40709 removed the code from #39194 without any discussion.
>
> The author and the reviewer of #40709 made no efforts to fix the regression, as seen in https://github.com/sagemath/sage/pull/40840 and https://github.com/sagemath/sage/pull/40843.
#40709 was fixing a much much bigger regression than this.
https://github.com/sagemath/sage/pull/39194 solves a very minor (I
think non-existent, and I am going to put it to a vote here) issue in
a hard to maintain way.
CI tasks like one tackled in #40709 like this are hard to fix,
as you never know whether it will actually work when deployed in the
real, in this case while making a
new release.
Yes, there was a lot of CI code added, removed or redone lately. I
don't know why you have made such a fuss about your 20 lines.
>
>
> 4. Historically (at least in my experience) Sage developers were careful to maintain backwards compatibility, whereas there are at least some now who are willing to break things and then maybe fix them later. Item 3 arose, and some other issues arose, because code was removed without carefully thinking about the consequences.
Please stop making unfunded assumptions about someone being careless or not.
It's impossible to think about consequences of removing of something
that's broken and serves an unclear purpose, while its author
is not around. Note that it is about the CI code, which is as a rule
hardly ever documented.
--
William (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+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/sage-devel/CACLE5GCMPdFvRAt2QvC-jOZPfdOnJG%3DFbW-LaoQpjPU_s_k_7Q%40mail.gmail.com.
On Monday, September 29, 2025 at 8:01:58 AM UTC-7 dim...@gmail.com wrote:On Sun, Sep 28, 2025 at 10:52 AM Kwankyu Lee <ekwa...@gmail.com> wrote:
>
> On Friday, September 26, 2025 at 7:47:25 AM UTC+9 John H Palmieri wrote:
>
> Here are some recent occurrences in Sage development:
>
> 1. The documentation is not built by default.
>
>
> Previously "make" built doc. Now it doesn't. This change affects all developers using sage-the-distro.
And it is a positive change, as one does building of the code more
often than building of the code and the docs.I understand that opinion, but it should have been discussed by the Sage community before being implemented.
> As such, It should have been announced in sage-devel. I don't know if it was.
And this is fine. You were not visibly doing anything Sage-related for
at least half a year, after a minor scandal,
with you demanding more "respect" legacy of a developer removed from
the project for major misconduct.I don't know if I should read this as an attack on Kwankyu or a more general message, conveying something like, if you don't post here much,
if you are not very involved in Sage development, then you should not express your opinion here. Either way: good job! This is a great way to make the Sage community more open and welcoming! Thanks!
>
> 2. There has been the assertion that Conda is the recommended approach for compiling from source.
>
>
> This is a major change. This should be approved in sage-devel before it is officially adopted (appear in docs).
No, why? It's just how things are at the moment. Conda is the easiest
cross-platform way to install Sage, full stop.
It's hard to argue otherwise. If someone writes that 2+2==4 in the
manual, will you demand an approval for this too?There is a difference between saying "conda seems to work best these days" and "conda is the recommended approach". The second version connotes that a person or people in authority have deemed this to be the case, and I don't think that has happened. (The only authority would come from a discussion and vote on sage-devel, given our current governance structure.) In contrast, the first version is clearly just an opinion of an individual poster.
>
>
> 3. Kwankyu has brought up some issues about github release creation.
>
>
> We are keeping changelogs here: https://www.sagemath.org/changelogs/index.html. They are automatically generated by a few github workflows.
>
> To keep the format (contributions divided by releases) of the changelogs, I made the PR https://github.com/sagemath/sage/pull/39194.
>
> Recently https://github.com/sagemath/sage/pull/40709 removed the code from #39194 without any discussion.
>
> The author and the reviewer of #40709 made no efforts to fix the regression, as seen in https://github.com/sagemath/sage/pull/40840 and https://github.com/sagemath/sage/pull/40843.
#40709 was fixing a much much bigger regression than this.
https://github.com/sagemath/sage/pull/39194 solves a very minor (I
think non-existent, and I am going to put it to a vote here) issue in
a hard to maintain way.
CI tasks like one tackled in #40709 like this are hard to fix,
as you never know whether it will actually work when deployed in the
real, in this case while making a
new release.
Yes, there was a lot of CI code added, removed or redone lately. I
don't know why you have made such a fuss about your 20 lines.
>
>
> 4. Historically (at least in my experience) Sage developers were careful to maintain backwards compatibility, whereas there are at least some now who are willing to break things and then maybe fix them later. Item 3 arose, and some other issues arose, because code was removed without carefully thinking about the consequences.
Please stop making unfunded assumptions about someone being careless or not.
It's impossible to think about consequences of removing of something
that's broken and serves an unclear purpose, while its author
is not around. Note that it is about the CI code, which is as a rule
hardly ever documented.If someone removes a line saying something like "from X import Y", then the author and reviewer should just do a quick search to see if Y is still used anywhere, rather than just leaving it as an undefined symbol. I think it's fair to call that careless.
If someone is working on the build system and neither the author nor the reviewer think to try it out on a fresh git clone, I think it's also fair to call that careless.
It seems to me there are two things that arise in conflict here:- some people who see, unannounced, big changes and failures happen.- developers who see certain changes as necessary to keep their maintenance burden manageable and other changes as desirable because there are benefits to be had.The first group are not automatically opposed to the changes that the second group want. It's just that their first encounter with the changes is a negative one and therefore they react negatively.If there had been a discussion about the proposed changes, it is very well possible that the consensus would have been that it's worth to make the change (that is mainly: embrace meson and/or, change when docs are built due to cost) and at the very least, after a course of action was converged on, people would have at least had some warning that instability in building was imminent due to some large changes being merged.
Autocratic rule by just forcing decisions through does not invite buy-in and ultimately will narrow the community; not grow it.
It would probably help if we get a more well-defined governance structure in place for sagemath (mainly because it will help to still be able to act in situations where consensus cannot easily be reached) but we won't be able to avoid the discussion to see to what degree we can reach consensus. That step is necessary to maintain a welcoming community. I don't think sagemath is viable by running it as a collaboration of a small group of maintainers and release engineers. So we're stuck with the politics of making decisions in a large group of people.
Autocratic rule by just forcing decisions through does not invite buy-in and ultimately will narrow the community; not grow it.
If someone is working on the build system and neither the author nor the reviewer think to try it out on a fresh git clone, I think it's also fair to call that careless.Others may disagree with me.
Regarding documentation, I would note that README.md on GitHub still says:"The HTML version of the documentation is built during the compilation process of Sage and resides in the directory local/share/doc/sage/html/. You may want to bookmark it in your browser."That should be changed if no longer true, and instructions for generating docs provided.
As one whose focus is on using Sage, I look for coherence and stability, so that I can get on with the mathematics. I am disappointed when 'tan?' no longer produces the documentation for tan(). Please remember the users.
Well, yes, you can complain that it's volunteers' dictatorships - but instead you can tell yourself that it's great that you didn't have to spend you precious timeon that plumbing assignment. An unpaid volunteer's labour of this sort is donation to the project (obviously there is no direct benefit to the volunteer here, asit's not something interesting from scientific or engineering point of you)
The only real way to get any classical governance is to get some funding, then one can organise around the grant, like it happened in OpenDreamKit times.(then at least some volunteers can get paid and thus be more thorough in their work).Otherwise it's, as I explained above, a volunteers' dictatorship. Donate your labour, and rule with thus earned social capital.
Why do you think everyone has gobs of time, and enough patience, to try every seemingly trivial change from a clean slate?Our build system is still too slow for this.In particular on Macs, where way too many packages have to be built.
Why no Mac user is working on this aspect, e.g. by creating Homebrew formulae to have more packages installable via brew?It can be done for all non-Python projects, it's easier than it looks, Macaulay2 has done it for their major deps(we can reuse some of their formulae in https://github.com/Macaulay2/homebrew-tap)
On Monday, 29 September 2025 at 23:17:06 UTC-7 dim...@gmail.com wrote:Well, yes, you can complain that it's volunteers' dictatorships - but instead you can tell yourself that it's great that you didn't have to spend you precious timeon that plumbing assignment. An unpaid volunteer's labour of this sort is donation to the project (obviously there is no direct benefit to the volunteer here, asit's not something interesting from scientific or engineering point of you)I don't dispute that the sagemath build process needed maintenance/modernisation work because bitrot is a real thing -- and as Orlitzky points out, it happens by itself. I'm not doubting that your intent is to make sage really better.I think the plumbing analogy can do a little more work here: it may very well be that the sewage main in your street needs replacement. That's maintenance that needs to happen every few decades.
But if the trucks show up one morning unannounced and break open the street and block the driveway, most people will be annoyed at least. Quite a few would be livid. And that's not how that kind of work generally happens. Instead, people receive information about what is going to happen, why it is going to happen, and what they can do to mitigate the impact.The exact actions would be different here, but the same principles apply: if people are informed beforehand about the work, its necessity and the benefits, it is much easier for them to accept and plan around the inconveniences of construction.The only real way to get any classical governance is to get some funding, then one can organise around the grant, like it happened in OpenDreamKit times.(then at least some volunteers can get paid and thus be more thorough in their work).Otherwise it's, as I explained above, a volunteers' dictatorship. Donate your labour, and rule with thus earned social capital.Time spent on improving sage can definitely earn "social" capital. It does require that many in the community *perceive* your contributions as improving sage, though. So I think it is also in the interest of the developer/maintainer who wants to earn social capital in order to be able to influence decisions in sage, to try and get buy-in from many community members: it will improve trust in their judgement to make changes to sage that are beneficial. Trust is an important component of social capital.
--
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+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/sage-devel/f4871539-adb8-48a9-83c9-e737c7a7e477n%40googlegroups.com.
No, no autocratic decisions. The authority of the community to do various unpleasant plumbing and swamp draining on the system is, de facto, delegated towhoever volunteers to get their hands dirty. The community normally appreciates the work done, and tolerates minor hiccupswhich always arise. Certainly major hiccups cannot be tolerated, and that's OK. But hiccups like an unannounced change on whether or not"make all" builds docs are truly minor. Aggrandizing minor hiccups is not welcomed by aforementioned volunteers, obviously.Well, yes, you can complain that it's volunteers' dictatorships - but instead you can tell yourself that it's great that you didn't have to spend you precious timeon that plumbing assignment. An unpaid volunteer's labour of this sort is donation to the project (obviously there is no direct benefit to the volunteer here, asit's not something interesting from scientific or engineering point of you)
It would probably help if we get a more well-defined governance structure in place for sagemath (mainly because it will help to still be able to act in situations where consensus cannot easily be reached) but we won't be able to avoid the discussion to see to what degree we can reach consensus. That step is necessary to maintain a welcoming community. I don't think sagemath is viable by running it as a collaboration of a small group of maintainers and release engineers. So we're stuck with the politics of making decisions in a large group of people.The only real way to get any classical governance is to get some funding, then one can organise around the grant, like it happened in OpenDreamKit times.(then at least some volunteers can get paid and thus be more thorough in their work).Otherwise it's, as I explained above, a volunteers' dictatorship. Donate your labour, and rule with thus earned social capital.
I am very grateful that people put their time into working on the build system, packaging, and these little developer annoyances. After some initial hiccups, it's been a joy to work with meson, not having the docs build all the time is imho the right thing to do, and installing with conda has proved much easier (and at the very least it fails much faster, at least when I am doing the hand-holding.) That's my personal experience and I understand that for others such changes might have been much more annoying.
julian
julian
--
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+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/sage-devel/58dee9b6-ec90-4e4a-ae7c-0d4f055e0777n%40googlegroups.com.
By the way, to give you an example of careless, in my book, reviewing: #40877.(it wasn't actually even reviewed, the release manager just pushed it through, over our protests).It reverted #40765, which in particular made sure that there is a way to findSage's cython directories, via sage.config. Now for instance sage_numerical_backends_* (coin, etc) cannot be built because the old way to find cythondirectories is gone, and the new way got reverted.So now, there is a request to revive sage_numerical_backends_coin, and one has to dig through the branch of #40765 to fish out the necessary bits.