[yocto-patches] [layerindex-web][PATCH 1/1] layerindex: Use settings.DEFAULT_BRANCH instead of hardcoded branch name

Sandeep Gundlupet Raju <[email protected]>
Newsgroups org.yoctoproject.lists.yocto-patches
Message-ID <[email protected]>
Replace all hardcoded branch name references with settings.DEFAULT_BRANCH
so the default branch can be changed from a single location in settings.py
without modifying individual source files. DEFAULT_BRANCH defaults to 'master'.

- settings.py: add DEFAULT_BRANCH = 'master'
- docker/settings.py: add DEFAULT_BRANCH = 'master'
- layerindex/urls.py: use _DEFAULT_BRANCH from settings
- layerindex/views.py: use settings.DEFAULT_BRANCH (10 occurrences)
- layerindex/models.py: add import settings; use settings.DEFAULT_BRANCH
- layerindex/update.py: use settings.DEFAULT_BRANCH
- layerindex/update_layer.py: resolve branch from settings.DEFAULT_BRANCH
- layerindex/bulkchange.py: use settings.DEFAULT_BRANCH
- layerindex/tools/import_layer.py: use settings.DEFAULT_BRANCH
- layerindex/tools/import_wiki_layers.py: add import settings; use DEFAULT_BRANCH
- layerindex/tools/import_classic_wiki.py: add import settings; use DEFAULT_BRANCH
- layerindex/tools/update_classic_status.py: add import settings; use DEFAULT_BRANCH
- rrs/tools/historytool.py: use settings.DEFAULT_BRANCH

AI-Generated: GitHub Copilot (Claude Sonnet 4.6)

Signed-off-by: Sandeep Gundlupet Raju <[email protected]>
---
 docker/settings.py                        |  2 ++
 layerindex/bulkchange.py                  |  2 +-
 layerindex/models.py                      |  5 +++--
 layerindex/tools/import_classic_wiki.py   |  3 ++-
 layerindex/tools/import_layer.py          |  4 ++--
 layerindex/tools/import_wiki_layers.py    |  3 ++-
 layerindex/tools/update_classic_status.py |  7 ++++---
 layerindex/update.py                      |  2 +-
 layerindex/update_layer.py                |  4 +++-
 layerindex/urls.py                        | 16 +++++++++-------
 layerindex/views.py                       | 20 ++++++++++----------
 rrs/tools/historytool.py                  |  4 ++--
 settings.py                               |  3 +++
 13 files changed, 44 insertions(+), 31 deletions(-)

diff --git a/docker/settings.py b/docker/settings.py
index e3ae0fd..85b7efd 100644
--- a/docker/settings.py
+++ b/docker/settings.py
@@ -315,3 +315,5 @@ SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
 SECURE_BROWSER_XSS_FILTER = True
 SECURE_CONTENT_TYPE_NOSNIFF = True
 
+# Default branch name used across the layer index
+DEFAULT_BRANCH = 'master'
diff --git a/layerindex/bulkchange.py b/layerindex/bulkchange.py
index 0ec4058..11cd7a6 100644
--- a/layerindex/bulkchange.py
+++ b/layerindex/bulkchange.py
@@ -98,7 +98,7 @@ def main():
     utils.setup_django()
     import settings
 
-    branch = utils.get_branch('master')
+    branch = utils.get_branch(settings.DEFAULT_BRANCH)
     fetchdir = settings.LAYER_FETCH_DIR
 
     import layerindex.models import LayerItem
diff --git a/layerindex/models.py b/layerindex/models.py
index 864264b..7a09962 100644
--- a/layerindex/models.py
+++ b/layerindex/models.py
@@ -18,6 +18,7 @@ import os.path
 import re
 import posixpath
 import codecs
+import settings
 
 from . import utils
 
@@ -190,7 +191,7 @@ class LayerItem(models.Model):
         return fetch_dir
 
     def get_absolute_url(self):
-        return reverse('layer_item', args=('master',self.name));
+        return reverse('layer_item', args=(settings.DEFAULT_BRANCH,self.name));
 
     def __str__(self):
         return self.name
@@ -672,7 +673,7 @@ class ClassicRecipe(Recipe):
         ('E', 'Equivalent functionality'),
         ('D', 'Direct match'),
     ]
-    cover_layerbranch = models.ForeignKey(LayerBranch, verbose_name='Covering layer', blank=True, null=True, limit_choices_to = {'branch__name': 'master'}, on_delete=models.SET_NULL)
+    cover_layerbranch = models.ForeignKey(LayerBranch, verbose_name='Covering layer', blank=True, null=True, limit_choices_to = {'branch__name': settings.DEFAULT_BRANCH}, on_delete=models.SET_NULL)
     cover_pn = models.CharField('Covering recipe', max_length=100, blank=True)
     cover_status = models.CharField(max_length=1, choices=COVER_STATUS_CHOICES, default='U')
     cover_verified = models.BooleanField(default=False)
diff --git a/layerindex/tools/import_classic_wiki.py b/layerindex/tools/import_classic_wiki.py
index bd7ab9a..e8c4c8c 100755
--- a/layerindex/tools/import_classic_wiki.py
+++ b/layerindex/tools/import_classic_wiki.py
@@ -84,6 +84,7 @@ def main():
     options, args = parser.parse_args(sys.argv)
 
     utils.setup_django()
+    import settings
     from layerindex.models import LayerItem, LayerBranch, Recipe, ClassicRecipe
     from django.db import transaction
 
@@ -178,7 +179,7 @@ def main():
                             res = list(LayerItem.objects.filter(name=newlayer)[:1])
                             if res:
                                 newlayeritem = res[0]
-                                recipe.cover_layerbranch = newlayeritem.get_layerbranch('master')
+                                recipe.cover_layerbranch = newlayeritem.get_layerbranch(settings.DEFAULT_BRANCH)
                             else:
                                 logger.info('Replacement layer "%s" for %s could not be found' % (newlayer, pn))
                         recipe.cover_pn = newpn
diff --git a/layerindex/tools/import_layer.py b/layerindex/tools/import_layer.py
index 79c679e..cdbd40d 100755
--- a/layerindex/tools/import_layer.py
+++ b/layerindex/tools/import_layer.py
@@ -284,7 +284,7 @@ def main():
     if not os.path.exists(fetchdir):
         os.makedirs(fetchdir)
 
-    master_branch = utils.get_branch('master')
+    master_branch = utils.get_branch(settings.DEFAULT_BRANCH)
     core_layer = None
     try:
         with transaction.atomic():
@@ -311,7 +311,7 @@ def main():
                 logger.error("Fetch failed: %s" % str(e))
                 sys.exit(1)
 
-            actual_branch = 'master'
+            actual_branch = settings.DEFAULT_BRANCH
             if (options.actual_branch):
                 actual_branch = options.actual_branch
             try:
diff --git a/layerindex/tools/import_wiki_layers.py b/layerindex/tools/import_wiki_layers.py
index 061f6df..f287bf6 100755
--- a/layerindex/tools/import_wiki_layers.py
+++ b/layerindex/tools/import_wiki_layers.py
@@ -35,6 +35,7 @@ def main():
     options, args = parser.parse_args(sys.argv)
 
     utils.setup_django()
+    import settings
     from layerindex.models import LayerItem, LayerBranch, LayerDependency
     from django.db import transaction
 
@@ -49,7 +50,7 @@ def main():
         nowiki_re = re.compile(r'</?nowiki>')
         link_re = re.compile(r'\[(http.*) +link\]')
         readme_re = re.compile(r';f=[a-zA-Z0-9/-]*README;')
-        master_branch = utils.get_branch('master')
+        master_branch = utils.get_branch(settings.DEFAULT_BRANCH)
         core_layer = None
         with transaction.atomic():
             for line in data.splitlines():
diff --git a/layerindex/tools/update_classic_status.py b/layerindex/tools/update_classic_status.py
index aa5d2ef..c8c373b 100755
--- a/layerindex/tools/update_classic_status.py
+++ b/layerindex/tools/update_classic_status.py
@@ -83,6 +83,7 @@ def main():
     args = parser.parse_args()
 
     utils.setup_django()
+    import settings
     from layerindex.models import LayerItem, LayerBranch, Recipe, ClassicRecipe, Update, ComparisonRecipeUpdate
     from django.db import transaction
 
@@ -121,7 +122,7 @@ def main():
     try:
         with transaction.atomic():
             def recipe_pn_query(pn):
-                return Recipe.objects.filter(layerbranch__branch__name='master').filter(pn=pn).order_by('-layerbranch__layer__index_preference')
+                return Recipe.objects.filter(layerbranch__branch__name=settings.DEFAULT_BRANCH).filter(pn=pn).order_by('-layerbranch__layer__index_preference')
 
             if args.import_data:
                 recipequery = ClassicRecipe.objects.filter(layerbranch=layerbranch)
@@ -141,9 +142,9 @@ def main():
                         orig_layerbranch = recipe.cover_layerbranch
                         recipe.cover_layerbranch = layerbranches.get(cover_layer, None)
                         if recipe.cover_layerbranch is None:
-                            recipe.cover_layerbranch = LayerBranch.objects.filter(branch__name='master', layer__name=cover_layer).first()
+                            recipe.cover_layerbranch = LayerBranch.objects.filter(branch__name=settings.DEFAULT_BRANCH, layer__name=cover_layer).first()
                             if recipe.cover_layerbranch is None:
-                                logger.warning('Could not find cover layer %s in master branch' % cover_layer)
+                                logger.warning('Could not find cover layer %s in %s branch' % (cover_layer, settings.DEFAULT_BRANCH))
                             else:
                                 layerbranches[cover_layer] = recipe.cover_layerbranch
                         if orig_layerbranch != recipe.cover_layerbranch:
diff --git a/layerindex/update.py b/layerindex/update.py
index df3939f..788daee 100755
--- a/layerindex/update.py
+++ b/layerindex/update.py
@@ -333,7 +333,7 @@ def main():
 
             # Get a safe bitbake branch to call into from this script (used later on)
             safe_bitbake_branch = 'origin/master'
-            master_branch = Branch.objects.filter(name='master').first()
+            master_branch = Branch.objects.filter(name=settings.DEFAULT_BRANCH).first()
             if master_branch and master_branch.bitbake_branch:
                 safe_bitbake_branch = 'origin/' + master_branch.bitbake_branch
 
diff --git a/layerindex/update_layer.py b/layerindex/update_layer.py
index 33c5cfb..6248f78 100644
--- a/layerindex/update_layer.py
+++ b/layerindex/update_layer.py
@@ -250,7 +250,7 @@ def main():
 
     parser.add_option("-b", "--branch",
             help = "Specify branch to update",
-            action="store", dest="branch", default='master')
+            action="store", dest="branch", default='')
     parser.add_option("-l", "--layer",
             help = "Layer to update",
             action="store", dest="layer")
@@ -304,6 +304,8 @@ def main():
 
     logger.setLevel(options.loglevel)
 
+    if not options.branch:
+        options.branch = settings.DEFAULT_BRANCH
     branch = utils.get_branch(options.branch)
     if not branch:
         logger.error("Specified branch %s is not valid" % options.branch)
diff --git a/layerindex/urls.py b/layerindex/urls.py
index 51a832d..e7b0531 100644
--- a/layerindex/urls.py
+++ b/layerindex/urls.py
@@ -20,6 +20,8 @@ from layerindex.views import LayerListView, LayerReviewListView, LayerReviewDeta
 from layerindex.models import LayerItem, Recipe, RecipeChangeset
 from rest_framework import routers
 from . import restviews
+import settings as _settings
+_DEFAULT_BRANCH = getattr(_settings, 'DEFAULT_BRANCH', 'master')
 
 router = routers.DefaultRouter()
 router.register(r'branches', restviews.BranchViewSet)
@@ -39,23 +41,23 @@ router.register(r'incFiles', restviews.IncFileViewSet)
 
 urlpatterns = [
     re_path(r'^$',
-        RedirectView.as_view(url=reverse_lazy('layer_list', args=('master',)), permanent=False),
+        RedirectView.as_view(url=reverse_lazy('layer_list', args=(_DEFAULT_BRANCH,)), permanent=False),
         name='frontpage'),
 
     re_path(r'^api/', include(router.urls)),
 
     re_path(r'^layers/$',
-        RedirectView.as_view(url=reverse_lazy('layer_list', args=('master',)), permanent=False)),
+        RedirectView.as_view(url=reverse_lazy('layer_list', args=(_DEFAULT_BRANCH,)), permanent=False)),
     re_path(r'^layer/(?P<slug>[-\.\w]+)/$',
-        RedirectParamsView.as_view(permanent=False), {'redirect_name': 'layer_item', 'branch': 'master'}),
+        RedirectParamsView.as_view(permanent=False), {'redirect_name': 'layer_item', 'branch': _DEFAULT_BRANCH}),
     re_path(r'^recipes/$',
-        RedirectView.as_view(url=reverse_lazy('recipe_search', args=('master',)), permanent=False)),
+        RedirectView.as_view(url=reverse_lazy('recipe_search', args=(_DEFAULT_BRANCH,)), permanent=False)),
     re_path(r'^machines/$',
-        RedirectView.as_view(url=reverse_lazy('machine_search', args=('master',)), permanent=False)),
+        RedirectView.as_view(url=reverse_lazy('machine_search', args=(_DEFAULT_BRANCH,)), permanent=False)),
     re_path(r'^distros/$',
-        RedirectView.as_view(url=reverse_lazy('distro_search', args=('master',)), permanent=False)),
+        RedirectView.as_view(url=reverse_lazy('distro_search', args=(_DEFAULT_BRANCH,)), permanent=False)),
     re_path(r'^classes/$',
-        RedirectView.as_view(url=reverse_lazy('class_search', args=('master',)), permanent=False)),
+        RedirectView.as_view(url=reverse_lazy('class_search', args=(_DEFAULT_BRANCH,)), permanent=False)),
     re_path(r'^submit/$', edit_layer_view, {'template_name': 'layerindex/submitlayer.html'}, name="submit_layer"),
     re_path(r'^submit/thanks/$',
         TemplateView.as_view(
diff --git a/layerindex/views.py b/layerindex/views.py
index 84750f7..d3d8181 100644
--- a/layerindex/views.py
+++ b/layerindex/views.py
@@ -114,7 +114,7 @@ def delete_layer_view(request, template_name, slug):
         raise PermissionDenied
     if request.method == 'POST':
         layeritem.delete()
-        return HttpResponseRedirect(reverse('layer_list', args=('master',)))
+        return HttpResponseRedirect(reverse('layer_list', args=(settings.DEFAULT_BRANCH,)))
     else:
         return render(request, template_name, {
             'object': layeritem,
@@ -122,7 +122,7 @@ def delete_layer_view(request, template_name, slug):
             'cancel_url': layeritem.get_absolute_url()
         })
 
-def update_layer_view(request, template_name, branch='master', slug=None):
+def update_layer_view(request, template_name, branch=settings.DEFAULT_BRANCH, slug=None):
     if not (request.user.is_authenticated and request.user.is_staff):
         raise PermissionDenied
     return_url = None
@@ -157,7 +157,7 @@ def update_layer_view(request, template_name, branch='master', slug=None):
 
     return HttpResponseRedirect(reverse_lazy('task_status', kwargs={'task_id': task_id}))
 
-def edit_layer_view(request, template_name, branch='master', slug=None):
+def edit_layer_view(request, template_name, branch=settings.DEFAULT_BRANCH, slug=None):
     return_url = None
     branchobj = Branch.objects.filter(name=branch)[:1].get()
     if slug:
@@ -444,7 +444,7 @@ class LayerReviewListView(ListView):
         return super(LayerReviewListView, self).dispatch(request, *args, **kwargs)
 
     def get_queryset(self):
-        return LayerBranch.objects.filter(branch__name='master').filter(layer__status='N').order_by('layer__name')
+        return LayerBranch.objects.filter(branch__name=settings.DEFAULT_BRANCH).filter(layer__status='N').order_by('layer__name')
 
 class LayerDetailView(DetailView):
     model = LayerItem
@@ -492,7 +492,7 @@ class LayerReviewDetailView(LayerDetailView):
         return super(LayerReviewDetailView, self).dispatch(request, *args, **kwargs)
 
     def get_context_data(self, **kwargs):
-        self.kwargs['branch'] = 'master'
+        self.kwargs['branch'] = settings.DEFAULT_BRANCH
         context = super(LayerReviewDetailView, self).get_context_data(**kwargs)
         return context
 
@@ -738,7 +738,7 @@ class AdvancedRecipeSearchView(ListView):
                 query = Q(**{"%s__icontains" % field: value})
             else:
                 query = Q(**{"%s" % field: value})
-            queryset = Recipe.objects.filter(layerbranch__branch__name='master')
+            queryset = Recipe.objects.filter(layerbranch__branch__name=settings.DEFAULT_BRANCH)
             layer = self.request.GET.get('layer', '')
             if layer:
                 queryset = queryset.filter(layerbranch__layer=layer)
@@ -825,7 +825,7 @@ class BulkChangeSearchView(AdvancedRecipeSearchView):
     def get_context_data(self, **kwargs):
         context = super(BulkChangeSearchView, self).get_context_data(**kwargs)
         context['changeset'] = self.changeset
-        context['current_branch'] = 'master'
+        context['current_branch'] = settings.DEFAULT_BRANCH
         return context
 
 
@@ -1341,7 +1341,7 @@ class ClassicRecipeSearchView(RecipeSearchView):
             filtered = True
         qs, filtered = self.search_recipe_query(init_qs, query_string, preferred=False)
         if qreversed:
-            init_rqs = Recipe.objects.filter(layerbranch__branch__name='master')
+            init_rqs = Recipe.objects.filter(layerbranch__branch__name=settings.DEFAULT_BRANCH)
             if layer_ids:
                 init_rqs = init_rqs.filter(layerbranch__layer__id__in=layer_ids)
             excludeclasses_param = self.request.GET.get('excludeclasses', '')
@@ -1735,7 +1735,7 @@ class ComparisonRecipeSelectView(ClassicRecipeSearchView):
         return True
 
     def get_context_data(self, **kwargs):
-        self.kwargs['branch'] = 'master'
+        self.kwargs['branch'] = settings.DEFAULT_BRANCH
         context = super(ComparisonRecipeSelectView, self).get_context_data(**kwargs)
         recipe = get_object_or_404(ClassicRecipe, pk=self.kwargs['pk'])
         context['select_for'] = recipe
@@ -1761,7 +1761,7 @@ class ComparisonRecipeSelectView(ClassicRecipeSearchView):
             layer_ids = [int(i) for i in selectedlayers_param.split(',')]
         else:
             layer_ids = []
-        init_qs = Recipe.objects.filter(layerbranch__branch__name='master')
+        init_qs = Recipe.objects.filter(layerbranch__branch__name=settings.DEFAULT_BRANCH)
         if layer_ids:
             init_qs = init_qs.filter(layerbranch__layer__in=layer_ids)
         qs, _ = self.search_recipe_query(init_qs, query_string, preferred=False)
diff --git a/rrs/tools/historytool.py b/rrs/tools/historytool.py
index 9f03ade..92e4b04 100755
--- a/rrs/tools/historytool.py
+++ b/rrs/tools/historytool.py
@@ -77,7 +77,7 @@ def rrs_import(args):
     if not core_layer:
         logger.error('Unable to find core layer %s' % settings.CORE_LAYER_NAME)
         return 1
-    core_layerbranch = core_layer.get_layerbranch('master')
+    core_layerbranch = core_layer.get_layerbranch(settings.DEFAULT_BRANCH)
     if not core_layerbranch:
         logger.error('Unable to find branch master of layer %s' % core_layerbranch.name)
         return 1
@@ -130,7 +130,7 @@ def rrs_remove_duplicates(args):
     if not core_layer:
         logger.error('Unable to find core layer %s' % settings.CORE_LAYER_NAME)
         return 1
-    core_layerbranch = core_layer.get_layerbranch('master')
+    core_layerbranch = core_layer.get_layerbranch(settings.DEFAULT_BRANCH)
     if not core_layerbranch:
         logger.error('Unable to find branch master of layer %s' % core_layerbranch.name)
         return 1
diff --git a/settings.py b/settings.py
index 94b3dd1..08004cb 100644
--- a/settings.py
+++ b/settings.py
@@ -299,3 +299,6 @@ TASK_LOG_DIR = "/tmp/layerindex-task-logs"
 
 # Full path to directory where rrs tools stores logs
 TOOLS_LOG_DIR = ""
+
+# Default branch name used across the layer index
+DEFAULT_BRANCH = 'master'
-- 
2.43.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.