Re: RFC: Storing Automated Tasks/Tests In Dist-Git

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

 




Dne 17.10.2016 v 17:42 Tim Flink napsal(a):
> On Mon, 17 Oct 2016 11:16:22 +0200
> Pavol Babincak <pbabinca@xxxxxxxxxx> wrote:
>
>> On 10/17/2016 06:46 AM, Tim Flink wrote:
>>> On Mon, 3 Oct 2016 13:50:33 -0600
>>> Tim Flink <tflink@xxxxxxxxxx> wrote:
>>>  
>>>> One of the features for Taskotron that we've been planning since
>>>> the beginning was a way for contributors to maintain their own
>>>> automated tasks/tests which would be run during a package's
>>>> lifecycle.
>>>>
>>>> I'm happy to say that we're almost to this milestone and wanted to
>>>> get some feedback from devel@ on the specifics of what we're
>>>> planning WRT where these automated tasks will be stored and the
>>>> execution modes that we're planning to support. Our current plan
>>>> is written up at:
>>>>
>>>> https://phab.qadevel.cloud.fedoraproject.org/w/taskotron/new_distgit_task_storage_proposal/
>>>>
>>>> The hope is that by making it easier for contributors to write
>>>> automated tasks and making the model completely self-service and
>>>> convention drive, there will be a lot more automated checks for
>>>> packages than we currently have for Fedora.
>>>>
>>>> Please read through the wiki page I mentioned above and give us
>>>> feedback on whether what we're planning to implement is going to be
>>>> useful or if there are areas of the plan which could be improved.  
>>> Several folks have brought up concerns (off list) about our plan to
>>> use sub-directories inside the rpms/ dist-git repos instead of
>>> separate namespaces. The possibility of using namespaces (which are
>>> effectively separate git repositories) did come up but I want to
>>> make sure this discussion topic comes up in a more obvious fashion.
>>>
>>> As I understand it, the primary concern is around having non-rpm
>>> stuff in the repo and the commit history. I'm aware of two reasons
>>> for that concern:
>>>
>>>   - Red Hat uses separate repos internally to hold tests for RHEL
>>>     packages and putting checks/tests into the rpm repo will make it
>>>     more painful farther down the road for RHEL package
>>> maintainers.  
>> I'd like to describe Red Hat's dist-git structure/design. There are
>> two relevant namespaces:
>>
>> - rpms/* for regular repositories used for building rpms
>> - tests/* for storing tests
>>
>> rpms repositories have product branches similarly to Fedora's
>> dist-git.
>>
>> Whereas tests repositories have only master branch. There is no
>> global policy how tests repositories are structured and what goes in. 
>> Everything is on QA group who manages set of repositories.
> One of the differences in Fedora is that I expect most check/test
> contributions will come from package maintainers instead of dedicated
> QA folks. At this time, there just aren't enough available person hours
> among the Fedora QA folks to match the number of packages and
> components which are in Fedora.

Well, my hopes are that Red Hat QA folks will get more involved in
Fedora testing. Actually you should really talk more to them.

>
>>  From workflow point of view:
>> - for every rpms/ repository there is tests/ repository created 
>> automatically.
>> - if there are any special operations done on rpms/ repository tests/ 
>> repository is also considered here. E.g. removal, deprecation, etc.
>> - rhpkg (preferred tool for working with dist-git repos - corresponds 
>> with fedpkg) has separate command to checkout tests - "rhpkg tests". 
>> This would roughly correspond to "fedpkg co tests/foo".
>>
>>
>> Side note about the tooling:
>> - dist-git repository management on server side started with the same 
>> code base. So as long as Fedora doesn't diverge too much (e.g. pagure 
>> isn't considered internally yet) porting these changes can be fairly 
>> trivial.
>>
>> - rhpkg, similarly to fedpkg gets majority of the code from pyrpkg 
>> library. If it turns out tests/ support makes a sense in other client 
>> tools pyrpkg may get this code thus get this feature easily. (I'm
>> CCing cqi who is working on rhpkg/rpkg/fedpkg code and may provide
>> more insight here).
> Is that code in rhpkg or rpkg (the parent of both rhpkg and fedpkg,
> assuming that I got the name right)?
>
>>>   - Adding the checks/tests into the same repo increases the size of
>>>     the repo and could end up requiring more effort to search
>>> through those commits for a specific change
>>>
>>>   - If there are other concerns, feel free to bring them up.
>>>
>>> We chose the directory-in-dist-git option because it seems like the
>>> better, more simple option. It requires fewer steps to get
>>> checks/tests pushed, no extra tooling modification, makes the
>>> checks/tests easier to find and would make for a less complex
>>> system overall.
>>>
>>> That being said, I don't maintain many packages and I'm not going to
>>> pretend that I know what's best for maintainers. So long as the end
>>> system is consistent, easy to use, makes sense and is feasible to
>>> complete with resources we have, I don't have a strong opinion on
>>> whether we use directories or namespaces to hold checks/tests.
>>>
>>> Which brings me to the question that I'd like to get some feedback
>>> on: would it be preferable to store checks/tests within directories
>>> of existing dist-git repos or create a new namespace to store
>>> checks/tests and fiddle around with tooling etc. to hide some of
>>> the complexity that may bring?
>>>  
>> I'm wondering if you can estimate what amount of the work is needed
>> here which excuses mixing up content in the design.
> I'm not sure that I understand what you're asking here so I'll rephrase
> what I think you're asking - please correct anything I've mixed up.
>
> "How much extra work/complexity for Fedora maintainers is enough to
> justify doing something different from what RHEL maintainers are
> already doing?"
>
> Unfortunately, I don't have a wonderfully objective, short answer to
> this but I'll attempt a longer-winded answer.
>
> To me, one of the most applicable differences between RHEL and Fedora
> is that as a community project, there is not really a way to make
> contributors do something.
>
> If we had an army of dedicated QA folks who were doing most of the
> package-level testing, it would make more sense to separate
> checks/tests and rpm data (spec files, patches etc.). Since we don't
> have that kind of an army in Fedora, it will be package maintainers who
> are writing most of the automated jobs for Fedora packages.
>
> The more steps and levels of indirection we add to the process of
> contributing automated checks/tests for Fedora packages, the higher the
> barrier to entry will be. I'm under the impression that most packagers
> are plenty busy as it is and raising the barrier to entry for
> contributing checks/tests at all will reduce the number of checks/tests
> contributed.
>
> Rephrasing my answer as a question: how many package level checks/tests
> in Fedora are acceptable to lose in exchange for closer alignment with
> downstream projects?
>
> I don't know of a way to empirically answer any of those questions
> which is why I'm asking for feedback here from people who probably have
> a better idea of what level of annoyance they're willing to tolerate
> than I do. I'm hoping to hear from both folks who deal with both Fedora
> and downstream in addition to folks who don't work with downstream.
>
> Tim
>


So let me make additional point. If we had two separate namespaces, we
can always make it appear it is one namespace. You can always checkout
one repository into another, we do it internally via rhpkg, we can use
submodules, in worst case, we can even merge the two repositories. While
if we start to use single repository which will mix everything, there is
no way to separate the history.

Vít

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
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