Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use data-array-byte package to provide ByteArray for GHC < 9.4 #359

Merged
merged 1 commit into from
Oct 23, 2022
Merged

Use data-array-byte package to provide ByteArray for GHC < 9.4 #359

merged 1 commit into from
Oct 23, 2022

Conversation

Bodigrim
Copy link
Contributor

@Bodigrim Bodigrim commented Oct 7, 2022

Follow up on #354.

I copied Data.Array.Byte from base-4.17 into a standalone compatibility package data-array-byte so that bytestring and text can switch to ByteArray, but maintain providing a stable interface across GHC versions.

Now primitive can also use the same compatibility package, reducing amount of CPP and code to maintain and just importing Data.Array.Byte unconditionally.

Cf. haskell/text#474 and haskell/bytestring#410

@andrewthad
Copy link
Collaborator

I like this idea. I am reluctant to add a dependency that could create a bottleneck for fixing issues. Would you be able to either:

  1. Transfer the repo to the haskell organization, or
  2. Assign me and several other people that you trust as maintainers with write permissions the github repo, and add the same people as comaintainers on hackage. Add at least one other person as an admin on the github project.

Either of these would make me feel a better about how quickly a patch release could get pushed out if something critically wrong was discovered that impacted primitive.

@Bodigrim
Copy link
Contributor Author

Bodigrim commented Oct 8, 2022

@andrewthad @sjakobi @clyring @chessai @Lysxia I've added you all to https://github.com/Bodigrim/data-array-byte. Pending your acceptance of invitation, I'll provide Hackage rights as well. Do not worry, you are not expected to do anything, this is just to increase bus factor.

@andrewthad
Copy link
Collaborator

I've accepted the invite to the GH repo.

@Bodigrim
Copy link
Contributor Author

Bodigrim commented Oct 8, 2022

@phadej
Copy link

phadej commented Oct 8, 2022

FWIW, I see this is the way to go forward. If current master version is released as primitive-0.8.0.0, then primitive will become de-facto compatibility package for ByteArray, as it currently uses base's ByteArray when available but defines own otherwise.

But that would be supar (although bytestring and text could depend on primitive for older GHC/base, I guess). Anyway better to have as minimal compatibility packages as possible.

primitive.cabal Outdated Show resolved Hide resolved
@andrewthad
Copy link
Collaborator

I’m going to let this sit til Monday just to see if anyone has any additional review or concerns, and then I’ll merge it in.

@lehins
Copy link
Contributor

lehins commented Oct 8, 2022

This is a decent plan. However, data-array-byte is such a terrible name. It is probably too late and is not worth the trouble coming up with a better name. Also too bad that @hvr was so trigger happy with grabbing package names that would be useful for this purpose:

@Bodigrim
Copy link
Contributor Author

Bodigrim commented Oct 8, 2022

I wonder how many other names @hvr had reserved :) But besides that I'm not keen to steal a "nice" name for a compatibility package, which would hopefully be forgotten within couple of years.

@sjakobi
Copy link
Member

sjakobi commented Oct 10, 2022

Also too bad that @hvr was so trigger happy with grabbing package names that would be useful for this purpose

While I'm not a fan of HVR's name squatting, I'd like to point out that HVR has transferred ownership of some names upon request. dhall-yaml is an example.

@Bodigrim
Copy link
Contributor Author

@andrewthad let's go?

@Bodigrim
Copy link
Contributor Author

@andrewthad just a gentle ping.

@andrewthad andrewthad merged commit e20992f into haskell:master Oct 23, 2022
@andrewthad
Copy link
Collaborator

Merged!

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.

5 participants