On Wed, Jul 20, 2022 at 8:44 AM Jan Engelhardt
On Wednesday 2022-07-20 14:13, Dirk Müller wrote:
* Exploration of the Git Hosting options (run by me) openSUSE already has some experience with Pagure.io (used by https://code.opensuse.org/ for example) and GitHub (used by various openSUSE projects under https://github.com/openSUSE) as well as some projects also in GitLab (used by a few community efforts as well as SUSE-internally for hosting) so we explored another option named Gitea, which is now available to the community under https://gitea.opensuse.org/.
gitea with the lfs approach works well.
I wonder how the ipfs symlinks stored in pagure would be handled. Fuse mount, or another global hook like git-lfs?
Right now, we don't have any blob storage system attached to Pagure. We can do whatever we want for this. Fedora's Dist-Git setup[0] leverages a wrapper tool called fedpkg[1] built on the rpkg[2] framework. We don't have to do it the same way, but there are a lot of nice things from having a swiss army knife tool for packaging. We have this today with OBS through osc, for example. After working with Git-LFS for years for normal development, I'm not a huge fan of it. A couple of issues I have with LFS: * It's incredibly difficult to mirror LFS, and there's no straightforward way to do it with git repos, given how the integration works * LFS easily breaks when modifications occur across forks, and it's difficult to identify the problems there and fix them There are other issues that happen specific to LFS server implementations. For example, GitLab's implementation imposes ACLs on each blob which makes it difficult for forks made by non-members to work reliably. GitHub's implementation has issues where smudging can be broken when doing complex merges that have LFS objects touched. For some of the awkwardness around Dist-Git, these problems don't happen because it's a transparent blob cache and the only thing written to Git is a plain text file with the filename and checksum, which is used as the blob reference. Authorization to upload and download those blobs is controlled by packager ACLs or whatever you wish to use to control that, making it effectively global, so it works properly across forks, or even cross-server forks. With my downstream hat, that's also useful if I'm building patched derivative packages, because I can use the Dist-Git server references even without my own Git repo on my own Git server. It makes CI and all kinds of other things easier too. [0]: https://github.com/release-engineering/dist-git [1]: https://pagure.io/fedpkg [2]: https://pagure.io/rpkg
* Exploration of the history import from the SUSE and openSUSE build service source history [...] Your feedback on the history import quality and how it could be made better is very much appreciated.
I would make the case that OBS history is not particularly interesting for its messages, because (a) we have had .changes files, (b) the SVN-ish nature of the OBS SCM meant that you can't go back and edit messages or commits, so there is little incentive to write up much if you missed it in the first commit.
The history is better than nothing because things like Git blame work reasonably okay. When Bernhard was working on the original setup, he didn't bother because it was a read-only setup. If we transition to Git, we probably want the attribution and messages to be more accurate because the Git history is useful for working through the package's development. It would also open the door for things like rpmautospec to be used in the future[3]. [3]: https://docs.pagure.org/Fedora-Infra.rpmautospec/ -- 真実はいつも一つ!/ Always, there's only one truth!