[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