On Tue, May 5, 2020 at 1:04 PM Miro HronĨok mhroncok@redhat.com wrote:
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.
That's how we want to approach this. Make it completely opt-in while keeping the present workflow intact.
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'm sorry but I'm unable to comment here.
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?
Well, having spec file upstream is still the ideal case (or at least utilizing the respective Fedora spec during the upstream development). Sadly, it's not feasible for many projects, so yes, we propose to have this intermediate place.
Benefits?
* One works with real source files and not with `SHA512 (nyancat-1.5.2.tar.gz) = 8eee5da8afacdbe8b6b5f6...` * I can easily pull commits from upstream if needed * I can also easily propose patches upstream from such a repository * Updating to latest upstream release is no longer such a pain - rebasing patch files is gone * I can work with the package as I was working in the upstream repository * When a contribution comes, I suddenly review real changes and not patch files
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?
(speechless for like a minute)
Don't you wanna create (S)RPMs out of that repository? Don't you wanna be sure that when you add a change to that repository it builds fine on rawhide and the latest stable fedora?
Tomas