base.bbclass: Deprecate the PRINC logic
RFC PATCH 1/1 base.bbclass: Deprecate the PRINC logic
Background:
At the recent TSC meeting we were discussing ways of removing the PRINC in favor of the PR server, which should now be standard. The first step in this process is coming up with a simple patch that declared PRINC as deprecated. If this type of patch is successful, the block of code could be replaced with a bb.error eventually.
It is not expected that this patch will go in by itself, but instead should be coordinated with changes to the recipes in common layers such as openembedded-core, meta-openembedded/meta-* and other community layers.
The commit message follows:
The PRINC logic is now deprecated, the PR server should be used to handle the automatic incrementing of the PR (package release) field.
A warning message has been added when princ is defined as anything but '0'.
The default setting of '0' has been retained as some layers use embedded python to increment the PRINC filed. This fails if the base PRINC is not defined.
--- meta/classes/base.bbclass | 4 ++++ 1 file changed, 4 insertions(+)
meta/classes/base.bbclass +4 -0
@@ -465,8 +465,12 @@ python () { appendVar('EXTRA_OECONF', extraconf) # If PRINC is set, try and increase the PR value by the amount specified + # The PR server is now the preferred way to handle PR changes based on + # the checksum of the recipe (including bbappend). The PRINC is now + # obsolete. Return a warning to the user. princ = d.getVar('PRINC', True) if princ and princ != "0": + bb.warn("Use of PRINC is deprecated. The PR server should be used to automatically increment the PR. See: https://wiki.yoctoproject.org/wiki/PR_Service" pr = d.getVar('PR', True) pr_prefix = re.search("\D+",pr) prval = re.search("\d+",pr)
Signature · 1 line
1.8.1.2.545.g2f19ada
Quoted 33 lines · Mark Hatle
Background:
At the recent TSC meeting we were discussing ways of removing the PRINC in favor of the PR server, which should now be standard. The first step in this process is coming up with a simple patch that declared PRINC as deprecated. If this type of patch is successful, the block of code could be replaced with a bb.error eventually.
It is not expected that this patch will go in by itself, but instead should be coordinated with changes to the recipes in common layers such as openembedded-core, meta-openembedded/meta-* and other community layers.
The commit message follows:
The PRINC logic is now deprecated, the PR server should be used to handle the automatic incrementing of the PR (package release) field.
A warning message has been added when princ is defined as anything but '0'.
The default setting of '0' has been retained as some layers use embedded python to increment the PRINC filed. This fails if the base PRINC is not defined.
Signed-off-by Mark Hatle <[email protected]>--- meta/classes/base.bbclass | 4 ++++ 1 file changed, 4 insertions(+)meta/classes/base.bbclass +0
-0
meta/classes/base.bbclass python () { · line 473
Quoted 9 lines
meta/classes/base.bbclass +4
-0@@ -465,8 +465,12 @@ python () { appendVar('EXTRA_OECONF', extraconf) # If PRINC is set, try and increase the PR value by the amount specified + # The PR server is now the preferred way to handle PR changes based on + # the checksum of the recipe (including bbappend). The PRINC is now + # obsolete. Return a warning to the user. princ = d.getVar('PRINC', True) if princ and princ != "0": + bb.warn("Use of PRINC is deprecated. The PR server should be used to automatically increment the PR. See: https://wiki.yoctoproject.org/wiki/PR_Service"
There is a missing ")" here.
Cheers,
Richard
Quoted 3 lines
meta/classes/base.bbclass +0
-0pr = d.getVar('PR', True) pr_prefix = re.search("\D+",pr) prval = re.search("\d+",pr)
Quoted 11 lines · Mark Hatle
Background:
At the recent TSC meeting we were discussing ways of removing the PRINC in favor of the PR server, which should now be standard. The first step in this process is coming up with a simple patch that declared PRINC as deprecated. If this type of patch is successful, the block of code could be replaced with a bb.error eventually.
It is not expected that this patch will go in by itself, but instead should be coordinated with changes to the recipes in common layers such as openembedded-core, meta-openembedded/meta-* and other community layers.
This doesn't say what's the process of getting all PR increments applied.
Should we send list of recipes and required PR increments per layer (and someone will sum these increments and create actual PR bump from it). Or will we take turns and send actual PR bump patches per layer and someone will define order of layers to go in (so that we prevent many conflicts while merging)?
Quoted 36 lines
The commit message follows:
The PRINC logic is now deprecated, the PR server should be used to handle the automatic incrementing of the PR (package release) field.
A warning message has been added when princ is defined as anything but '0'.
The default setting of '0' has been retained as some layers use embedded python to increment the PRINC filed. This fails if the base PRINC is not defined.
Signed-off-by Mark Hatle <[email protected]>--- meta/classes/base.bbclass | 4 ++++ 1 file changed, 4 insertions(+)meta/classes/base.bbclass +4
-0@@ -465,8 +465,12 @@ python () { appendVar('EXTRA_OECONF', extraconf) # If PRINC is set, try and increase the PR value by the amount specified + # The PR server is now the preferred way to handle PR changes based on + # the checksum of the recipe (including bbappend). The PRINC is now + # obsolete. Return a warning to the user. princ = d.getVar('PRINC', True) if princ and princ != "0": + bb.warn("Use of PRINC is deprecated. The PR server should be used to automatically increment the PR. See: https://wiki.yoctoproject.org/wiki/PR_Service" pr = d.getVar('PR', True) pr_prefix = re.search("\D+",pr) prval = re.search("\d+",pr)Signature · 1 line
1.8.1.2.545.g2f19ada
Signature · 1 line
Martin 'JaMa' Jansa jabber: [email protected]
Quoted 13 lines · Martin Jansa
Quoted 11 lines · Mark Hatle
Background:
At the recent TSC meeting we were discussing ways of removing the PRINC in favor of the PR server, which should now be standard. The first step in this process is coming up with a simple patch that declared PRINC as deprecated. If this type of patch is successful, the block of code could be replaced with a bb.error eventually.
It is not expected that this patch will go in by itself, but instead should be coordinated with changes to the recipes in common layers such as openembedded-core, meta-openembedded/meta-* and other community layers.
Quoted 8 lines
This doesn't say what's the process of getting all PR increments applied.
Should we send list of recipes and required PR increments per layer (and someone will sum these increments and create actual PR bump from it). Or will we take turns and send actual PR bump patches per layer and someone will define order of layers to go in (so that we prevent many conflicts while merging)?
This is something we need to figure out. The realistic process is probably do this layer by layer. If we can batch some up together that would obviously be better...
Cheers,
Richard
Quoted 26 lines · Richard Purdie
Quoted 5 lines · Martin Jansa
Quoted 4 lines · Mark Hatle
Background:
At the recent TSC meeting we were discussing ways of removing the PRINC in favor of the PR server, which should now be standard. The first
step
Quoted 2 lines
Quoted 2 lines
in this process is coming up with a simple patch that declared PRINC as deprecated. If this type of patch is successful, the block of code
could
Quoted 5 lines
Quoted 5 lines
be replaced with a bb.error eventually.
It is not expected that this patch will go in by itself, but instead should be coordinated with changes to the recipes in common layers such as openembedded-core, meta-openembedded/meta-* and other community
layers.
Quoted 9 lines
This doesn't say what's the process of getting all PR increments applied.
Should we send list of recipes and required PR increments per layer (and someone will sum these increments and create actual PR bump from it). Or will we take turns and send actual PR bump patches per layer and someone will define order of layers to go in (so that we prevent many conflicts while merging)?
Quoted 4 lines
This is something we need to figure out. The realistic process is probably do this layer by layer. If we can batch some up together that would obviously be better...
If this is the case, to ensure we have the PR in sync we should have it PRINC as a bb.error; this will cause some pain but will avoid PRServer picking the layer PRINC and losing it in next build. Or does PRServer handle this gracefully?
Regards,
Signature · 3 lines
Otavio Salvador O.S. Systems http://www.ossystems.com.br http://projetos.ossystems.com.br Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750
Quoted 44 lines · Otavio Salvador
On Wed, May 29, 2013 at 11:47 AM, Richard Purdie <[email protected]> wrote:
On Wed, 2013-05-29 at 16:37 +0200, Martin Jansa wrote:
> On Wed, May 29, 2013 at 08:51:36AM -0500, Mark Hatle wrote:
> > Background:
> >
> > At the recent TSC meeting we were discussing ways of removing the PRINC
> > in favor of the PR server, which should now be standard.
The first step
> > in this process is coming up with a simple patch that declared PRINC as
> > deprecated. If this type of patch is successful, the block of code could
> > be replaced with a bb.error eventually.
> >
> > It is not expected that this patch will go in by itself, but instead
> > should be coordinated with changes to the recipes in common layers such
> > as openembedded-core, meta-openembedded/meta-* and other community layers.
>
> This doesn't say what's the process of getting all PR increments
> applied.
>
> Should we send list of recipes and required PR increments per layer (and
> someone will sum these increments and create actual PR bump from it). Or
> will we take turns and send actual PR bump patches per layer and someone
> will define order of layers to go in (so that we prevent many conflicts
> while merging)?This is something we need to figure out. The realistic process is
probably do this layer by layer. If we can batch some up together that
would obviously be better...
Quoted 4 lines
If this is the case, to ensure we have the PR in sync we should have it PRINC as a bb.error; this will cause some pain but will avoid PRServer picking the layer PRINC and losing it in next build. Or does PRServer handle this gracefully?
I proposed this but other TSC members didn't like the approach and would prefer a grace/warning period, maybe spanning until after the next release.
I can see the arguments both ways...
Cheers,
Richard
Quoted 50 lines · Richard Purdie
Quoted 44 lines · Otavio Salvador
On Wed, May 29, 2013 at 11:47 AM, Richard Purdie <[email protected]> wrote:
On Wed, 2013-05-29 at 16:37 +0200, Martin Jansa wrote:
> On Wed, May 29, 2013 at 08:51:36AM -0500, Mark Hatle wrote:
> > Background:
> >
> > At the recent TSC meeting we were discussing ways of removing the PRINC
> > in favor of the PR server, which should now be standard.
The first step
> > in this process is coming up with a simple patch that declared PRINC as
> > deprecated. If this type of patch is successful, the block of code could
> > be replaced with a bb.error eventually.
> >
> > It is not expected that this patch will go in by itself, but instead
> > should be coordinated with changes to the recipes in common layers such
> > as openembedded-core, meta-openembedded/meta-* and other community layers.
>
> This doesn't say what's the process of getting all PR increments
> applied.
>
> Should we send list of recipes and required PR increments per layer (and
> someone will sum these increments and create actual PR bump from it). Or
> will we take turns and send actual PR bump patches per layer and someone
> will define order of layers to go in (so that we prevent many conflicts
> while merging)?This is something we need to figure out. The realistic process is
probably do this layer by layer. If we can batch some up together that
would obviously be better...Quoted 4 lines
If this is the case, to ensure we have the PR in sync we should have it PRINC as a bb.error; this will cause some pain but will avoid PRServer picking the layer PRINC and losing it in next build. Or does PRServer handle this gracefully?
Quoted 5 lines
I proposed this but other TSC members didn't like the approach and would prefer a grace/warning period, maybe spanning until after the next release.
I can see the arguments both ways...
I prefer the warning for one release approach. What I'm afraid will happen is oe-core is released in the Fall, and a group of users migrates to it from the last release and suddenly all of their layers break. These are the people who do not keep up with day to day development.
With the warning, they won't be immediately blocked -- but will be sufficiently annoyed (and warned) that they need to fix something or it will break.
--Mark
Quoted 10 lines
Cheers,
Richard
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Quoted 63 lines · Mark Hatle
Quoted 54 lines · Richard Purdie
Quoted 39 lines · Otavio Salvador
On Wed, May 29, 2013 at 11:47 AM, Richard Purdie <richard.purdie@**linuxfoundation.org<[email protected]>> wrote:
On Wed, 2013-05-29 at 16:37 +0200, Martin Jansa wrote:
> On Wed, May 29, 2013 at 08:51:36AM -0500, Mark Hatle wrote:
> > Background:
> >
> > At the recent TSC meeting we were discussing ways of removing the PRINC
> > in favor of the PR server, which should now be standard.
The first step
> > in this process is coming up with a simple patch that declared PRINC as
> > deprecated. If this type of patch is successful, the block of code could
> > be replaced with a bb.error eventually.
> >
> > It is not expected that this patch will go in by itself, but instead
> > should be coordinated with changes to the recipes in common layers such
> > as openembedded-core, meta-openembedded/meta-* and other community layers.
>
> This doesn't say what's the process of getting all PR increments
> applied.
>
> Should we send list of recipes and required PR increments per layer (and
> someone will sum these increments and create actual PR bump from it). Or
> will we take turns and send actual PR bump patches per layer and someone
> will define order of layers to go in (so that we prevent many conflicts
> while merging)?Quoted 6 lines
This is something we need to figure out. The realistic process is
probably do this layer by layer. If we can batch some up together that
would obviously be better...If this is the case, to ensure we have the PR in sync we should have
Quoted 4 lines
it PRINC as a bb.error; this will cause some pain but will avoid PRServer picking the layer PRINC and losing it in next build. Or does PRServer handle this gracefully?
Quoted 6 lines
I proposed this but other TSC members didn't like the approach and would prefer a grace/warning period, maybe spanning until after the next release.
I can see the arguments both ways...
Quoted 8 lines
I prefer the warning for one release approach. What I'm afraid will happen is oe-core is released in the Fall, and a group of users migrates to it from the last release and suddenly all of their layers break. These are the people who do not keep up with day to day development.
With the warning, they won't be immediately blocked -- but will be sufficiently annoyed (and warned) that they need to fix something or it will break.
The problem is the following:
OE-Core adds warning;
Layer1 submit the PR bump request and drop the internal PRINC Layer1 gets PRINC removal commited
User1 updates Layer1 (and OE-Core didn't yet apply the PR bump)
PR goes backwards.
Now the inverse:
OE-Core adds warning;
Layer1 submit the PR bump request and drop the internal PRINC OE-Core commits PR bump
User1 updates Layer1 (and OE-Core didn't yet apply the PR bump)
PR goes forward as PRINC didn't yet been removed so when Layer1 is updated again, it will go backwards
Signature · 3 lines
Otavio Salvador O.S. Systems http://www.ossystems.com.br http://projetos.ossystems.com.br Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750