-
-
Notifications
You must be signed in to change notification settings - Fork 58
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
Community plugin contributions & versioning #87
Comments
For more general plugins, . F.e. my websearch plugin or the hyprlandwindows one, having them in the main repository seems fine to me. Regarding maintenance: i think you could just handle this differently. F.e. i honestly don't come looking at the issues here, unless i have an issue or suggestion. What you could do is:
Just today i noticed someone is having an issue with the websearch plugin. At the same time i also noticed you've changed it. Which is of course fine. So what would have been the process here, if it wasn't in the main repo? You forking my plugin from my repo, making a PR? The issues itself would hopefully have gotten reported to the source-repo of the plugin. How would such plugins be distributed properly without being cumbersome to discover and install etc? Also: i think it's much safer to have plugins in here instead of wherever. If a plugin gets abandoned for whatever reason, that could become a pita. You end up getting forks of forks of forks. I'm not sure if i'd go down that path. |
Another option for the plugins would be a repo like As for the distribution of plugins, with this the |
Yes, i thought about that option as well. Might eventually be the most sensible one. Also: if there's consensus plugins could move from |
Just seeing this pinned issue. The Home Assistant project uses manifest.json files for the integrations, where also the code owner/maintainer is included. AFAIK they managed to integrate it into Github issues that the maintainer is automatically added to an issue and mentioned when a issue to that integration is opened. Also longterm I would recommend to ensure that the included plugins have some maintainer (intentionally the creator, but can also be you if you are willing to be the maintainer) who is "responsible" for keeping that particular plugin working. If the maintainer leaves the plugin abonded and no new mainainer is found when problems occur then remove the plugin. Theres no point of a having a broken plugin in the repo if it cant be maintained (and the burden of maintanance of external contributed plugins shouldnt fall automatically on you if you cant or dont want to maintain it by yourself). Otherwise I would prefer to have the plugin in this repo, maybe creating some guidelines that updates due to issues etc. are done through PR of branches which gets created and used for issues until they are resolved. All of this is of course my point of new, I'm still on a junior level when it comes to programming and OSS and Rust isnt my domain |
I'm heavily leaning towards putting the plugins into a seperate repo (all of them). The overall process for us would look like this:
If a plugin lost it's maintainers or is broken/insecure it's entry could easily be removed from the main repo. The plugin would then need to maintain itself. Installing plugins from nix would still be trivial, if they're flakes themselves. I'm willing to setup an example project, if there's interest for it. PS: At least for me it would make the workflow and iteration on plugins really easy. Furthermore I think it's a good way to satify seperation-of-concerns, since this will also make it easy to go the other way around and replace the core anyrun with let's say an anyrun-tui. Sidenote: |
@NachtaktiverHalbaffe I don't think an automated system with manifest files like that would really be that feasible, due to being quite complex and out of the scope of this project. But in general who maintains the different plugins should ideally be made pretty clear. As for placing everything in separate repositories like @Sntx626 suggested, it would make dealing with who maintains what and versioning much easier but installing stuff may be more complicated and the project would be more fragmented. For the "official" plugins made by me, I could create an organization to group all of the repos in the same place on GitHub, and then of course link all the other plugins in the main repo readme. It would be a bit of a chore to convert to that form, but it would probably be sustainable given that we also figure out how to do packaging properly. If you feel like making an example project template that would contain all the relevant info (about maintainer, version support, etc.), I'd like to see it. |
I'll cook up an example. |
I've put together this example github organisation. Please keep in mind that this is rather proof-of-concept and nothing final. If you like it that way we can talk about how we'll realise it for the real anyrun. Feel free to ask questions if things aren't clear. |
The descriptions of the "core repositories" in the org README are not exactly correct, but otherwise that structure does look pretty nice to me. How does everyone else feel about that template? Aside from deciding on the final structure, contribution guidelines (issue templates, how to add plugins to the plugin list, etc.) should also be created to make this all a lot more manageable. |
Yes, the readme looks better, than it is accurate. It's written by our favorite artificial intern, since I didn't want to invest too much time on secondary details and focus on the structure / getting it to work. Though I should mention that one of the bigger changes I made was in terms of dependencies. How should we proceed?
|
This looks super fine to me, nothing to add really.
I think core plugins should be supported, simply to have a solid OOTB experience. But what could be considered a core-plugin and what not? How to decide? Maybe adoption could be a factor. As in: if 99% of the user-base uses a certain plugin, it should prob. be considered a core-plugin. But this required gathering data somehow... |
I would rather preserve the
I think that makes the most sense, this repo can be transferred to that org in that case and the required modifications could be made. I could create a clone of this repo under my account that can be archived.
That is a solid idea to keep track of things, I am notoriously bad with forgetting about things I need to do so having all the stuff that needs doing in one place seems like a good idea.
For the guidelines I was thinking about issue/PR/plugin templates and general guidance as to how to do things like where issues should be reported, how to submit a plugin into the project (to be added in a list of plugins).
I prefer to have my code licensed with GPLv3, but I really am not that experienced with licenses and how to deal with them so I don't have that much to say about it. If the plugins in the org are the "core" plugins, which would likely mean that the majority are maintained by me it would make sense to just have all of them under the same license.
Gathering user data isn't really going to be a feasible option so I'd say we just promote all the plugins that are currently in the main repo to core plugins (except maybe for Also with the separation of the crates, versioning should be established (everything can start at |
Ok, in that case I'll revert
Just to avoid misunderstanding: You want to keep the current organization and modify it?
We can create a project for that in the org.
This sounds great and reminds me of the way nixpkgs handles it (though they've mastered it).
Sounds good.
For simplicity's sake I also say that we should stick with just deciding it for the current plugins.
We should defintely reference to semver.org, the versions would then be tracked through the Pushing the main repo and anyrun modules to crates.io/lib.rs would also result in the plugins |
For the naming, I think
I meant that I'll create the org when the plans have been solidified.
And yes I agree that following semver is a good idea in general, and pointing the repos to published versions of packages reduces the amounts of headaches that git packages introduce when it comes to the Nix flakes. |
Alright I have now created the organization under the name |
I'd like to contribute, feel free to invite me. |
Sure, you can create the plugin repositories and I'll create the repositories for the internal crates. |
I already packaged all the relevant crates ( |
I've transistioned the plugins over to What do you think should be worked on next? What could I help you with? |
If you want to you can start drafting up the issue template and general contributor info. I'll start working with the main repo with the transition branch as soon as I have time to do so. |
Another thing to think about: |
I would still have it be named as Anyrun, as it is well, Anyrun. It is the main program after all and it would be much clearer for end users as it will also have the general instructions on how to use Anyrun. |
Hello, I was wondering if you were still planning to move I really like the idea of having a |
Well, the plan was indeed to move the main project to that org, but real life got in the way and in general I haven't found the motivation to fully go through with the migration. There are a bunch of things that still need to be done, like AUR packages, contribution guidelines, guidelines in general and now due to the repos getting out of sync getting them back into sync. So if you want to help with some of these, and other things in the org project for the migration, it'd be a real help in actually getting the migration done some day. I can't guarantee properly keeping up with things due to life being pretty busy right now, but I'll try my best. |
Nice, I'll try to check for the following things:
Update: I've created aur packages for the various plugins, but they're not published yet, since I'd need an I'll also gather all the aur packages code into a Once it's gonna be done, I'll also create Here's my PR to add dependabot config |
Hi, |
Hi, I have some PRs open that are specific to the applications plugin, so @ me when the migration is done so I can transfer these to the new repo. Thanks! |
@Kirottu can you give a general outline on your vision of how the project should look and be managed? Do you want us to just create issues in the anyrun-org repo for the current tasks on the project board and figure out what we want? Or do you want to steer the transition yourself? Do you want to offload the authority of managing the switch to someone else?
The current state of the contribution guidelines can be found here, AUR packages are thanks to @just1602 in the works. I think with "guidelines in general", the following questions should be answered:
|
Would it be possible to release a version of After that, I could create |
The plan was to divide the project into separate repositories that can be individually versioned and packaged properly instead of just bundling everything in a single package. With this, different maintainers for different parts of the project would be possible.
I think a simple guide for the technical part, as there is already, should be in the appropriate repository/crate.
I think we should have a list of plugins with the official plugins and community plugins, and entries for the community plugins could be submitted via PRs with a template in place. That template should contain all the relevant parts like a link to the repository, name, description of functionality, etc. If you all have ideas/opinions regarding this feel free to voice them
That could be added to either repository descriptions or READMEs.
I think the licenses of the projects under the main org should ideally be the same.
I don't quite know where you are going with this, but using plugins should be in ordinary user instructions and plugin specific instructions should be in their respective READMEs. Right now with the AUR packages being ready to publish (I presume @just1602 created them to use the repositories in the org), I think after updating the code in the repositories of the org to reflect the changes that have happened since, the main repository could be transferred over with minimal effort. After the transfer I would create a clone of the repository with a disclaimer of the project having been moved to the new org and release the initial version of Anyrun allowing the AUR packages to be published. At this point I think we should just go for it instead of waiting around as well clearly that hasn't worked for me personally at least. And as always I'd like to hear how you all feel about this and how we should go forward. |
I've opened PRs anyrun-org/plugin-stdin#1, anyrun-org/plugin-applications#1, and anyrun-org/plugin-dictionary#1 to sync them with this repo. |
@Kirottu Letting you know that the randr plugin is missing a repo under anyrun-org. |
@Kirottu personally, I'm not even sure I'd make a distinction between officials and community plugins. I think I'd simply put every plugin in a separate repo and package maintainer would be able to mark the plugin's packages as suggested, but if someone want to run Maybe I'm wrong, but I'd try to keep |
Yes, that was by choice as I don't really think that it would fit the requirements for an official plugin (as in, actually being functional for most of the users and being properly maintained. The Randr plugin right now is really not that great).
The distinction I am thinking of is that official plugins are placed inside the organization, are maintained by developers actively involved in Anyrun in general and are maintained alongside the main project (but in their own repos of course). The community plugins would be outside the organization and in general a lot more free form in how or if their respective maintainers decide to maintain them. |
@Kirottu that sounds great to me! |
Hello everyone and sorry for the prolonged absence, I had a lot going on but have now finally gotten around to actually working on the migration. The |
I'll update the package myself in a couple hours :) (not at my computer right now) If you really want to take the ownership of the package, I would give it to you of course, but I'd rather take the small burden off of your shoulders as a maintainer :) |
Alright well that works for me, the changes that need to be done are:
I've already published AUR packages for the individual plugins, although some work needs to be done to bring all of them up to date to what the repository currently contains code wise. |
@Kirottu I just saw that you create all the plugins package on aur, I was wondering if we could create a repo on A nice tricks to have all packages in one repo is to use |
#198 moved all the plugins out (eg: anyrun-dedup/plugin-applications has the latest code from anyrun-org/anyrun). If #198 looks good, I can submit other PRS from https://github.com/orgs/anyrun-dedup/repositories. |
So there are a few things that should be addressed as Anyrun becomes more popular and more users & developers flock in.
The first of them is community contributed plugins. Adding them into the main repository in the long term is probably not feasible, some of them may be specialized and not really something the average user may need. They are also a maintenance burden where generally the maintenance of the plugins falls on me to handle after they've been merged, even if I am not that experienced with the codebase of the plugin.
The second issue is versioning. The approach of just making everyone use the latest code at all times (like
anyrun-git
on the AUR) has worked fine-ish for now but with more complexity and moving pieces, the risks of something breaking down accidentally is much higher and could affect well, everyone who keeps their system up to date. There are a few ways to go about this:I would really appreciate any feedback and suggestions on this matter, so any ideas you may have are welcome in this discussion.
The text was updated successfully, but these errors were encountered: