From 026a3660da7c066d4e70b7edf4769eb358d38d37 Mon Sep 17 00:00:00 2001 From: Michael Yochpaz Date: Mon, 1 Sep 2025 14:06:11 +0300 Subject: [PATCH 1/2] fix: Avoid frequent writes to `graph.json` in a loop Before this change, we would write the `graph.json` over and over again for every single dependency that's added while the dependency graph is being created. This commit changes this behavior to only write to the file once, only when all dependencies have been already added. Signed-off-by: Michael Yochpaz --- src/fromager/bootstrapper.py | 1 - src/fromager/commands/bootstrap.py | 14 +++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/fromager/bootstrapper.py b/src/fromager/bootstrapper.py index 634d7a5d..ffdbf5c1 100644 --- a/src/fromager/bootstrapper.py +++ b/src/fromager/bootstrapper.py @@ -951,7 +951,6 @@ def _add_to_graph( download_url=download_url, pre_built=pbi.pre_built, ) - self.ctx.write_to_graph_to_file() def _sort_requirements( self, diff --git a/src/fromager/commands/bootstrap.py b/src/fromager/commands/bootstrap.py index 3ff0bce1..ad164987 100644 --- a/src/fromager/commands/bootstrap.py +++ b/src/fromager/commands/bootstrap.py @@ -179,11 +179,15 @@ def bootstrap( ) requirement_ctxvar.reset(token) - for req in to_build: - token = requirement_ctxvar.set(req) - bt.bootstrap(req, requirements_file.RequirementType.TOP_LEVEL) - progressbar.update() - requirement_ctxvar.reset(token) + try: + for req in to_build: + token = requirement_ctxvar.set(req) + bt.bootstrap(req, requirements_file.RequirementType.TOP_LEVEL) + progressbar.update() + requirement_ctxvar.reset(token) + + finally: + wkctx.write_to_graph_to_file() constraints_filename = wkctx.work_dir / "constraints.txt" if skip_constraints: From 2670fb776c66c115643e53681b9c850032204a9e Mon Sep 17 00:00:00 2001 From: Michael Yochpaz Date: Tue, 2 Sep 2025 12:06:57 +0300 Subject: [PATCH 2/2] Add `.idea` and `.vscode` directories to `.gitignore` Signed-off-by: Michael Yochpaz --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 5734a2a4..1021ba1e 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,6 @@ __pycache__/ /.mypy_cache/ .skip-coverage + +.vscode/ +.idea/