Skip to content
This repository was archived by the owner on Oct 15, 2025. It is now read-only.
This repository was archived by the owner on Oct 15, 2025. It is now read-only.

Submodule transition #226

Description

@ManuelSchneid3r

I changed the structure of the repo. Plugins are now submodules. I am still thinking about the most reasonable way to integrate outside collaborations.

  1. I need write access to script any api changes.
  2. We need reviewing.

We have two options.

  1. Transfer the repository into the Albertlauncher org and you fork it
  2. You could also keep the repo an give me write access.

There are two points were we could have the reviewing.

  1. The commit of the submodule hash.
  2. The commit of the changes into the upstream repo. And everything that makes it into the upstream repo will be accepted as shippable. Meaning no reviewing in step 1.

I'd prefer the latter because Github offers a nice UI for reviews and code comments and we have all officially shipped plugins in one place.

If you don't have any objections please transfer the repo to albertlauncher organization.

Let me know what you think.

Activity

  1. changed the title [-]Submodule trabsition[/-] [+]Submodule transition[/+] on Jul 29, 2025
  2. LorenzoMorelli commented on Jul 29, 2025

    @LorenzoMorelli

    hi, just updated the repo, renamed and transferred to you (on albertlauncher org I didnt have the access rights to create public repo). Let me know if everything went well, I did miss something or I should try again transferring to albertlauncher org instread. It is the first time I transfer a repo in github :)

  3. HarshNarayanJha commented on Jul 29, 2025

    @HarshNarayanJha

    Hi! I am not against the repo transfer. It will help keep all shipped plugins in one place. But instead of me keeping a fork, can I have collaborator access to my repo(s)? Actually, I would like to somehow keep my ownership on the plugins I make. I am not familiar with how repo transfers work on GitHub 😅, (and also not with open source licenses).

  4. ManuelSchneid3r commented on Jul 29, 2025

    @ManuelSchneid3r
    MemberAuthor

    Ownership is difficult to define in open source licensed code. What exactly do you mean?

    The one thing I want to make sure is that repos in the source tree are not able to vanish suddenly and that no code shall pass without review.

  5. LorenzoMorelli commented on Jul 29, 2025

    @LorenzoMorelli

    Maybe @HarshNarayanJha means just he would like to be be seen as maintainer of his plugin and contributor of this organisation in order to keep the plugin up to date and continue contributing. I specify, I'm not familiar with this too, so I actually don't know if this is exactly what you (@ManuelSchneid3r ) are trying to do

  6. ManuelSchneid3r commented on Jul 29, 2025

    @ManuelSchneid3r
    MemberAuthor

    Oh hell please yes. Long term plan is to have packages with pyproject.tomls and dedicated maintainers. I am exhausted to say the least. I am not keen on maintaining code that I did not even write.

  7. HarshNarayanJha commented on Jul 30, 2025

    @HarshNarayanJha

    Exactly @LorenzoMorelli, thanks! Then I will transfer the repo over to this org!

  8. HarshNarayanJha commented on Jul 30, 2025

    @HarshNarayanJha

    @ManuelSchneid3r I don't have create repo perm on alberlauncher org, so I will transfer over to you.

  9. ManuelSchneid3r commented on Jul 31, 2025

    @ManuelSchneid3r
    MemberAuthor

    @tomsquest this discussion may be interesting for you.

    Yesterday I realized that if we allow direct repository access to outside contributors pushes could easily be abused to run unreviewed potentially malicious code on Albert developers machines. (Alice pushes malicious code on upstream repo. Dev updates all submodules including harmful code and runs Albert) For this reason I'd like to have the reviewing before the code gets into upstream repos. As such we have to use forks and pull requests.

    I see that you may not like this flow @HarshNarayanJha but it is necessary for security reasons. Not to be offensive but you are all random internet strangers and I (we) can't just trust each other. The only security mechanism we have is peer reviewing. I hope you can understand this decision @HarshNarayanJha but remember that you benefit as well. You are still the owner of the code according to the copyright laws. We just need to have a single protected upstream where we merge only peer reviewed code.

    If you don't like this structure let me know if I should transfer the repo back to you. Otherwise please work on a fork and send pull requests for peer reviewed upstream changes.

  10. ManuelSchneid3r commented on Jul 31, 2025

    @ManuelSchneid3r
    MemberAuthor

    Ofc I am open to other code flow designs I am currently not aware of.

  11. HarshNarayanJha commented on Jul 31, 2025

    @HarshNarayanJha

    I completely understand the security perspective! At first, I thought it would be ok for core plugin devs to push changes, but now I see it could be harmful (remember the xz-utils attack?). Thanks!

    I have no problem at all with this flow (I was just a little bit confused about how repo transfers worked).

    Sure thing, I will work on a fork and send PRs.

  12. HarshNarayanJha commented on Jul 31, 2025

    @HarshNarayanJha

    On a secondary note @ManuelSchneid3r, I would ask you to look into how Zed manages extensions on their official extension registry. https://github.com/zed-industries/extensions/

    As far as my understanding goes, it seems like they maintain commit pinned submodules in their extensions repo and devs update the submodules via PRs.
    But this would go completely opposite of what you have done so far (separating plugins into repos) 😅.

    I am good with me having a fork and doing PRs. I hope others are too!

  13. ManuelSchneid3r commented on Jul 31, 2025

    @ManuelSchneid3r
    MemberAuthor

    Actually it is more or less the same but upstream is an outside repo.

    The reason I think it is better to have upstream in a dedicated repo is that

    1. Checked out source tree does not contain unreviewed code if you perform a pull in one of the submodules (which I usually do if I start to work on a plugin) and
    2. Github reviews using the web UI is quite convenient if you work on the actual code instead of a commit hash. (but maybe I am not aware of a github feature that supports commenting/reviewing the commit that the submodule hash commit actually points to)
    3. Generelly it's easier to grasp imho if we can simply assume that the org repo is safe and what is actually distributed
    4. Git status on an updated (pulled main branches) is clean and does not show up dirty dirs due to ongoing development. (mental load reduced for releases)
  14. ManuelSchneid3r commented on Aug 7, 2025

    @ManuelSchneid3r
    MemberAuthor

    Going to archive this repo.

    For any other plugins please see https://albertlauncher.github.io/gettingstarted/contributing/#code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions