Raynes / fs

File system utilities for Clojure.
453 stars 119 forks source link

New Maintainer Needed #106

Closed mikelococo closed 7 years ago

mikelococo commented 7 years ago

@Raynes passed away in December of 2016. Like many on GitHub, I didn't know him personally but his contributions to the Clojure community seemed to be endless and our world is poorer for his absence. His passing also leaves an immediate and practical gap due to his generous maintainership of many widely-used libraries. These libraries are in need to new maintainers.

  1. I'm not aware of a centralized effort to coordinate assignment of new maintainers for his projects. If you become aware of such an effort, please link it here.
  2. I don't believe this project has any "collaborators" currently (I might be mistaken), but @Raynes does have collaborators on other projects that might be able to work with Github on an account transfer.
  3. Repository Transfer: I'm not yet able to find any information from Github about whether there is a process for transferring a repository without the owner's consent (I could understand if there is no way, but it would be better for the community to retain url-continuity). Here's the general page on repo-transfers, but it doesn't mention absent-owners: https://help.github.com/articles/about-repository-transfers/ Comments below have information about family/collaborator account transfers.
  4. Clojars Transfer: I'm not super familiar with the clojars deployment process or if there's a process for transferring the package. Are the jars signed? If so it's likely that the key is lost forever.
mikelococo commented 7 years ago

Looks like the jar is unsigned, so a lost signing key is not a concern:

$ jarsigner -verify fs-1.4.6.jar                                                                                                                                                                          
jar is unsigned.
mikelococo commented 7 years ago

Filed https://github.com/clojars/clojars-web/issues/618 to see if there's a process for transferring ownership in clojars.org.

mikelococo commented 7 years ago

Pinged https://github.com/contact about repo-transfer with an unresponsive owner. It's a one-on-one communication medium, and I'll post updates here when I get them.

danielcompton commented 7 years ago

There is a discussion about this here: https://groups.google.com/forum/m/#!search/Anthony$20grimes/clojure/15x_LWE2IMM

mikelococo commented 7 years ago

For some reason @danielcompton's link above appears to be broken for me. I'm guessing it points to this thread about tentacles, which is leaning toward a consensus fork: https://groups.google.com/forum/#!search/anthony$20grimes/clojure/15x_LWE2IMM/CGULJTXLBQAJ

mikelococo commented 7 years ago

Heard back from github. TLDR is that a family member or collaborator can request to take over his account. There is no process to transfer individual repos without owner consent (which is a pretty reasonable security precaution, IMO):

Thanks for your question! We don't have any processes in place to transfer repositories away from an owner without their consent.

We do have a process for family and/or collaborators to gain access to a deceased user's account; if we were contacted by a member of Raynes' family or a business associate, we'd be happy to help them out.

In the meantime, your best bet would be to send Support a request to detach your fork from Raynes' repo in order to start a new network. I understand this may be a less than ideal solution, but I hope you understand our desire to maintain account security in these situations.

I don't know any of @Raynes family, and I'm hesistant to attempt to contact them with this kind of thing if it can be avoided. Raynes is a member of the following organizations:

# curl https://api.github.com/users/raynes/orgs
[
  {
    "login": "flatland",
    "id": 841107,
    "url": "https://api.github.com/orgs/flatland",
    "repos_url": "https://api.github.com/orgs/flatland/repos",
    "events_url": "https://api.github.com/orgs/flatland/events",
    "hooks_url": "https://api.github.com/orgs/flatland/hooks",
    "issues_url": "https://api.github.com/orgs/flatland/issues",
    "members_url": "https://api.github.com/orgs/flatland/members{/member}",
    "public_members_url": "https://api.github.com/orgs/flatland/public_members{/member}",
    "avatar_url": "https://avatars.githubusercontent.com/u/841107?v=3",
    "description": null
  },
  {
    "login": "eval-so",
    "id": 1499236,
    "url": "https://api.github.com/orgs/eval-so",
    "repos_url": "https://api.github.com/orgs/eval-so/repos",
    "events_url": "https://api.github.com/orgs/eval-so/events",
    "hooks_url": "https://api.github.com/orgs/eval-so/hooks",
    "issues_url": "https://api.github.com/orgs/eval-so/issues",
    "members_url": "https://api.github.com/orgs/eval-so/members{/member}",
    "public_members_url": "https://api.github.com/orgs/eval-so/public_members{/member}",
    "avatar_url": "https://avatars.githubusercontent.com/u/1499236?v=3",
    "description": null
  },
  {
    "login": "noir-clojure",
    "id": 1885116,
    "url": "https://api.github.com/orgs/noir-clojure",
    "repos_url": "https://api.github.com/orgs/noir-clojure/repos",
    "events_url": "https://api.github.com/orgs/noir-clojure/events",
    "hooks_url": "https://api.github.com/orgs/noir-clojure/hooks",
    "issues_url": "https://api.github.com/orgs/noir-clojure/issues",
    "members_url": "https://api.github.com/orgs/noir-clojure/members{/member}",
    "public_members_url": "https://api.github.com/orgs/noir-clojure/public_members{/member}",
    "avatar_url": "https://avatars.githubusercontent.com/u/1885116?v=3",
    "description": null
  }
]

If I parse the github response correctly means that anyone in them can petition to take over @Raynes account entirely. From there that person could could post "maintainer needed" notes in the readmes and coordinate repository transfer once maintainers are found.

No response from clojars yet, so this would only be half the battle of maintaining url-continuity.

mikelococo commented 7 years ago
  1. @yogthos @ibdknox You are collaborators with @Raynes in https://github.com/noir-clojure.
  2. @relrod @devth @duckinator You are collaborators with @Raynes in https://github.com/eval-so
  3. @amalloy @lancepantz @ninjudd You are collaborators with @Raynes in https://github.com/flatland

I believe github has a process by which someone who is a "collaborator" of a deceased account-holder (aka any of you) can take over the dormant account in order to facilitate repository transfer to new maintainers. Details are in the scroll of this issue. Obviously doing so would be a considerable amount of work, but also a considerable service to the Clojure community. @Raynes was so prolific and his work so widely used that nominating "preferred forks" for each of his projects seems likely to be quite disruptive.

mikelococo commented 7 years ago

@bostonaholic cc since you raised this on the clojure list as well. I'm not subscribed and can't post but wanted you to know I've been investigating to see if there's a less disruptive option than preferred-forks.

yogthos commented 7 years ago

I can take over the maintenance for the project. I agree that it would be better to maintain the existing repos as opposed to making forks for each project.

duckinator commented 7 years ago

I know basically nothing about Clojure, have too many things on my plate as it is, and (regretfully) had not talked to @Raynes in years, so I'd be a bad fit for taking over any of his projects. I wish you luck with finding a way to sort this all out without too much disruption.

Also, https://github.com/eval-so is @relrod's project, not @Raynes'.

tebeka commented 7 years ago

I'm the original author of fs and seems to be in the fs group on clojars. It's been a while since I've done any Clojure work. If there's someone from the community who's willing to take ownership I'll gladly transfer.

mikelococo commented 7 years ago

Account Transfer

@yogthos While I filed this issue in the fs project, it does appear to be an all-or-nothing proposition. Github's process will transfer @Raynes account to you... along with all his repositories. At which point you could decide what if anything you're willing to maintain and what needs a "no more releases until a new maintainer takes over" message in the readme. Github does not appear to have a mechanism to give you access to this repository only (unless you already have commit/merge access to it somehow, but that doesn't look to be the case to me). If you're still willing to do so, you should contact github support via https://github.com/contact, tell them that @Raynes has passed away, that you're a collaborator of his in the noir-clojure org, and that you want to take over his account in order to arrange an orderly transfer of his repos.

@duckinator This might be a pedantic correction, and I apologize if it is. But for the sake of clarity, I wasn't trying to say that noir-clojure, eval-so, or flatland need new maintainers. I was saying that the people in those organizations might be allowed to take over @Raynes account according to github's rules.

Clojars Status

It seems like many of @Raynes clojars projects have additional maintainers. These maintainers can be found by:

  1. Going to the project page, ie https://clojars.org/fs
  2. Look for the groupId in the maven stanza.
  3. Visiting the group page, ie https://clojars.org/groups/fs
  4. Looking at the "members" list and just googling around until you figure out some way to contact them.

As new maintainers are found, most clojars projects can/should be transferred this way. For projects with no secondary maintainer, we'll have to wait and see what happens in https://github.com/clojars/clojars-web/issues/618. This seems to be a minority of projects, though.

Helping Out

Nothing else can happen until someone attempts the account transfer with github, but assuming that succeeds...

1.I'm happy to be a helper for the account-transfer person. Prepping readme PR's and doing whatever else I can to reduce the amount of work involved transferring repos to new maintainers.

  1. I'm even happy to take over the account from whoever does the account trasfer. Obviously that implies a lot of trust in me, and I'm not active enough in the clojure community to have earned that trust. But if no one else is willing to do the work, and some collaborator does trust me that much, I'm willing to do it. I would not maintain repos, but would only put up maintainer needed notices and transfer repos to volunteers.
  2. I'm willing to take over maintainership for fs. I use it at $work, and being a collection of simple functions it doesn't need a super expert maintainer. I'm also happy to defer to more experienced maintainers... but there's a lot of libs to go around and this is one I can manage if others want to focus on more challenging code.
yogthos commented 7 years ago

@mikelococo Unfortunately, I can't commit to taking over the whole account. There are a lot of repositories that I have no understanding of, and I don't have the cycles to go about finding maintainers for them.

mikelococo commented 7 years ago

@yogthos In order to transfer any of the github repos to new maintainers, someone with collaborator-status (one of the 8 people mentioned higher up in the thread) must take over all of them, at least temporarily. That person doesn't necessarily have to know anything about the repos, nor actively seek new maintainers. My proposal is simply to post readme updates saying "no more releases or merges until a maintainer steps forward" (something I'm willing to prep the PR's for). Alternatively, I'd be willing to take over the account entirely from you once you complete the github process (again to post notice and transfer individual repos to any maintainers that volunteer, not to maintain or actively seek maintainers). If there's any other work I can offload for you to make you consider the transfer, let me know. Even in the best case, though, it's a bunch of hassle for whoever attempts the account transfer and I can understand if you don't have cycles to deal with it.

I'll leave this ticket open in the hopes that one of the 8 individuals with collaborator status is willing to attempt the account transfer. If that doesn't pan out, someone can fork this repo and contact @tebeka to request to be added to the 'fs' project in clojars and update the github page there to point to the new fork. I may do that at some point if I lose hope of saving the rest of the repos, and if I do I'll post a link to the new repo in this ticket as well.

yogthos commented 7 years ago

I could take ownership of the account, and then transfer the repositories over to new maintainers as they contact me. I just wouldn't have the time to actually do anything with them in the meantime. I'll send the email to GitHub regarding the transfer then.

tebeka commented 7 years ago

I've added @niwinz to the clojars group and he'll be the maintainer. Is there a way to copy over all the issues to the new repository?

niwinz commented 7 years ago

@tebeka I think that the best approach would be wait to the github answer about transfer, before doing anything.

yogthos commented 7 years ago

I got a response from GitHub:

Our current process for gaining access to a deceased user's account is contingent upon contact from a member of the deceased user's family or a business associate. A conversation or agreement amongst collaborators is not sufficient for us to grant such access.

At this time, your best bet would be to fork the repository you are collaborating on and send Support a request to detach your fork from the repo in order to start a new network. I understand this may be a less than ideal solution, but I hope you understand our desire to maintain account security in these situations.

It looks like it won't be possible to transfer the account to one of the collaborators. Since that isn't an option, forking the repositories and adding new maintainers to Clojars would be the way to go I think.

niwinz commented 7 years ago

thanks @yogthos

In that case I'll make a hard fork (creating a new repo instead of using "fork" button") forks on github has less visibility.

As you are a collaborator would be possible to close all issues on the original repo and put some notice on the README.md pointing to the new repo?

yogthos commented 7 years ago

Yup, I could do that. Just ping me once you have the new repo up. You'll also need to get added to Clojars in order to push out the releases.

tebeka commented 7 years ago

I've already added @niwinz to fs project on clojars.

mikelococo commented 7 years ago

Thanks for trying @yogthos. The original github response used the term "collaborators", which is the same term used for folks in an organization together. I thought they used that term intentionally to communicate that org-collaborators could perform the account transfer. Apparently they were using it in a stricter sense to mean something like "working for the same company".

@niwinz Thanks for taking on maintainership. I'll be looking out for the new repo-link. I'll close this issue now since it seems like we have a plan that covers both github and clojars.

niwinz commented 7 years ago

I'm trying to push a new release, and I found that I don't have permission on me.raynes group. I can use the funcool group in any case but I remember that you have said that you have given me the access to the group.

That is the plan for that? I use my own group or you prefer to use the me.raynes group?

niwinz commented 7 years ago

The link to the repo: https://github.com/funcool/fs, can you please put a note on the readme of this project pointing to the new repository.

yogthos commented 7 years ago

@niwinz probably the easiest way would be to shoot an email to Clojars guys. They could add you to the group.

tebeka commented 7 years ago

@yogthos : @niwinz is already in clojars fs group. IMO he want people coming to this github repo to know it moved.

yogthos commented 7 years ago

Ah gotcha, unfortunately I don't have write permissions to the fs repo on GitHub to update the readme.

niwinz commented 7 years ago

@tebeka hmm, as far as I can see, the group is not fs the group is me.raynes.

Here the extract from project.clj:

(defproject me.raynes/fs "1.4.6"
  :description "File system utilities for clojure"
  :license {:name "Eclipse Public License - v 1.0"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
tebeka commented 7 years ago

Hmm. There's also https://clojars.org/fs which the last version is 1.3.3. @niwinz Maybe you can get back to it.

scarytom commented 5 years ago

I'm not totally convinced by @niwinz taking over fs. It seems there have been no new releases, and the only updates to the new repo at https://github.com/funcool/fs are to change the README, which now says "Consider to use datoteka as a modern alternative if you are on JDK8 or greater."

But https://github.com/funcool/datoteka/commits/master seems to be another unmaintained repo by @niwinz, and is a lib which has a fraction of the functionality of fs, so doesn't really constitute a replacement.

Key tools like lein-cljsbuild still depend on the outdated https://clojars.org/fs (not even the slightly newer, but still orphaned https://clojars.org/me.raynes/fs).

Is it worth trying to find yet another way to maintain fs? Or is it officially gone, so I should concentrate my efforts on removing it from dependent codebases?

tebeka commented 5 years ago

@scarytom Sorry to hear. I haven't worked with Clojure for a long while now and don't have the bandwidth to take it back. If you know someone who's willing and able to be a maintainer - you can fork and make it mainstream by doing a better job.