[FFmpeg-devel] Regarding Git Tooling
martin schitter
ms+git at mur.at
Sat Jan 25 21:17:26 EET 2025
On 25.01.25 08:54, Soft Works wrote:
>>> Gitea
>>>
>>> https://gitea.com/ffstaging/FFmpeg
>>>
>>>
>>> forgejo
>>>
>>> https://v10.next.forgejo.org/ffstaging/FFmpeg
>>>
>>>
>>> GitLab
>>>
>>> https://gitlab.com/ffstaging/FFmpeg
>>
>>
>> Perhaps you should also add a `radicle` (https://radicle.xyz/) test
>> repo
>
> This was nothing official nor planned, I just wanted to take a look at forgejo and got it going to quickly that I did the other two as well and posted the links to allow taking a look for those who like to. The "real thing" will be set up by others.
Just mirroring a pure git repo is indeed trivial and easily archived by
a few clicks in all of these solutions. The troubles and more
challenging compatibility issues and vendor lock in symptoms will appear
later in practical use and will soon make any radical changes and any
transfer to an alternative solution very difficult.
> From the radicle website:
>
>> For now, Radicle only works on Linux, macOS and BSD variants.
Do you really want to host GitLab or Forgejo on Win11 or an Ipad? :)
Access to Web-Interface and more traditional ways of git exchange are
anyway available on radicle hosted projects as well. It's just not the
typical Web-First approach and the Web-GUI doesn't look really
convincing. The development is more concentrated on the core parts and
the challenges of distributed peering without only one central hosting
instance. But even the tools required for this kind of usage could be
easily ported to other platforms, if somebody really wants to spend
efforts on this task.
> Besides, the intention is to make ffmpeg more accessible to developers rather than less. :-)
Sure, I also see the reasons why radicle will not be accepted by most
users in its current state. The web-Interface is much to simple and
inferior compared to the more common choices.
But radicle is definitely the only available example of an alternative
git based source management solution until now, which somehow mastered
to solve the requirements of decentralized identity management and
application independent issue storing within git itself.
All other federation promises prospected by the other alternatives are
still very far away from any real world implementation and will very
likely also support only federated networks of very similar software,
instead of focusing on exchange between more or less arbitrary git based
platforms.
It's really a pity that the compromisless radicle approach is so much
different to the expectations of most common users, that it will hardly
have any chance to compete witch centralized services provided by a few
big companies or those attempts to just copy the simplicity of their
web-GUIs.
> In the test repo I was able to search code, PR discussions and issue
> conversations. What else you looking?
Yes, on first look it seems to work similar...
But in the case of F. you have to make two or three individual search
requests if you really want to cover code, Issues and PR comments. And
in all of them you have to always spend a few more clumsy clicks to
change the search mode to “exact” and sort by “recently updated” anytime
again before you finally get a somehow useful list of search result.
These are the really annoying details in practice, which drive you crazy
after a while.
>> Better CI support, which is the strong side of GitLab, is IMHO just
>> similar important as pure git repo hosting. It helps to automatically
>> check merge requests, and report and step by step correcting the
>> related
>> issues in a significant more efficient way than here on the list. But
>> good CI solutions, which are not just somehow glued together with the
>> code management infrastructure, allow much more! They are not
>> controlled
>> and configured only by the repo owner by hidden setups, but are
>> transparent and can be easily modified by users in their private
>> forks
>> or runners on their local machines. That's a very important feature
>> in
>> practice, because it motivates developers to also improve this test
>> and
>> build infrastructure together instead of just relaying on some
>> non-transparent given infrastructure maintained by a few
>> professionals.
>
> I believe that both is required:
>
> 1. Automated build and test runs
Yes -- I agree. But the tools have to be well integrated into the whole
system, otherwise it doesn't help to establish a more efficient handling
of merge requests.
> forgejo appears to have also cloned GH Actions where the action definitions are part of the code base.
Forgejos CI implementation is still in a very early and inferior stage.
I wouldn't see it as a serious alternative to GitLab in any respect. But
the very container and Kubernetes focused approach of GitLab also has
its drawbacks. It's just very powerful and mature in comparison.
> 2. Organizational Automation Tasks
>
> Other types of automation are probably of less interest or make no sense to be run by everybody individually, like for example:
>
> - Extended Platform FATE tests
> Running on platforms other than the usual CI runners run on
> - Run additional checks on PRs, like
> - Commit message formatting and style
> - Code style checking
> - Check version bump requirement (if reasonably possible)
> - Check doc change if options change (if possible)
> - Auto-determine maintainers and notify/tag them
> - Auto-apply tags (like for util, codec, format, tools)
It's hard to say, which tasks should be actually handled by mechanism
provided by one of this Git related CI/CD solutions. Vendor lock in
happens very quickly, and it's always very hard to find a satisfying
balance between independent tooling and sufficient system integration.
martin
More information about the ffmpeg-devel
mailing list