On 05. 05. 20 12:41, Tomas Tomecek wrote:
Before I reply, I'd like to stress that we are still in a prototype phase - not everything is solved (clearly) and at this point, we experiment with the workflow mostly.
Experimenting is cool. Go ahead. As long as this is totally opt-in and does not affect me as a contributor even if the main package maintainer chooses to use it, all is good.
Luckily, force-pushes are not allowed in dist-git, which makes the update/sync process easier (knowing that history cannot be changed). Therefore when a new commit lands in dist-git, we'd just "transform" it to source-git and pushed it to the source-git repo. We could even ask all the contributors to rebase their PRs when this happens. On the other hand, when a new commit lands in the source-git repo, we could either transform and push to dist-git directly or open a PR. The maintainer should be in control of this process.
That sounds overly complicated. I thought the idea is to make thing easier, what am I missing?
I understand the synchronisation adds friction to the overall architecture and may be the cause of many problems in the future - hence we are starting this discussion and using the technology ourselves to catch these issues asap.
Good!
Miro, you are talking about conflicts: I'd say that conflicts on the git level are normal and git has solid tools to resolve them. For the use case of 2 different people changes the same thing, we would treat dist-git as the authoritative place and let the person in source-git know about the conflict. But this can happen nowadays easily as well: 2 different people can open the same PR or even push to dist-git directly while only one would succeed.
No, actually, that is a misunderstanding. I was simply talking about synchronization. But you have basically already answered my question above: When changes are done in dist-git, they will be somehow replicated in the source-git thing.
Petr, I should have probably stressed that our target is Fedora (or even all Red Hat operating systems). Yes, there are hundreds of distributions and we cannot solve their problems. We are open for collaboration though - we cannot drive changes in distributions which we don't know or use.
Do I understand correctly that you no longer aim for the "put Fedora spec files upstream" thing, but rather, "create an intermediate upstream sources / fedora scpec file" git repo hybrid? What's the benefit?
----
See for example with Python. We have some patches (although we are trying to get rid of them) and rebasing those has proven to be quite tedious with patch files only.
Hence, we keep this fork: https://github.com/fedora-python/cpython
It has our patches on top. When new version is released, we rebase our branch with git. We format-patch the commits and put them to dist git.
If I had time, I'd create automation that does this for me. Unfortunately I don't and I follow https://xkcd.com/1205/
In what way does keeping the spec file in our fork help us?