Re: Exploded source tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jun 6, 2017 at 4:47 AM, Michal Sekletar <msekleta@xxxxxxxxxx> wrote:
> On Tue, Jun 6, 2017 at 7:14 AM, Vít Ondruch <vondruch@xxxxxxxxxx> wrote:
>
>> So what would be your workflow here? You would start update of the
>> package by "fedpkg upload" to upload the new tarball and let dist-git to
>> explode it? And what would be next?
>
> My ideal workflow would be to use pagure (repo with exploded source)
> just like I use github/gitlab/bitbucket these days. Hence if I am
> owner I commit directly or perhaps I file pull-request against the
> package source. Then once commit is merged, package maintainer tells
> koji to build the package. Note that Koji *has* support to build
> directly from git repo referenced in your spec. We just don't use this
> feature in Fedora, because up until pagure came along there was no
> suitable code hosting/collaboration platform available to Fedora
> package maintainers.
>
>>
>> I thought that the exploded tree would be more passive, i.e. it would
>> mirror just the basic tarball, possibly each Koji build would result in
>> some release branch containing also the applied patches, but it seems
>> you want to use it more actively ....
>
> Not only more actively, I would like to use it almost exclusively.
>
> In my opinion move into this direction would be hands down the best
> change for package maintainers in years. Also I personally think such
> possibility is also necessary if Fedora wants to attract new
> contributors in era of Github. Because let's be honest, plain dist-git
> (spec+patches) is just terrible experience compared to what people are
> used to upstream.
>

I'd really rather not see this become a thing. There are five big
reasons why I don't want this to become a thing with Fedora packages:

1. It encourages monkey patching and desynchronization from upstream.
Given our philosophy, I'd rather it be more explicit and obvious that
something is patched and altered, because the mere *burden* of
patching should encourage us to track upstreams in general and fix
things there. If you *are* the upstream, then you should not be making
downstream forks of your own project. That's just dumb and can create
all kinds of weird issues down the line. I have this problem with my
software packaged by Debian people and it's very aggravating. They do
fixes and don't bother to talk to me until they literally break
everything, and by that point I don't feel particularly charitable
anymore. They made their mess. I don't want us to become like that.

2. We actually have decent tooling for tracking more than one VCS repo
in parallel now. Tools like tito and rdopkg (which sadly isn't in
Fedora and doesn't support Python 3, boo!) can concurrently track and
enable better management of the code and packaging when they are in
separate repositories.

3. Pagure is already a huge disfavor for people who prefer non-Git
VCSes (I personally prefer Mercurial whenever I can use it, and I've
heard of people jumping onto VCSes like pijul, which has an
interesting and different model of source control that doesn't map to
Git at all).

4. I don't particularly want to have the same kind of terrible
squawking that goes on in Debian about "how to structure code +
packaging" for a package that often leads to nothing getting done for
months. The fact we use Git for packaging is irrelevant and immaterial
to upstreams, and they can use whatever they want. If we want the
"user experience" to look like an exploded tree (like what
"dpkg-source -x <file.dsc>" does), we could make tooling to support
that, but I would not want us to go down the road of actually
maintaining that merged tree ourselves in Pagure.

5. It makes things worse when we have to scrub code. Debian has the
lovely option of fancifully ignoring software patents because they
make no money and there's no point suing them. We don't have that. Red
Hat essentially owns Fedora for all legal purposes and they inherit
the packages we have for Red Hat Enterprise Linux. That means we scrub
code *before* uploading (freetype, chromium/qtwebengine, gst plugins,
etc.). With the current model, this is easy to do and maintain. Merged
trees make this much harder.



-- 
真実はいつも一つ!/ Always, there's only one truth!
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux