Thanks for sending out the poll, Francois.

I endorse the "hybrid" variant.

On Tuesday, August 23, 2022 at 4:38:40 PM UTC-7 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/9589617b-a95f-4c7f-9258-6f8f9f315075n%40googlegroups.com.

Reply via email to