purescript-contrib / governance

Guidelines and resources for the PureScript Contributors organization
15 stars 3 forks source link

uint, float32, arraybuffer #40

Closed jamesdbrock closed 3 years ago

jamesdbrock commented 3 years ago

I'd like to propose these libraries for inclusion into purescript-contrib:

I depend on these libraries, they are old and reliable, and the owners' attentions seem to have attenuated. Actually, it seems to me that @athanclark was maintaining all three of these libraries, but his Github activity dropped in September 2020.

uint and float32 in particular define basic types which would really benefit the PureScript ecosystem.

I will commit to maintaining these libraries.

If these libraries are added, then I think @zaquest , @athanclark , and @jacereda should also be made members of purescript-contrib , so they have the option of resuming active control over their libraries.

Is this the list of current maintainers? https://github.com/orgs/purescript-contrib/people

References: https://github.com/purescript-contrib/governance/issues/2 https://github.com/zaquest/purescript-uint/pull/12 https://github.com/athanclark/purescript-float32/pull/3 https://github.com/jacereda/purescript-arraybuffer/pull/28

JordanMartinez commented 3 years ago

Just curious, but why not fork these repos under your name, republish under new names, and continue using those from there?

Are there any contrib libraries currently using these libs as dependencies?

athanclark commented 3 years ago

I recommend the transference of maintenance to @jamesdbrock, he seems dedicated and would contribute meaningfully to the ecosystem

zaquest commented 3 years ago

I don't mind transferring purescript-uint to purescript-contrib if it's of any interest for the community. Meanwhile, @jamesdbrock I sent you an invite to the repository so you could merge your PR. If you need any assistance from me to publish it Pursuit, please, let me know.

jacereda commented 3 years ago

Same situation here with purescript-arraybuffer, I don't mind transferring it.

thomashoneyman commented 3 years ago

Given the basic / foundational nature of these libraries, your offer to maintain them, and the endorsements of each maintainer I’m interested in adding these to contrib.

@zaquest, @athanclark, @jacereda — are you wanting to transfer maintainership entirely, or do you want to remain maintainers alongside @jamesdbrock?

The process from here is to update the libraries according to the contrib guidelines and then transfer them in (adding folks to the organization who need to be). If you need help with that, @jamesdbrock, then we could transfer the libraries in and I can help update them from there.

athanclark commented 3 years ago

I may wish to recommend changes to my library in the future, but I'm not fit to be the primary maintainer of the library if it's this important to the ecosystem; I'm comfortable with completely transferring maintainership to @jamesdbrock

thomashoneyman commented 3 years ago

Also, just to clarify: I’ll have to discuss with other contrib members about adding these libraries, as it’s not my decision alone.

We may add one or two or all three; for ones we don’t add, you can transfer ownership to @jamesdbrock or add him as a collaborator on the repo as another possible solution — as @JordanMartinez mentioned before.

zaquest commented 3 years ago

I haven't been doing any PureScript programming in years, so I'd rather give up any control over the library. There're PRs if I'd like to suggest changes)

jamesdbrock commented 3 years ago

Thanks everyone for being so helpful about this.

@zaquest and @jacereda , I've accepted your collaboration invitations.

@thomashoneyman I'm still proposing to add all of the libraries and all of the maintainers which I listed in the top of this issue to purescript-contrib. I'll wait for your decision.

JordanMartinez commented 3 years ago

@thomashoneyman Here's my thoughts (and responses to my previous comments):

Just curious, but why not fork these repos under your name, republish under new names, and continue using those from there?

These three repos provide foundational types for the JS backend that should continue to be supported. Including them in the contrib's repos makes it more likely that these repos will continue to be maintained over time.

Are there any contrib libraries currently using these libs as dependencies?

I think we should follow the core libs policy of not allowing any repos into core if they depend on anything outside of core. It helps significantly when we update the ecosystem for PS releases with breaking changes. AFAICT, none of these repos seem to depend on non-core/non-contrib repos.

In short, I'm in favor of adding these libraries due to the 'maintenance' concern above. Since they are small, I don't think it's a huge burden to add them to the repos, and I think most of them are already mature, so any new work on them should be minimal.

The only other question I have is what rights/privileges/roles/etc. should be granted to the original author and @jamesdbrock for each repo. It sounds like most would be fine with transferring it to James and submitting PRs to change anything if they wanted to.

jamesdbrock commented 3 years ago

Thanks @JordanMartinez

zaquest commented 3 years ago

I suggest transfering purescript-uint to purescript-contrib and possibly adding @jamesdbrock as a maintainer for it, if he wants to be one. If not then maybe purescript-contrib people themselve could maintain it. No need to add me in any role, I don't see myself being useful for the package in the foreseeable future. So please let me know what you decide, whether you choose to include purescript-uint or not in purescript-contrib. I'll transfer it when requested by one of purescript-contrib public members. Thanks!

JordanMartinez commented 3 years ago

@thomashoneyman Any updates on this?

thomashoneyman commented 3 years ago

Sorry folks, I've been on a long vacation. I'm on board with transferring uint and float32 into the contrib organization, and if we can make sure that arraybuffer doesn't have dependencies outside of the contrib / core organizations then I'm on board with that one as well.

thomashoneyman commented 3 years ago

@jamesdbrock I've invited you to the contributors organization, and you can now start transferring repositories. Let me know when you've initiated the transfer and I can approve them / update them for the contributors guidelines.

thomashoneyman commented 3 years ago

As far as arraybuffer goes, I'd want to remove the dependencies on purescript-quickcheck-combinators and purescript-typelevel before introducing the library to the Contributors organization. We need to ensure that we can update libraries for compiler releases, which means we need to control the dependency tree.

zaquest commented 3 years ago

Apparently one needs the right to create repositories in organization to transfer a repository to it. @jamesdbrock could you, please, remove your purescript-uint repository so that I could transfer it to you? And then you should be able to transfer it to purescript-contrib.

jamesdbrock commented 3 years ago

Ok @zaquest I deleted jamesdbrock/purescipt-uint

jamesdbrock commented 3 years ago

My plan:

https://github.com/purescript/registry#name-squatting-and-reassigning-names

https://github.com/purescript/registry/issues/182

purescript-uint

Transfer from zaquest to purescript-contrib/purescript-uint.

Reassign the same package name in the registry.

Add to package-sets.

(Later on, possibly add some of these instances? https://github.com/athanclark/purescript-uint-instances/blob/master/src/Data/UInt/Instances.purs)

purescript-float32

Transfer from athanclark to purescript-contrib/purescript-float32.

Reassign the same package name in the registry.

Upgrade to PureScript 0.14 and add to package-sets.

purescript-arraybuffer

I will work on removing the non-purescript-contrib dependencies. Then we'll see from there.

jamesdbrock commented 3 years ago

@jacereda has transferred purescript-arraybuffer to purescript-contrib, thank you @jacereda .

Since purescript-arraybuffer still has the non-contrib dependencies, should I transfer it to myself, or should I leave it in purescript-contrib while we work on it?

jamesdbrock commented 3 years ago

I say we leave purescript-arraybuffer in purescript-contrib while we work on it.

jamesdbrock commented 3 years ago

It appears to me that spago, at least, can still download purescript-arraybuffer through whatever redirect mechanism Github uses for transferred repositories. And probably everything else can still download it too.

https://docs.github.com/en/github/administering-a-repository/managing-repository-settings/transferring-a-repository#whats-transferred-with-a-repository

So I think the current situation with purescript-arraybuffer will not inconvenience anyone, and we can leave it as it is while we decide what to do.

zaquest commented 3 years ago

It appears to me that spago, at least, can still download purescript-arraybuffer through whatever redirect mechanism Github uses for transferred repositories. And probably everything else can still download it too.

Yes, I think redirects is the main reason to use transfer over simply creating a fork, which could've been easier, but would've broken things in the end.

@jamesdbrock Transferred purescript-uint to you.

jamesdbrock commented 3 years ago

Sorry @zaquest the transfer expired, please transfer again?

zaquest commented 3 years ago

Sorry @zaquest the transfer expired, please transfer again?

Aborted and requested transfer one more time.

jamesdbrock commented 3 years ago

@jacereda May I give you a “maintainer” badge on the purescript-contrib/purescript-arraybuffer README? (along with myself, of course)

jacereda commented 3 years ago

Sure, I'm away from PS development these days, but I might come back at some point if I find a suitable project.

jamesdbrock commented 3 years ago

I guess I don't have permission for the Settings of https://github.com/purescript-contrib/purescript-arraybuffer repository? Would someone please set the default branch of the repository to main? @thomashoneyman @JordanMartinez

JordanMartinez commented 3 years ago

I've changed the default branch to main.

jamesdbrock commented 3 years ago

@athanclark would you please transfer https://github.com/athanclark/purescript-float32 to jamesdbrock?

jamesdbrock commented 3 years ago

In the unlikely case that @athanclark never receives my messages and never transfers the purescript-float32 repository and I fork the repo and add it to purescript-contrib, we’ll have to give it a new name. And maybe give the data type Float32 a new name as well? Anyone want to suggest names? How about purescript-float and Float?

JordanMartinez commented 3 years ago

I'm good with purescript-float. However, why not just keep the same Float32 name? If anything, we could drop purescript-float32 from the package set and replace it with purescript-float to minimize the breakage.

athanclark commented 3 years ago

@jamesdbrock Sorry for sleeping on this; I just got back from a vacation. I tried to transfer ownership to you, but you already have a fork with the same name as the original project. Maybe changing the name would be the best solution?

jamesdbrock commented 3 years ago

Hi @athanclark sorry I missed your transfer attempt! I renamed my fork of your repo to jamesdbrock/purescript-float32-fork so that you would be able to transfer to me, but probably Github was still reserving jamesdbrock/purescript-float32 for redirects, which makes sense, I should have thought of that.

I have now entirely deleted the repo jamesdbrock/purescript-float32-fork, please try the transfer again?

jamesdbrock commented 3 years ago

@jamesdbrock Sorry for sleeping on this; I just got back from a vacation.

(P.S. no problem, I hope you had a nice relaxing vacation!)

athanclark commented 3 years ago

Transferred!

jamesdbrock commented 3 years ago

Transfer complete, thank you again @athanclark !

JordanMartinez commented 3 years ago

Thanks!

jamesdbrock commented 3 years ago

I've completed the transfer of these three packages.

  1. Ran contrib-updater.
  2. Checked the https://github.com/purescript-contrib/governance/blob/main/library-guidelines.md
  3. Upgraded to purs 0.14
  4. Split out the testing dependencies into a separate Spago file.
  5. Transferred in the registry.
  6. Added to package-sets.
  7. Published a new version on Pursuit.

I'm closing this issue .If there are any problems with what I've done, then let's discuss those on issues in each package's repo. Thanks again everyone!

JordanMartinez commented 3 years ago

Thanks for all your work @jamesdbrock!