Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-flux-local for openSUSE:Factory checked in at 2025-07-27 16:26:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-flux-local (Old) and /work/SRC/openSUSE:Factory/.python-flux-local.new.13279 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-flux-local" Sun Jul 27 16:26:22 2025 rev:8 rq:1295687 version:7.7.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-flux-local/python-flux-local.changes 2025-07-24 18:55:23.590270704 +0200 +++ /work/SRC/openSUSE:Factory/.python-flux-local.new.13279/python-flux-local.changes 2025-07-27 16:26:26.526180891 +0200 @@ -1,0 +2,9 @@ +Fri Jul 25 06:48:09 UTC 2025 - Johannes Kastl <opensuse_buildserv...@ojkastl.de> + +- update to 7.7.0: + * Improve effectiveness of --skip-invalid-kustomization-paths for + more cases by @allenporter in #974 + * Add flag --skip-invalid-helm-release-paths to ignore invalid + external git repos by @allenporter in #975 + +------------------------------------------------------------------- Old: ---- flux_local-7.6.0.tar.gz New: ---- flux_local-7.7.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-flux-local.spec ++++++ --- /var/tmp/diff_new_pack.zTWeeR/_old 2025-07-27 16:26:27.290212424 +0200 +++ /var/tmp/diff_new_pack.zTWeeR/_new 2025-07-27 16:26:27.294212589 +0200 @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-flux-local -Version: 7.6.0 +Version: 7.7.0 Release: 0 Summary: Set of tools for managing a flux gitops repository License: Apache-2.0 ++++++ flux_local-7.6.0.tar.gz -> flux_local-7.7.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flux_local-7.6.0/PKG-INFO new/flux_local-7.7.0/PKG-INFO --- old/flux_local-7.6.0/PKG-INFO 2025-07-22 05:59:01.474551400 +0200 +++ new/flux_local-7.7.0/PKG-INFO 2025-07-25 07:20:53.507682300 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: flux_local -Version: 7.6.0 +Version: 7.7.0 Summary: flux-local is a set of tools and libraries for managing a local flux gitops repository focused on validation steps to help improve quality of commits, PRs, and general local testing. Author-email: Allen Porter <allen.por...@gmail.com> License-Expression: Apache-2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flux_local-7.6.0/flux_local/git_repo.py new/flux_local-7.7.0/flux_local/git_repo.py --- old/flux_local-7.6.0/flux_local/git_repo.py 2025-07-22 05:58:53.000000000 +0200 +++ new/flux_local-7.7.0/flux_local/git_repo.py 2025-07-25 07:20:49.000000000 +0200 @@ -606,7 +606,6 @@ builder: CachableBuilder, ) -> None: """Build helm objects for the Kustomization and update state.""" - root: Path = selector.path.root kustomization_selector: MetadataSelector = selector.kustomization helm_repo_selector: MetadataSelector = selector.helm_repo @@ -778,6 +777,14 @@ kustomization.name, kustomization.path, ) + if not await isdir(selector.path.root / kustomization.path): + if options.skip_kustomize_path_validation: + _LOGGER.debug( + "Skipping Kustomization '%s' since path does not exist: %s", + kustomization.namespaced_name, + selector.path.root / kustomization.path, + ) + continue if kustomization.postbuild_substitute_from: values.expand_postbuild_substitute_reference( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flux_local-7.6.0/flux_local/helm.py new/flux_local-7.7.0/flux_local/helm.py --- old/flux_local-7.6.0/flux_local/helm.py 2025-07-22 05:58:53.000000000 +0200 +++ new/flux_local-7.7.0/flux_local/helm.py 2025-07-25 07:20:49.000000000 +0200 @@ -43,6 +43,7 @@ from typing import Any import aiofiles +from aiofiles.ospath import exists import yaml from . import command @@ -223,6 +224,9 @@ registry_config: str | None = None """Value of the helm --registry-config flag.""" + skip_invalid_paths: bool = True + """Skip HelmReleases with invalid local paths.""" + @property def base_args(self) -> list[str]: """Helm template CLI arguments built from the options.""" @@ -314,6 +318,21 @@ args.extend(self._flags) await command.run(command.Command(args, exc=HelmException)) + async def is_invalid_local_path( + self, + release: HelmRelease, + ) -> bool: + """Check if the HelmRelease has an invalid GitRepository path.""" + repo = next( + iter([repo for repo in self._repos if repo.repo_name == release.repo_name]), + None, + ) + chart_name = _chart_name(release, repo) + if release.chart.repo_kind == GIT_REPOSITORY: + if not await exists(chart_name): + return True + return False + async def template( self, release: HelmRelease, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flux_local-7.6.0/flux_local/orchestrator/orchestrator.py new/flux_local-7.7.0/flux_local/orchestrator/orchestrator.py --- old/flux_local-7.6.0/flux_local/orchestrator/orchestrator.py 2025-07-22 05:58:53.000000000 +0200 +++ new/flux_local-7.7.0/flux_local/orchestrator/orchestrator.py 2025-07-25 07:20:49.000000000 +0200 @@ -209,10 +209,10 @@ return git_repos[0] if len(git_repos) > 1: - + names = [repo.name for repo in git_repos] raise FluxException( "Multiple GitRepository objects found, specify one with " - "'bootstrap_repo_name' option" + f"'bootstrap_repo_name' option: {names}" ) _LOGGER.info("No GitRepository found; creating a synthetic one") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flux_local-7.6.0/flux_local/tool/selector.py new/flux_local-7.7.0/flux_local/tool/selector.py --- old/flux_local-7.6.0/flux_local/tool/selector.py 2025-07-22 05:58:53.000000000 +0200 +++ new/flux_local-7.7.0/flux_local/tool/selector.py 2025-07-25 07:20:49.000000000 +0200 @@ -233,6 +233,13 @@ "--registry-config", help="Path to a helm registry config file", ) + args.add_argument( + "--skip-invalid-helm-release-paths", + type=bool, + default=True, + action=BooleanOptionalAction, + help="When true, skip helm releases with local paths that do not exist", + ) def build_helm_options(**kwargs) -> helm.Options: # type: ignore[no-untyped-def] @@ -248,6 +255,7 @@ kube_version=kwargs.get("kube_version"), api_versions=kwargs.get("api_versions"), registry_config=kwargs.get("registry_config"), + skip_invalid_paths=kwargs.get("skip_invalid_helm_release_paths", True), ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flux_local-7.6.0/flux_local/visitor.py new/flux_local-7.7.0/flux_local/visitor.py --- old/flux_local-7.6.0/flux_local/visitor.py 2025-07-22 05:58:53.000000000 +0200 +++ new/flux_local-7.7.0/flux_local/visitor.py 2025-07-25 07:20:49.000000000 +0200 @@ -279,14 +279,22 @@ if active_repos := self.active_repos: helm.add_repos(active_repos) await helm.update() - tasks = [ - inflate_release( - helm, - release, - visitor, - options, + tasks = [] + for release in self.releases: + if options.skip_invalid_paths and helm.is_invalid_local_path(release): + _LOGGER.info( + "Skipping HelmRelease %s with invalid path %s", + release.name, + release.chart.repo_full_name, + ) + continue + tasks.append( + inflate_release( + helm, + release, + visitor, + options, + ) ) - for release in self.releases - ] _LOGGER.debug("Waiting for inflate tasks to complete") await asyncio.gather(*tasks) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flux_local-7.6.0/flux_local.egg-info/PKG-INFO new/flux_local-7.7.0/flux_local.egg-info/PKG-INFO --- old/flux_local-7.6.0/flux_local.egg-info/PKG-INFO 2025-07-22 05:59:01.000000000 +0200 +++ new/flux_local-7.7.0/flux_local.egg-info/PKG-INFO 2025-07-25 07:20:53.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: flux_local -Version: 7.6.0 +Version: 7.7.0 Summary: flux-local is a set of tools and libraries for managing a local flux gitops repository focused on validation steps to help improve quality of commits, PRs, and general local testing. Author-email: Allen Porter <allen.por...@gmail.com> License-Expression: Apache-2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flux_local-7.6.0/pyproject.toml new/flux_local-7.7.0/pyproject.toml --- old/flux_local-7.6.0/pyproject.toml 2025-07-22 05:58:53.000000000 +0200 +++ new/flux_local-7.7.0/pyproject.toml 2025-07-25 07:20:49.000000000 +0200 @@ -4,7 +4,7 @@ [project] name = "flux_local" -version = "7.6.0" +version = "7.7.0" license = "Apache-2.0" license-files = ["LICENSE"] description = "flux-local is a set of tools and libraries for managing a local flux gitops repository focused on validation steps to help improve quality of commits, PRs, and general local testing."