If I am allowed to vote, my vote is hybrid > copy files > pseudo package.
- Marc On Tuesday, August 23, 2022 at 6:38:40 PM UTC-5 François Bissey wrote: > Hi all, > > https://trac.sagemath.org/ticket/34152 needs help to decide what solution > we implement going forward. > > The ticket is concerned with updating the bootstrap process by removing > the current need for gettext and replacing it with gnulib ( > https://www.gnu.org/software/gnulib). gnulib is not a regular software > library but a collection of bits and pieces to help portability across > platforms. > > The issue at hand is how do we include and use gnulib in sagemath. > Matthias Koeppe and Dima Pasechnik have been arguing for several weeks and > across most of the ~250 comments of the ticket about the way to proceed. At > some point it became clear that they would not agree and would need > arbitration. This is what this post is about, I am inviting the sagemath > community to weigh in and decide the issue. > > The ticket summary has been updated with summaries of the problem and of > both options along with links to branches implementing them. I would not > recommend diving in the comment section. > > There are 3 (three) options to choose from, one from Matthias, one from > Dima and a hybrid approach they tried to create. > > -- copy files -- > > - Follows approach 3 of the Gnulib manual section 'Integration with > Version Control Systems' > <https://www.gnu.org/software/gnulib/manual/html_node/VCS-Issues.html>. > - 5 files, in config/ and m4/, total 112 KB, have been imported by > using `gnulib-tool import iconv` > <https://www.gnu.org/software/gnulib/manual/html_node/Initial-import.html> > and > committed to the branch. > - Matches our practice with imported files `m4/ax_*.m4` > <https://github.com/sagemath/sage/tree/develop/m4> from > autoconf-archive > <https://www.gnu.org/software/autoconf-archive/The-Macros.html>. > Different from our practice with SPKGs because the files are needed to > generate the configure script. > - Introduces no new dependency. > - Burden on a developer who authors an update ticket for these files: > Obtain gnulib by cloning the repo, then re-run gnulib-tool import, > remove unneeded files (that's where #29549 > <https://trac.sagemath.org/ticket/29549> went wrong), commit the > changes. (Updates are expected to be necessary only very rarely.) > - Burden on users and other developers: None. > - dimpase's criticism of this approach: "gnulib's code is not Sage's > code, it has no place in Sage git tree; this way, updating the imported > gnulib files is tricky and error-prone by design". > > -- sage pseudo package -- > > - Follows approach 2(C) of the Gnulib manual section 'Integration with > Version Control Systems' > <https://www.gnu.org/software/gnulib/manual/html_node/VCS-Issues.html>, > but instead of using Gnulib's Programs for developing in Git checkouts > > <https://www.gnu.org/software/gnulib/manual/html_node/Developer-tools.html>, > implements its own script (making checkout much faster, as full gnulib > checkout > is 250 MB). > - Introduces a new (although one can't really do Sage development > without git installed) dependency on git and on availability of > internet connection at the first run of ./bootstrap in a tree, to pull > 83 MB (fair to say that internet is needed for Sage development a lot, > anyway). > - Burden on a developer who authors an update ticket for these files: > Edit the bootstrap file to change the commit hash, verify that the > list of files removed by make bootstrap-clean is still correct, commit > this change > - Burden on other users: a pseudo-package needs to be installed once > (and updated, automatically) > - mkoeppe's criticism of this approach: "Having bootstrap operate a > multi-megabyte git clone (on the 1st install and when there's a change of > the gnulib commit hash) in the upstream/ directory increases > complexity for no benefit." > > -- hybrid -- > > - Resolves the criticism on the "copy files" approach: "updating the > imported gnulib files" is now assisted by the spkg-src script (adapted > from dimpase's branch) > - Resolves the criticism on the "Sage pseudo-package" approach: > "operate a multi-megabyte git clone (on the 1st install and when there's a > change of the gnulib commit hash)" is only done by authors of tickets that > update gnulib, not by general users of bootstrap. > > Vote is open now and will close - tentatively - on the 29th of August at > 12pm New Zealand time [my time zone] when I will do the tally. If no option > gets a majority, the voting period may be extended by a few days. > Please vote! > [ ] copy files > [ ] sage pseudo package > [ ] hybrid > > > -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/df9f0731-9955-4cc4-b35c-e13e9c83079bn%40googlegroups.com.