-
Notifications
You must be signed in to change notification settings - Fork 153
Description
I thought I’d open an issue for discussion about the main repository structure after the git functionality is implemented.
One of the things I would not want to happen is dependency on having a github account to add one’s libraries into snow-fort “main” repository. For reasons I can elaborate on if people whish, but which I hope are quite obvious nowadays. For that reason I have been thinking about how the main repository could be structured. Ideally there is some kind of “main” repository for discoverability, searching from “all” packages in the “Schemeverse”.
If the main repository currently located at https://snow-fort.org/s/repo.scm would have the following in it:
(repository
(name "snow-main")
(url "https://snow-fort.org/s/repo.scm")
(sibling (name "snow-github")
(git (url "https://github-repository-url"))
(trust 1))
(sibling (name "snow-codeberg")
(git (url "https://codeberg-repository-url"))
(trust 1))
(sibling (name "snow-gitlab")
(git (url "https://gitlab-repository-url"))
(trust 1))
(package ...) ...)
And then for example the “snow-codeberg” repository would have in it the users repositories as siblings, preferably the repositories that are in codeberg would be there, repositoreis that are in github in github repository and so on. The repositories listed as siblings in the main would be owned by you, or if/when help is needed an organization/group/project whatever it is in the corresponding git hosting that lets multiple people approve pull requests.
Then when user wants their repository into the snow-fort, they fork the git-repository listed as sibling correspondign to their git host. Then they make a pull request with their repo as a sibling. For example if I just did that to the codeberg one it’s content would then be:
(repository
(name "snow-codeberg")
(url "https://codeberg-repository-url")
(sibling (name "retropikzel-snow-chibi-testing")
(git (url "https://codeberg.org/retropikzel/snow-chibi-testing.git"))
(trust 0.5)))
In snow-chibi (and snow-fort) the default max siblings can then be set to 2. Level 1 being the snow-fort git repos, level 2 being the user repositories. This way the whole “world” is not searched always.
This would allow following things:
- Not tied into a github account
- Codeberg and gitlab I used as examples, more can be added. Or if people agree codeberg is neutral enough then packages from for example sourcehut can be recommended to put there
- All packages in first 2 levels of siblings are searchable by default
- Users can add siblings in their repositories but it wont pollute the search
- Snow-chibi can still allow searching deeper by allowing setting the siblings level as deep as user wants
- Not tied to snow-fort
- If someone wants to make a private repository and use it as the main repo they can, they can use the snow-git repositories as siblings and use ssh with their git main repository
Downsides that come to mind now(there are propably some others too):
- If people have library per repository then merging pull requests can be some work
- Should not be too much as it’s probably just checking it’s not spam/bot/illegal
What do you think?