8000
Skip to content

Add profiles for each GHC branch - #1773

Draft
hololeap wants to merge 21 commits into
gentoo-haskell:masterfrom
hololeap:gentoo-haskell-profiles
Draft

Add profiles for each GHC branch#1773
hololeap wants to merge 21 commits into
gentoo-haskell:masterfrom
hololeap:gentoo-haskell-profiles

Conversation

@hololeap
Copy link
Copy Markdown
Member

Please check all the boxes that apply:

  • I can submit this contribution in agreement with the Copyright Policy.
  • I have certified the above via adding a Signed-off-by line to every commit in the pull request.
  • This contribution has not been created with the assistance of Natural Language Processing artificial intelligence tools, in accordance with the AI policy.
  • I have run pkgcheck scan --commits --net to check for issues with my commits.

Please note that all boxes must be checked for the pull request to be merged.


gentoo-haskell profiles

Instead of having an increasing number of files in the scripts/ directory that the user is expected to copy, let's introduce profiles for each major GHC branch which encapsulate the existing files. This will streamline later additions of more files and take the burden off the user. Also, an extra benefit is it allows pkgcheck scan to check for mistakes in the files.

The big question is how users can combine these profiles with the one already selected on the system.

Combining profiles

One clunky solution would be to instruct the user to create a custom profile in a local repo that references both their system profile and the ghc profile in the parent file, as instructed here. Hopefully there are other ways to do this that can be explored.

hololeap added 20 commits April 22, 2025 04:07
package.mask copied from scripts/package.mask/ghc-9.4

Signed-off-by: hololeap <hololeap@protonmail.com>
package.mask copied from scripts/package.mask/ghc-9.6

Signed-off-by: hololeap <hololeap@protonmail.com>
dummy profile, as ghc-9.8 is currently the default

Signed-off-by: hololeap <hololeap@protonmail.com>
package.unmask copied from scripts/package.unmask/ghc-9.10

Signed-off-by: hololeap <hololeap@protonmail.com>
package.unmask copied from scripts/package.unmask/ghc-9.12

Signed-off-by: hololeap <hololeap@protonmail.com>
Fix upper bounds on hoauth2 and stack to reflect current versions in the
tree.

Signed-off-by: hololeap <hololeap@protonmail.com>
Fix upper bounds on hoauth2 and stack to reflect current versions in the
tree.

Signed-off-by: hololeap <hololeap@protonmail.com>
Remove entry for non-existent package dev-haskell/cabal-test

Signed-off-by: hololeap <hololeap@protonmail.com>
Signed-off-by: hololeap <hololeap@protonmail.com>
Signed-off-by: hololeap <hololeap@protonmail.com>
@hololeap
Copy link
Copy Markdown
Member Author

One clunky solution would be to instruct the user to create a custom profile in a local repo that references both their system profile and the ghc profile in the parent file, as instructed here. Hopefully there are other ways to do this that can be explored.

For the record, this does work, but it's quite a bit to explain in a news item, so a simpler solution would be better (if one even exists).

@hololeap
hololeap commented Apr 22, 2025
Copy link
Copy Markdown
Member Author

I doubt there is a better way to do this. I'm thinking a new eselect module is a path to explore. For instance, app-eselect/supplemental-profile app-eselect/mixed-profile, which would create a special repo for this purpose and let you choose which profiles to add to its parent.

  • It would require at least one complete profile (e.g. non-supplemental) to be added to a mixed profile
  • profiles/supplemental-profiles.desc to describe profiles that are not standalone (that way they don't show up in eselect profile)
  • Automatically create a mixed-profile repo using parts from eselect repository
  • Allow for multiple custom-named mixed profiles defined by the user

Signed-off-by: hololeap <hololeap@protonmail.com>
@hololeap
Copy link
Copy Markdown
Member Author

I'm thinking it's best if we keep the current method of copying files from scripts/, and add this mixed-profile idea in as a separate option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

0