> On Thu, Oct 15, 2015 at 11:46:30PM +0000, Finucane, Stephen wrote:
> > Hey,
> >
> > First pull request (request-pull style, that is). Hope I've done
> > everything correctly :S This PR includes two fixes and the code enable
> > the check API. It's got positive reviews first time round and I
> > haven't heard any complaints for this revision so we're good to go.
> 
> My main concern is still the split test/testresult. I really think
> having separate objects in the database is more future proof.
> 
> For instance what if we want to select sending result emails for
> specific tests? there are plenty of properties like that that belong to
> a test object, not a test result object.
> 
> Another problem in this current model is knowing how many tests there
> are. If I have 20 patches, 5 tests and want an email with results, I'd
> rather not have 100 mails back, just one with consolidated results.
> 
> Your main objection to the table split was that you didn't want a single
> point of administration for adding tests. It doesn't have to be that
> way, a policy could be that tests rows can be created dynamically for
> instance and even keep the same front facing API. We could also empower
> maintainers of the project to add those tests, not the patchwork admin.
> In general, not just for this, we need member/maintainer roles in the
> project.
>
> Another thing that is a bit overlooked I believe is access control to
> posting test results?
>
> --
> Damien

Hey Damien,

Thanks for the comments: appreciate you getting back to me.

Let's compare the two a little further.

Your proposal:

        class Test(...):
            name
            description
            project_id
        
        class PatchTestResult(...)
            test_id
            patch_id
            result (the list of 'state choices' you had)
            result_url

The existing proposal (w/ variables renamed for easy comparison):

        class Check(...):
            patch_id
            user_id
            date

            result
            result_url
            description
            context

Your proposal denormalized:
        
        class PatchTestResult(...)
            test_id
            patch_id  # we can drop 'project_id' since patches are tied to a 
project

            result (the list of 'state choices' you had)
            result_url
            description
            name

When denormalized they are basically the same thing, right? So the argument 
becomes "Should we normalize the context/name field". I don't think we should 
because we want the amount of tests used to grow (or shrink) organically [1]:

        The goal is to be really open and distributed. It means new tests can 
spawn and
        some of them may be removed or disabled without central management. It 
allows
        to leverage a community for testing without management issues.

You appear to be insisting there should be a more static configuration of 
"runnable tests". However, I don't think this would scale or allow the fluidity 
of Thomas' proposal. In the normalized case, allowing a new CI system to start 
reporting test statuses would require (a) allowing them access to the mailing 
list and (b) configuring patchwork to enter this new tests. This, to me, is a 
barrier.

I hadn't planned on letting patchwork send any more emails, if I'm being 
totally honest. If you think an email would be useful, could we develop a 
script that checks for a given list of 'contexts' on a patch and asserts that 
those contexts all exist and have a 'passed' state. That would provide the 
functionality that you want while maintaining the dynamism that the community 
needs?

Look forward to your reply,
Stephen

[1] https://lists.ozlabs.org/pipermail/patchwork/2015-September/001706.html
_______________________________________________
Patchwork mailing list
Patchwork@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/patchwork

Reply via email to