All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Hatle <mark.hatle@windriver.com>
To: Joshua Lock <josh@linux.intel.com>
Cc: poky@yoctoproject.org,
	Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: [poky] RFC: design of network based PR service
Date: Thu, 28 Apr 2011 16:23:38 -0500	[thread overview]
Message-ID: <4DB9DADA.1020304@windriver.com> (raw)
In-Reply-To: <1304024672.2171.396.camel@vorpal>

(adding oe-core back to the list as it got dropped off my previous reply)

On 4/28/11 4:04 PM, Joshua Lock wrote:
> On Thu, 2011-04-28 at 10:19 -0500, Mark Hatle wrote:
>> On 4/28/11 4:22 AM, Martin Jansa wrote:
>>> On Thu, Apr 28, 2011 at 03:08:03PM +0800, Lu, Lianhao wrote:
>>>> Hi Guys,
>>>>
>>>> Here is the design of network based PR service, please help to review and 
>>>> give you comment. Thanks a lot!
>>>
>>> Hi,
>>>
>>> looks good, just wondering if we can use the same mechanism for
>>> LOCALCOUNT numbers in SRCPV, we can even use same table if we prefix
>>> first column ie LOCALCOUNT_${PN} and CheckSum in 2nd column would be
>>> actuall git hash (from SRCREV or HEAD for AUTOREV) or 2nd table with
>>> similar structure.
>>>
>>> But it wont work very well if one builder is using AUTOREV and another
>>> one isn't, but that can be resolved by allowing only trusted builders
>>> with same configuration (wrt AUTOREV) to send such tuples.
>>>
>>> Do we have at least 2 groups of "users".
>>> 1) trusted which increments PR when hash is not found
>>> 2) public which can query PR for given hash (not sure what they should
>>>    do if hash is not found)
>>
>> I think this points our something necessary.  There are manual indications of a
>> change.  I.e. the current "PR" usage.  If I change the recipe, patches, etc I
>> should expect to update the 'PR' to the next value.  However, if something ELSE
>> changes (affecting the checksum), or an end user forgets to change the PR, the
>> auto increment should be used.
> 
> Why would you need to update the PR manually? Detecting changes in the
> recipe/patches/etc should all be handled by the checksumming.

Checksums and timestamps are not enough to determine a logical progression of
the components.

We need something that informs the user where these changes fit in the grand
scheme of things.  Are they newer or older then a recipe of the same name (and
package version)?

So this really allows us to visualize multiple levels of upstream work:

Level 1 - Upstream "version"  (PV)

Level 2 - Upstream (oe-core) recipe versioning (PR)

...

Level N - Local build and configuration versioning (checksum based & auto
incrementing)


In a lot of projects 1, 2 and N are enough.. but it's understandable to add in
other intermediate levels to indicate different upstreams along the way.  (Such
as if a company has their own internal distribution..)

I've seen cases where a level 3 exists to indicate a "distribution version"..

Level N (when done manually) has usually captured major system configuration
changes and rebuilding in order to enable solver tools to upgrade properly.


While the checksum will be able to point a unique instance of the recipe to a
given PR... it doesn't guaranty any type of logical numbering.. other then a new
checksum is a new (presumably larger) PR number.  By adding in the various
levels of version information the checksum becomes "more" unique as it only
refers to specific 'upstream' revisions, and make it more logical that a level
1, 2, ... N change means it's a "newer" version of the package.

--Mark

> Cheers,
> Joshua




WARNING: multiple messages have this Message-ID (diff)
From: Mark Hatle <mark.hatle@windriver.com>
To: Joshua Lock <josh@linux.intel.com>
Cc: poky@yoctoproject.org,
	Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: RFC: design of network based PR service
Date: Thu, 28 Apr 2011 16:23:38 -0500	[thread overview]
Message-ID: <4DB9DADA.1020304@windriver.com> (raw)
In-Reply-To: <1304024672.2171.396.camel@vorpal>

(adding oe-core back to the list as it got dropped off my previous reply)

On 4/28/11 4:04 PM, Joshua Lock wrote:
> On Thu, 2011-04-28 at 10:19 -0500, Mark Hatle wrote:
>> On 4/28/11 4:22 AM, Martin Jansa wrote:
>>> On Thu, Apr 28, 2011 at 03:08:03PM +0800, Lu, Lianhao wrote:
>>>> Hi Guys,
>>>>
>>>> Here is the design of network based PR service, please help to review and 
>>>> give you comment. Thanks a lot!
>>>
>>> Hi,
>>>
>>> looks good, just wondering if we can use the same mechanism for
>>> LOCALCOUNT numbers in SRCPV, we can even use same table if we prefix
>>> first column ie LOCALCOUNT_${PN} and CheckSum in 2nd column would be
>>> actuall git hash (from SRCREV or HEAD for AUTOREV) or 2nd table with
>>> similar structure.
>>>
>>> But it wont work very well if one builder is using AUTOREV and another
>>> one isn't, but that can be resolved by allowing only trusted builders
>>> with same configuration (wrt AUTOREV) to send such tuples.
>>>
>>> Do we have at least 2 groups of "users".
>>> 1) trusted which increments PR when hash is not found
>>> 2) public which can query PR for given hash (not sure what they should
>>>    do if hash is not found)
>>
>> I think this points our something necessary.  There are manual indications of a
>> change.  I.e. the current "PR" usage.  If I change the recipe, patches, etc I
>> should expect to update the 'PR' to the next value.  However, if something ELSE
>> changes (affecting the checksum), or an end user forgets to change the PR, the
>> auto increment should be used.
> 
> Why would you need to update the PR manually? Detecting changes in the
> recipe/patches/etc should all be handled by the checksumming.

Checksums and timestamps are not enough to determine a logical progression of
the components.

We need something that informs the user where these changes fit in the grand
scheme of things.  Are they newer or older then a recipe of the same name (and
package version)?

So this really allows us to visualize multiple levels of upstream work:

Level 1 - Upstream "version"  (PV)

Level 2 - Upstream (oe-core) recipe versioning (PR)

...

Level N - Local build and configuration versioning (checksum based & auto
incrementing)


In a lot of projects 1, 2 and N are enough.. but it's understandable to add in
other intermediate levels to indicate different upstreams along the way.  (Such
as if a company has their own internal distribution..)

I've seen cases where a level 3 exists to indicate a "distribution version"..

Level N (when done manually) has usually captured major system configuration
changes and rebuilding in order to enable solver tools to upgrade properly.


While the checksum will be able to point a unique instance of the recipe to a
given PR... it doesn't guaranty any type of logical numbering.. other then a new
checksum is a new (presumably larger) PR number.  By adding in the various
levels of version information the checksum becomes "more" unique as it only
refers to specific 'upstream' revisions, and make it more logical that a level
1, 2, ... N change means it's a "newer" version of the package.

--Mark

> Cheers,
> Joshua



  reply	other threads:[~2011-04-28 21:26 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-28  7:08 RFC: design of network based PR service Lu, Lianhao
2011-04-28  7:15 ` [poky] " Koen Kooi
2011-04-28  7:15   ` Koen Kooi
2011-04-28  9:22 ` [poky] " Martin Jansa
2011-04-28  9:22   ` Martin Jansa
2011-04-28 15:19   ` Mark Hatle
2011-04-28 21:04     ` Joshua Lock
2011-04-28 21:23       ` Mark Hatle [this message]
2011-04-28 21:23         ` Mark Hatle
2011-04-28 22:02         ` [poky] " Chris Larson
2011-04-28 22:02           ` [OE-core] " Chris Larson
2011-04-28 22:08           ` Mark Hatle
2011-04-29  5:28         ` [poky] " Lu, Lianhao
2011-04-29  5:28           ` [OE-core] " Lu, Lianhao
2011-04-29 12:44           ` Mark Hatle
2011-05-02 22:40           ` [poky] " Khem Raj
2011-05-02 22:40             ` [OE-core] " Khem Raj
2011-04-29  3:10 ` Zhang, Jessica

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4DB9DADA.1020304@windriver.com \
    --to=mark.hatle@windriver.com \
    --cc=josh@linux.intel.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=poky@yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.