toaster: add master branch back into new project options
cover toaster: add master branch back into new project options
This patch adds master to the oe and poky fixtures so that a new project can be based on morty or the master branch.
It also has an fix for lsupdates to support the layers in fixtures definition.
-Brian
an intel employee
The following changes since commit 065310e77ab4c8c914c53ff43d5e601ebf9468b5:
toaster: settings set ALLOWED_HOSTS to * in debug mode (2016-11-09 16:28:17 -0800)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib bavery/submit/toaster/mw-masterproj-11-2016
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=bavery/submit/toaster/mw-masterproj-11-2016
Michael Wood (3):
toaster: settings fixture Set default release to master
toaster: orm/fixtures Add the master release and correct morty release
toaster: layerindex updater Take into account layers being predefined
lib/toaster/orm/fixtures/oe-core.xml | 23 ++++++- lib/toaster/orm/fixtures/poky.xml | 82 ++++++++++++++++++++++-- lib/toaster/orm/fixtures/settings.xml | 2 +- lib/toaster/orm/management/commands/lsupdates.py | 60 ++++++----------- 4 files changed, 116 insertions(+), 51 deletions(-)
--
1.9.1
PATCH 1/3 toaster: settings fixture Set default release to master
From: Michael Wood <[email protected]>
Now that morty has been released we now set the DEFAULT_RELEASE back to master.
--- lib/toaster/orm/fixtures/settings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
lib/toaster/orm/fixtures/settings.xml +1 -1
@@ -4,7 +4,7 @@ <!-- pk=1 is DISTRO --> <object model="orm.toastersetting" pk="2"> <field type="CharField" name="name">DEFAULT_RELEASE</field> - <field type="CharField" name="value">morty</field> + <field type="CharField" name="value">master</field> </object> <object model="orm.toastersetting" pk="3"> <field type="CharField" name="name">DEFCONF_PACKAGE_CLASSES</field>
Signature · 1 line
1.9.1
PATCH 2/3 toaster: orm/fixtures Add the master release and correct morty release
From: Michael Wood <[email protected]>
Add the master release option to base your project on and correct the morty release so that for poky based setups we use the poky provided version of the layer rather than checking out the layer from its own git repository.
[YOCTO #10497]
--- lib/toaster/orm/fixtures/oe-core.xml | 23 +++++++++- lib/toaster/orm/fixtures/poky.xml | 82 +++++++++++++++++++++++++++++++++--- 2 files changed, 96 insertions(+), 9 deletions(-)
lib/toaster/orm/fixtures/oe-core.xml +21 -2
@@ -14,6 +14,13 @@ </object> <object model="orm.bitbakeversion" pk="2"> <field type="CharField" name="name">HEAD</field> + <field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field> + <field type="CharField" name="branch">HEAD</field> + </object> + <object model="orm.bitbakeversion" pk="3"> + <field type="CharField" name="name">master</field> + <field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field> + <field type="CharField" name="branch">master</field> </object> <!-- Releases available -->
@@ -31,18 +38,30 @@ <field type="CharField" name="branch_name">HEAD</field> <field type="TextField" name="helptext">Toaster will run your builds with the version of OpenEmbedded that you have cloned or downloaded to your computer.</field> </object> + <object model="orm.release" pk="3"> + <field type="CharField" name="name">master</field> + <field type="CharField" name="description">OpenEmbedded core master</field> + <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">3</field> + <field type="CharField" name="branch_name">master</field> + <field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href=\"http://cgit.openembedded.org/openembedded-core/log/\">OpenEmbedded master</a> branch.</field> + </object> <!-- Default layers for each release --> <object model="orm.releasedefaultlayer" pk="1"> <field rel="ManyToOneRel" to="orm.release" name="release">1</field> <field type="CharField" name="layer_name">openembedded-core</field> </object> - <object model="orm.releasedefaultlayer" pk="4"> + <object model="orm.releasedefaultlayer" pk="2"> <field rel="ManyToOneRel" to="orm.release" name="release">2</field> <field type="CharField" name="layer_name">openembedded-core</field> </object> + <object model="orm.releasedefaultlayer" pk="3"> + <field rel="ManyToOneRel" to="orm.release" name="release">3</field> + <field type="CharField" name="layer_name">openembedded-core</field> + </object> + - <!-- TYPE_LOCAL = 0 Layers for the Local release --> + <!-- Layer for the Local release --> <object model="orm.layer" pk="1"> <field type="CharField" name="name">openembedded-core</field> <field type="CharField" name="vcs_url">git://git.openembedded.org/openembedded-core</field>
lib/toaster/orm/fixtures/poky.xml +75 -7
135 lines not on this page · raw message
Signature · 1 line
1.9.1
PATCH 3/3 toaster: layerindex updater Take into account layers being predefined
In reply to brian averyFrom: Michael Wood <[email protected]>
As we can now provide layer definitions through fixtures we need to be more clever how we update the metadata in the database to avoid duplicate metadata being created. To do this we make more effort to match existing data in the database and update only the fields which will be better provided by the layer index.
This removes the need for us to special case layers which are provided as part of poky such as openembedded-core or meta-poky which exist on the layerindex but with different git urls.
--- lib/toaster/orm/management/commands/lsupdates.py | 60 ++++++++---------------- 1 file changed, 19 insertions(+), 41 deletions(-)
lib/toaster/orm/management/commands/lsupdates.py +19 -41
@@ -154,41 +154,17 @@ class Command(NoArgsCommand): total = len(layers_info) for i, li in enumerate(layers_info): - # Special case for the openembedded-core layer - if li['name'] == oe_core_layer: - try: - # If we have an existing openembedded-core for example - # from the toasterconf.json augment the info using the - # layerindex rather than duplicate it - oe_core_l = Layer.objects.get(name=oe_core_layer) - # Take ownership of the layer as now coming from the - # layerindex - oe_core_l.summary = li['summary'] - oe_core_l.description = li['description'] - oe_core_l.vcs_web_url = li['vcs_web_url'] - oe_core_l.vcs_web_tree_base_url = \ - li['vcs_web_tree_base_url'] - oe_core_l.vcs_web_file_base_url = \ - li['vcs_web_file_base_url'] - - oe_core_l.save() - li_layer_id_to_toaster_layer_id[li['id']] = oe_core_l.pk - self.mini_progress("layers", i, total) - continue - - except Layer.DoesNotExist: - pass - try: - l, created = Layer.objects.get_or_create(name=li['name'], - vcs_url=li['vcs_url']) + l, created = Layer.objects.get_or_create(name=li['name']) l.up_date = li['updated'] - l.vcs_url = li['vcs_url'] - l.vcs_web_url = li['vcs_web_url'] - l.vcs_web_tree_base_url = li['vcs_web_tree_base_url'] - l.vcs_web_file_base_url = li['vcs_web_file_base_url'] l.summary = li['summary'] l.description = li['description'] + + if created: + l.vcs_url = li['vcs_url'] + l.vcs_web_url = li['vcs_web_url'] + l.vcs_web_tree_base_url = li['vcs_web_tree_base_url'] + l.vcs_web_file_base_url = li['vcs_web_file_base_url'] l.save() except Layer.MultipleObjectsReturned: logger.info("Skipped %s as we found multiple layers and "
@@ -211,12 +187,14 @@ class Command(NoArgsCommand): total = len(layerbranches_info) for i, lbi in enumerate(layerbranches_info): + # release as defined by toaster map to layerindex branch + release = li_branch_id_to_toaster_release[lbi['branch']] try: lv, created = Layer_Version.objects.get_or_create( - layer_source=LayerSource.TYPE_LAYERINDEX, layer=Layer.objects.get( - pk=li_layer_id_to_toaster_layer_id[lbi['layer']]) + pk=li_layer_id_to_toaster_layer_id[lbi['layer']]), + release=release ) except KeyError: logger.warning(
@@ -224,11 +202,12 @@ class Command(NoArgsCommand): lbi['layer']) continue - lv.release = li_branch_id_to_toaster_release[lbi['branch']] - lv.up_date = lbi['updated'] - lv.commit = lbi['actual_branch'] - lv.dirpath = lbi['vcs_subdir'] - lv.save() + if created: + lv.release = li_branch_id_to_toaster_release[lbi['branch']] + lv.up_date = lbi['updated'] + lv.commit = lbi['actual_branch'] + lv.dirpath = lbi['vcs_subdir'] + lv.save() li_layer_branch_id_to_toaster_lv_id[lbi['id']] =\ lv.pk
@@ -255,9 +234,8 @@ class Command(NoArgsCommand): layer_id = li_layer_id_to_toaster_layer_id[ldi['dependency']] dependlist[lv].append( - Layer_Version.objects.get( - layer_source=LayerSource.TYPE_LAYERINDEX, - layer__pk=layer_id)) + Layer_Version.objects.get(layer__pk=layer_id, + release=lv.release)) except Layer_Version.DoesNotExist: logger.warning("Cannot find layer version (ls:%s),"
Signature · 1 line
1.9.1
ohana. Did this get left behind or forgotten? It would be nice for toaster to be able to build from master again :),
-brian
an intel employee
Quoted 38 lines · brian avery
This patch adds master to the oe and poky fixtures so that a new project can be
based on morty or the master branch.It also has an fix for lsupdates to support the layers in fixtures definition.
-Brian
an intel employeeThe following changes since commit
065310e77ab4c8c914c53ff43d5e601ebf9468b5:toaster: settings set
ALLOWED_HOSTSto * in debug mode (2016-11-09
16:28:17 -0800)are available in the git repository at:
git://git.yoctoproject.org/poky-contribbavery/submit/toaster/mw-
masterproj-11-2016
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=
bavery/submit/toaster/mw-masterproj-11-2016Michael Wood (3):
toaster: settings fixture Set default release to master
toaster: orm/fixtures Add the master release and correct morty release
toaster: layerindex updater Take into account layers being predefinedlib/toaster/orm/fixtures/oe-core.xml | 23 ++++++- lib/toaster/orm/fixtures/poky.xml | 82 ++++++++++++++++++++++-- lib/toaster/orm/fixtures/settings.xml | 2 +- lib/toaster/orm/management/commands/lsupdates.py | 60 ++++++----------- 4 files changed, 116 insertions(+), 51 deletions(-)--
1.9.1
Quoted 2 lines · Brian Avery
ohana. Did this get left behind or forgotten? It would be nice for toaster to be able to build from master again :),
Perhaps glance at master-next next time. It has been in there a while, along with the datastore changes which I've been testing a bit more widely before merging.
Its all in master now.
Cheers,
Richard