Unfortunately I have to say no to this. The problem is that this will
update to latest revisions on all the layers, which I believe is not
what people would want, as everything including poky etc. will be
shifting uncontrollably.

Conceptually, I would not want oe-setup-layers to suffer from feature
creep and become bloated and difficult to maintain. Every little
enhancement is pushing in that direction. It has a json, it does what
the json prescribes, end of story.

We've previously discussed with Jermain how this can be solved on the
bitbake-layers side, e.g. that tool would write out a json where some
layers don't have a hardcoded revision. I think work to implement that
has stalled, not sure. But it's not difficult to add.

Alex



On Wed, 6 Dec 2023 at 10:25, Andrey Zhizhikin <andre...@gmail.com> wrote:
>
> Current script implementation uses revisions recorded in JSON file to
> replicate previously recorded setup. While this is useful for complete
> layer setup reproducibility, this does not allow the setup "upgrade" where
> this script can be used to use remote branch information and latest HEAD,
> have the setup restored, and then saved using updated revisions.
>
> Add new '--skip-revs' parameter which can be used to obtain the updated
> layer setup.
>
> Following set of operations could be executed to achieve this:
> 1. Restore initial layer setup using remote branch HEAD instead of recorded
>    revisions by specifying --skip-revs.
> 2. After layer setup is created, JSON file containing updated revisions is
>    retrieved via `bitbake-layers create-layers-setup`
> 3. Updated JSON file can be checked in to bootstrap repository and used
>    later without '--skip-revs' to replicated updated setup.
>
> Signed-off-by: Andrey Zhizhikin <andre...@gmail.com>
> ---
>  scripts/oe-setup-layers | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/scripts/oe-setup-layers b/scripts/oe-setup-layers
> index 6d49688a32..a4941450d3 100755
> --- a/scripts/oe-setup-layers
> +++ b/scripts/oe-setup-layers
> @@ -69,6 +69,13 @@ def _do_checkout(args, json):
>          remotes = r_remote['remotes']
>
>          print('\nSetting up source {}, revision {}, branch 
> {}'.format(r_name, desc, branch))
> +        if args['skip_revs']:
> +            if branch and (branch != 'HEAD'):
> +                print('\nSkip revision option used, remote {} branch {} HEAD 
> will be used instead of {}'.format(r_name, branch, rev))
> +                rev = branch
> +            else:
> +                print('\nBranch info is missing in json, --skip-revs option 
> is not used')
> +
>          if not _is_repo_git_repo(repodir):
>              cmd = 'git init -q {}'.format(repodir)
>              print("Running '{}'".format(cmd))
> @@ -108,6 +115,7 @@ except subprocess.CalledProcessError as e:
>
>  parser.add_argument('--destdir', default=defaultdest, help='Where to check 
> out the layers (default is {defaultdest}).'.format(defaultdest=defaultdest))
>  parser.add_argument('--jsondata', default=__file__+".json", help='File 
> containing the layer data in json format (default is 
> {defaultjson}).'.format(defaultjson=__file__+".json"))
> +parser.add_argument('--skip-revs', action='store_true', help='Skip revisions 
> recorded in json manifest, and use latest revision on branch to restore 
> setup')
>
>  args = parser.parse_args()
>
> --
> 2.34.1
>
>
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#191881): 
https://lists.openembedded.org/g/openembedded-core/message/191881
Mute This Topic: https://lists.openembedded.org/mt/103009912/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to