Shen-Language / wiki

71 stars 1 forks source link

"blessed" port repositories #1

Open michaelsbradleyjr opened 9 years ago

michaelsbradleyjr commented 9 years ago

Would there be any sense in have the Shen Language GitHub organization host repositories, or forks of repositories, of "blessed" Shen ports?

GitHub allows the creation of teams for an organization, and you can specify which teams have which rights to an org's repositories. I would be willing, for example, to maintain a Shen org fork of my (fork of) the shen.clj repository.

tizoc commented 9 years ago

Other than visibility, can you think of any other advantage?

I would rather not have to maintain a mirror (or have to worry about people creating issues on the wrong repository, etc). Also, I guess not all port maintainers may use GitHub and keeping a mirror will be extra work.

We should update the list of ports here though, right now those links point to nowhere: https://github.com/Shen-Language/wiki/wiki

tizoc commented 9 years ago

I just updated the list (adding the missing languages and links to each one of the ports except the common lisp ones because those don't have a repository)

michaelsbradleyjr commented 9 years ago

One advantage would be that the top-level Shen Language org page on GitHub would provide a highly visible "at a glance" view of the Shen ecosystem.

You would not personally have to maintain any forks/mirrors – that's what teams are for (a free feature of GitHub orgs). One team per port would be reasonable, I think. If a team (i.e. its one or more members) were remiss in maintaining its assigned repo, then the repo could simply be deleted from the org, and/or you could ask if someone on the mailing list is willing to step up. Since it is unlikely that original repos would be hosted under the org – rather, forks/mirrors of other repos – deletes of stale and problematic repos would rarely turn into a dilemma.

Not all port maintainers use GitHub, that's true, but I don't think it has to be an "all or nothing" situation. Also, you may find that someone who is interested in a "non-GitHub" port is willing to maintain a mirror on his/her account, which in turn could be the basis for a fork listed under the Shen org.

I don't think it would turn into too much of a headache. That is, you wouldn't need to remind yourself to check on anything weekly or daily. For example: take action on a stale or problematic port if/when someone contacts the mailing list or wiki with a concern or complaint. If you came to some level of trust with another member of the Shen community, it would be possible to make him a full admin and then he could help you share the responsibilities of the org as a whole.

One additional thought on Shen org forks/mirrors of ports: perhaps one should only be created if the original has earned certification, per Dr. Tarver's recent post on the mailing list.

gregspurrier commented 9 years ago

I can imagine some benefits of maintaining a mirror of a non-git project (as opposed to non-GitHub). However, I don't see any advantage to maintaining a fork of a GitHub-hosted port just to get it under the Shen-Language organization.

IMHO, doing so would just lead to confusion. For example, if someone has a bug report for ShenRuby, I want to make sure it goes to the official repository that I maintain, not a mirror, so that I can act on it quickly.

tizoc commented 9 years ago

@michaelsbradleyjr yes, I understand that, but it still means that someone (most likely the port maintainer) has to do a bit of extra work. For that to work well either everyone has to be on board and do their part or someone has to decide to take the burden and do the work some maintainers are unwilling to do.

Unless every port is there, and its mirror maintained accordingly, then some ports become kinda second class, only because the author is not interested on spending that extra effort or is unwilling to use GitHub (for whatever reason, some people don't like GitHub because they disagree with their policies)

It is no that I don't like the idea of having all ports listed on that page (on the contrary, it would be cool to have), it is just requires some effort and long-term commitment (by at least one person, and I think it is more work than it seems at first) to keep those mirrors updated and healthy (taking care about issues reported there, patches that people may send to the wrong repo, etc), and thats extra stuff to care about.

michaelsbradleyjr commented 9 years ago

@gregspurrier GitHub issues (e.g. bug reports) can be easily disabled on a per repo basis (settings page), which is a signal to report issues upstream. For proper forks and mirrors, GitHub conspicuously provides a link to the upstream repo right under the name of the fork or mirror.

That won't prevent pull requests from landing downstream, but they are likely to be made infrequently enough that asking a contributor to instead make the request upstream shouldn't be a big deal.

@tizoc I agree that it would be at least a little more work for the port maintainers, but to my mind the benefits to the Shen Language community could make the endeavor/s worthwhile (I don't know that for certain, of course). GitHub is not perfect, but it does seem to the best thing going for free, high-visibility, communal collaboration on open source projects.

Maybe we could give it a shot and see how it goes? If it's a flop, then the wiki will suffice.