preservim / nerdtree

A tree explorer plugin for vim.
Do What The F*ck You Want To Public License
19.52k stars 1.44k forks source link

Consider migrating repository to org namespace #1052

Closed alerque closed 4 years ago

alerque commented 4 years ago

I just opened an issue over on nerdcommenter suggesting that the repository be migrated to an org namespace where some level of maintainer privileges could be shared and community contributions encouraged more readily that in the private namespace of a developer who isn't actively involved any more. I've been the sole maintainer of nerdcommenter for about 3 years now, and looking at this project history it looks like @PhilRunninger you might be in a similar boat.

I wonder how you might feel about this project also migrating to the suggested org at @preservim. These plugins have definitely not reached end-of-life stage and I would like to see them put in an environment where their future is less ambiguous. Having them in an org namespace where it is more clear that active contributors can take some ownership of the projects seems like it will be mutually beneficial.

PhilRunninger commented 4 years ago

I'll defer to @scrooloose for a decision on this one.

scrooloose commented 4 years ago

@alerque and @PhilRunninger as with the NERD Commenter, I have just created an organisation for NERDTree and transferred this repo there.

@PhilRunninger I have invited you to that organisation as an owner. I have been very happy to see you maintain NERDTree and, as with NERD Commenter, I should really have transferred full ownership to you a long time ago. For several years now you have been putting in all the effort in my absence and not getting proper credit. Thank you for keeping the project alive and useful for so many.

I started this project nearly 15 years ago and poured huge chunks of my free time into it for several years. It was a great adventure for me in the early days, and great fun. I'm very glad to see it kept alive by you.

@alerque I see you have created the @presevim org. If you and @PhilRunninger wish to transfer both NERD repos into there, then that is absolutely fine by me - they are under you control now.

alerque commented 4 years ago

Thanks for doing this @scrooloose!

What do you say @PhilRunninger? I'd still be interested in putting both of these (and potentially other plugins in the future) under a shard org space. The idea would be to have each plugin owned and managed by the primary maintainer, plus any other relevant contributors, but have a couple people with owner level access to the org itself so that if something ever happens to a plugin maintainer (awol, bus factor) one of the other org admins could step in and help get a new maintained appointed without needing to fork or track down somebody who may or may not even be alive to appoint successors.

I think this is particularly relevant for widely used plugins that don't see a ton of development any more but should still be maintained over the long haul. Of course the same effect could be done by adding multiple owners to a bunch of separate groups too, but my idea is that it would be easier to keep up if there was a bigger pool of proven maintainers involved.

I've invited you to be a co-owner on @preservim if you are interested in going ahead with this. Either way I'll probably move I have moved nerdcommenter there. If you'd like this plugin to sit next to it, please go for it. If not, that's totally your call now ;-)

PhilRunninger commented 4 years ago

@alerque , Done. NERDTree now belongs to @preservim. It looks like @vim-scripts was set up at one time to do what you intend with @preservim. I hope it has better success this time around. @scrooloose, would we be able to remove the @vim-nerdtree organization now, or would that break the redirection that Github provides?

@scrooloose , thank you for letting me be a part of the legacy that is NERDTree. It's been an adventure for sure. Deciphering old issues, deciding which ones were worthy of consideration, and balancing the new feature requests against the sheer volume of existing code were certainly the biggest challenges, not to mention learning the OO style you've implemented.

I'm excited for the possibilities that this new organization holds, and I hope that it attracts other developers to become involved.

alerque commented 4 years ago

Welcome! I hope it works out well for users and the plugin developer community. I think the issue with @vim-scripts (who I tried to contact without luck) was that they started out by scraping scripts from other sites (primarily vim.org) and re-posting them, but they were not the owner or developer and they weren't being developed or maintained there, just re-posted. My goal here is pretty different.

I was not sure whether removing the intermediate organization would break the redirects either. They work great with it there, but it might be wise not to nuke them for a long while just in case we can't go backwards! It would be a pity to break the redirects because they help people stay up to date even without updating their RC files to point to the new location. For the @vim-nerdcommenter org I just changed the description and added a URL linking to the new home. I also set my membership to private there.

Speaking of which @PhilRunninger it is totally up to you but it would be nice if you listed your membership in this org as public instead of private. Especially as an owner I think it would help outsiders to see who's who and know what they are dealing with if it was more than just me showing up there. Github does not make it easy for non admins to see who has privileges on repositories either, which is unfortunate.

bronson commented 4 years ago

Hi, I originally wrote vim-scripts. Not sure how you tried to contact vim-scripts but I don't see any record of it. Sorry!

You're right, lack of ownership/licensing was the biggest showstopper. The other one is tech debt [1]. Glad to see the Preservim approach should suffer neither.

vim-scripts was useful in its day. Now the popular scripts mostly have their own git repos so it's just needless duplication. One day I'll write a script to push a breaking/erasing change to every script and gently drive vim-scripts usage to zero. (been on my todo list for at least 3 years now...).

Preservim is a great name too.

[1]: The code is in very rough shape. When it was first written (2010?) Nokogiri and libgit2 weren't in usable shape. As a result of using hpricot and gitrb, every generated repo is slightly corrupted. There's no way to fix it short of rewriting the scraper with modern libraries and then having everyone rm -rf their cloned scripts and re-clone

alerque commented 4 years ago

Hey @bronson, nice to meet you. I'm saying this laughing — but if I had a nice big juicy rotten tomato to lob your way I would do that now. I've just realized the plethora of vim plugins scattered around with corrupted commits at their root that I've spent years chasing down and trying to convince repo owners to rebase so git works without disabling fsck calls are MOSTLY YOUR FAULT! ‹hiss splutter mumble grumble› Okay I'll try to be done with that, sorry for the tirade. Git is lovely for many reasons but it's also an amazing tool for accruing tech debt if you don't fix the history early.

That being said, let me know if there is anything I can do to help with plugin cleanup and users transitions. Also if you ran across any really good plugins that need a home lets talk. I don't want @preservim to be a dumping ground for half baked plugins without maintainers, but I know there are others out there that people are still trying to use and would even contribute to, but that don't have good homes with designated maintainers. We could certainly review them on a case by case basis.

I don't remember how I tried contacting you before, but probably pinging vim-scripts and following whatever leads I saw there at the time. I remember thinking it wasn't clear to me who was actually behind it since it was a dedicated account, not an org.

alerque commented 4 years ago

@bronson By the way (and because Github makes these hard to notice unless you see the email) I sent you an honorary invite to join @preservim. By default the 'member' permissions are just 'read' on repositories, but you can create repositories (or more to the point, migrate them here), join teams if we ever organize any, you will show up as an org member adding visibility for one side or the other of the equation, and if in the future you get involved in maintaining anything or helping with issue triage or whatever we can re-evaluate what tools you need.

P.S. This doesn't mean I don't still hate you for all those corrupted commits released into the wild.

bronson commented 4 years ago

Tomato accepted. This is the source of all that pain: https://github.com/minad/gitrb/pull/11

Invite also accepted, thanks! I like the project. I don't anticipate finding any scripts that aren't already on git but I know where to come if I do.

chiefjester commented 4 years ago

Hello, first of all, I thank you @scrooloose and @PhilRunninger and @alerque for maintaining/creating such a fantastic plugin. I'm not sure if this is the right avenue, but I'll just leave my 2 cents here.

I commend @scrooloose for doing the right thing. I was trying to get back to Nerd-Tree because it was the first file drawer I used when I started vim. When I search for it, preservim was an owner, and it's an organization. I did search for the commit history of Nerdtree, and I was surprised that @PhilRunninger had been the major contributor since 2017. I'm glad he's getting proper credits.

I know that the issue is closed, and I'm not sure where I can share my thoughts on this. I commend @alerque for the noble goal and mission of preservim. I do think it's the right step forward in maintaining plugins for our beloved editor. Just wishful thinking, I hope it bears fruit someday. But vim needs a registry. I checkout emacs a couple of years back, and that's the first thing I notice. They have this universal plugin manager, which pulls from a central registry. It's a long journey ahead, and I think vim-plug's git clone --depth=1 is the right direction. Still, ultimately, tagging/versioning and publishing it in a registry should be our goal. Perhaps with Github Registry, the stars are starting to align?

I am looking forward to the success of this organization. Cheers! 🍻

_Edit: my 2 cents on the name, I actually typed preservevim instead of preservim. I somewhat like the name, but it just kind of gives me the feeling that projects are in maintenance mode, or not very active, even though I see the commit-graph that the project is alive/active. Perhaps a name like vimplugins, would be more straightforward?_

alerque commented 4 years ago

Hey @thisguychris and thanks for the thoughts. I do hope this or experiment works out to the benefit of both plugin users and maintainers.

Even though I came up with it and I still like it, I agree the name has some down sides. Being a made up spelling makes it hard to search for (mitigated by I don't expect anybody to search for anything except the plugins directly), and it also does conjure up a little bit of the sense of an archive or dumping ground — and what I what I am aiming for here is definitely not just a place to stash old stuff. I expect to only invite projects that are being actively maintained and are usable on modern systems, even if they were started in decades past and the original authors stopped maintaining them. Since the goal wasn't and isn't to create a massive umbrella registry where people come to shop for plugins, having a more generic name didn't seem like enough of an advantage.

There have been several attempts at plugin registries over time (see for example https://vimawesome.com or even the origin https://www.vim.org/scripts/ and the subsequent attempt to bring them all over to Github at @vim-scripts). Unfortunately @vim-awesome is ... not so awesome these days. It's woefully out of date, has more duplicates than originals, houses hundreds of entries for things that are not even vim plugins, etc. (If any of the owner/maintainers of that project read this, see my proposal to help clean it up!)

The fragmentation of plugin managers also contributes to this being a difficult problem to solve ... not to mention VIM vs. Neovim differences and some plugins only supporting one or the other.

chiefjester commented 4 years ago

The fragmentation of plugin managers also contributes to this being a difficult problem to solve ... not to mention VIM vs. Neovim differences and some plugins only supporting one or the other.

I agree fragmentation is indeed worrisome. Vimawesome is also in the right direction. It's a community project only powered by the community if no one helps, then it becomes stale. One solution would be achieving a level of success of a community project where it more or less becomes the defacto choice.

Unfortunately @vim-awesome is ... not so awesome these days. It's woefully out of date, has more duplicates than originals, houses hundreds of entries for things that are not even vim plugins, etc. (If any of the owner/maintainers of that project read this, see my proposal to help clean it up!)

A couple of ideas I'm thinking of helping it cleaning up is set up a filter/toggle of activity on the repo. So active/maintained repositories get more spotlight. Another idea is to auto-remove abandoned projects, no movement in the past two years, for example.

VIM vs. Neovim differences and some plugins only supporting one or the other. There has to be some sort of tag that tells if it works with Neovim and/or Vim.

Anyway, this is just ideas I'm throwing, for now, I'm glad these two plugins have a new place, Congratulations everyone 🍻