launchpad-dev team mailing list archive
-
launchpad-dev team
-
Mailing list archive
-
Message #01963
Re: First cut at recipe db-schema patch
Julian Edwards wrote:
> Right, I just had a good call with Jono and we've cleared a bunch of stuff up
> between us.
Excellent.
> The upshot is that you need a few more changes to the schema:
>
> 1. SourcePackageRecipeData needs a "type" column so we know if it's a
> manifest or a recipe. This will help with indexing, especially since we'll
> have loads more manifests than recipes.
I'm not sure I see why, but OK.
> 2. SourcePackageRecipeDataBranch needs a revision number. This is more
> pertinent to manifests but Jono tells me it should be used for recipes too.
Um, revision *number*? I would have thought a text revspec or revision
id field would make more sense.
I'd like to talk about this bit some more I guess.
> 3. SourcePackageBuildUpload should have a requester column
Cool, I'd already come around to this point of view.
> More below:
>
> On Thursday 03 December 2009 02:19:54 Michael Hudson wrote:
>> I hope this makes sense now, and I apologize for not being clear on this
>> before.
>
> Much better, thank you!
Hooray.
>>> Yes, we do. Right now we track this via Build.buildstate. Each
>>> "xxxBuild" should have similar thing. It would be nice to part-refactor
>>> this into some other table but I think it's too much hassle to change the
>>> Soyuz code for this versus the benefit.
>> I guess for SPBuild we won't use that buildstate value then.
>
> Quite the opposite, you'll need it to track what's going on with the SPBuild.
I meant 'SPBuild will never have this particular value from BuildState
that indicates an upload has happened in its buildstate column', it's
clear that SPBuild needs a buildstate column.
Though now I look at the code, I don't really understand how the
uploaded-ness is tracked through buildstate.
> In fact the existing lp.soyuz.interfaces.build.BuildStatus will continue to
> apply for all build job types. We need to move that enum somewhere else now
> though.
lp.soyuz.enums! Worked well for code, that idea.
> In other words, your schema patch is fine :)
Yay.
>> Currently in my patch, SourcePackageBuildUpload doesn't have a
>> requester, should it? I guess maybe it should, 'id, date_created,
>> registrant' are the standard fields after all...
>
> Yes, I think it should. Soyuz separately tracks who requested an upload.
> This can be different from who built a package (consider a MOTU sponsoring a
> package for example).
>
>> But I think I'd like to keep the Job row separate from the Build row.
>
> Separate as in separately deleteable? That should be ok.
Yes. Cool.
>>>> Would it be accurate to say that in a world where all builds are done
>>>> through branches and not dput that we would still have
>>>> SourcePackageReleases but not PackageUploads?
>>> Not really, we still need to model uploads.
>> But all the uploads would be from "inside" the system, all source
>> packages would be built by Soyuz as well.
>
> That doesn't matter. Right now, "inside" uploads from the build system go
> through the exact same process as source uploads from outside the system.
> That is, the buildd-manager puts .deb packages coming from the builders into
> the same incoming queue as the ftp uploads from outside, and calls the same
> script to process the upload.
Right.
>> Hopefully tomorrow I can spend longer writing code than emails!
>
> Yes, that'd be great :)
:)
> We might catch jml in the airport before his flight leaves for Sydney at 22:00
> today and get this puppy reviewed and done. Otherwise, he'll look on Monday.
> In eitther case, I think you might as well start coding on the assumption it's
> not going to change much.
Either way is OK, sounds like major changes are not going to be required.
Cheers,
mwh
Follow ups
References