Skip to content

Towards GAP 5 (with minimal breakage) ? #6079

@fingolfin

Description

@fingolfin

During GAP Days we discussed the possibility of making a "GAP 5" release. Mind you, this was just a discussion, and possibilities, and nothing has been decided yet.

One motivation for such a move is purely from a "marketing" point of view. E.g. versions like "4.15" are confusing for many people (I've heard it being called "version 4-1-5").

Another is a chance to perform some mild, well-documented, low-impact breaking changes. The two examples that came up so far:

  • possibly removing the "package namespaces" which adds complications in kernel and library but in practice is rarely used and has many usability issues, while not really solving the problems it was presumably meant to solve
    • only, a handful of distributed packages use this, including these (I don't claim completeness), most of which can be trivially changed away from using it:
      • autpgrp
      • classicpres (substantial user of @)
      • float
      • fr (substantial user of @)
      • liepring
      • modisom
      • polycyclic
      • rds
      • repndecomp (substantial user of @)
      • wedderga
      • zeromqinterface
  • removing support for the ability to enter floating point literal starting with . -- that is, entering a literal like .0 instead of 0.0
  • remove support for DeclareAutoreadableVariables / AUTO
    • atlasrep
    • browse
    • ctbllib
    • liealgdb
    • smallsemi
    • sonata

In each case, the proposal would not be to just rip these things out immediately, but rather multi-stage

  • first, mark these features as deprecated, and notify package authors
  • work towards all packages have stopped using a feature
  • modify GAP to issue warnings when these features are used
  • and then after an additional grace period (say, one full GAP release cycle) we can consider really removing the feature

In all cases, such changes must be clearly communicated to users, the release announcement should mention them, there should be a page with instructions how to deal with them if one is affected.

And while we make no promises to deal with undeposited packages, I'd be interested to also having a look at those (see list at https://gap-packages.github.io for some I know of) and seeing how any of this affects them, if at all, and possibly helping them to adjust.

Anyway, food for thought.

Metadata

Metadata

Assignees

No one assigned

    Labels

    gapdays2025-summerIssues and PRs that arose at https://www.gapdays.de/gapdays2025-summer

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions