From 119551bb65eaf8d47199dcd18a8f0ea0a61163b1 Mon Sep 17 00:00:00 2001 From: Saipuneet Munikuntla Date: Wed, 25 Mar 2026 15:38:12 +0530 Subject: [PATCH 1/6] Pre commit Hook changes Signed-off-by: Saipuneet Munikuntla --- sdk/python/feast/repo_operations.py | 1 + 1 file changed, 1 insertion(+) diff --git a/sdk/python/feast/repo_operations.py b/sdk/python/feast/repo_operations.py index 68e8be2cb3e..6579d444d16 100644 --- a/sdk/python/feast/repo_operations.py +++ b/sdk/python/feast/repo_operations.py @@ -95,6 +95,7 @@ def get_repo_files(repo_root: Path) -> List[Path]: ".pytest_cache", "__pycache__", ".ipynb_checkpoints", + "**/*.ipynb", ] ignore_files = get_ignore_files(repo_root, ignore_paths) From 995e2db93bec8c2fd4bd4037017fc7ed2c4d970d Mon Sep 17 00:00:00 2001 From: Saipuneet Munikuntla Date: Thu, 26 Mar 2026 23:40:02 +0530 Subject: [PATCH 2/6] Filtering out pytest_cache, __pycache__, and ipynb_checkpoints in all subdirectories during feast apply Signed-off-by: Saipuneet Munikuntla --- sdk/python/feast/repo_operations.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sdk/python/feast/repo_operations.py b/sdk/python/feast/repo_operations.py index 6579d444d16..20854c9edd0 100644 --- a/sdk/python/feast/repo_operations.py +++ b/sdk/python/feast/repo_operations.py @@ -92,10 +92,10 @@ def get_repo_files(repo_root: Path) -> List[Path]: ".git", ".feastignore", ".venv", - ".pytest_cache", - "__pycache__", - ".ipynb_checkpoints", "**/*.ipynb", + "**/*.ipynb_checkpoints", + "**/*.pytest_cache", + "**/*__pycache__", ] ignore_files = get_ignore_files(repo_root, ignore_paths) From 6bd2a252ec0117ab9aa01d7881c224c7d6a92095 Mon Sep 17 00:00:00 2001 From: Saipuneet Munikuntla Date: Thu, 26 Mar 2026 23:46:56 +0530 Subject: [PATCH 3/6] removing **/*.ipynb as its redundant Signed-off-by: Saipuneet Munikuntla --- sdk/python/feast/repo_operations.py | 1 - 1 file changed, 1 deletion(-) diff --git a/sdk/python/feast/repo_operations.py b/sdk/python/feast/repo_operations.py index 20854c9edd0..45da167dee2 100644 --- a/sdk/python/feast/repo_operations.py +++ b/sdk/python/feast/repo_operations.py @@ -92,7 +92,6 @@ def get_repo_files(repo_root: Path) -> List[Path]: ".git", ".feastignore", ".venv", - "**/*.ipynb", "**/*.ipynb_checkpoints", "**/*.pytest_cache", "**/*__pycache__", From 452ed86c2839ff8a80f67f256e69d4f86e8e9c47 Mon Sep 17 00:00:00 2001 From: Saipuneet Munikuntla Date: Thu, 26 Mar 2026 23:56:14 +0530 Subject: [PATCH 4/6] Removing broad glob pattern and only keeping exact match of directory name inside subdirectories Signed-off-by: Saipuneet Munikuntla --- sdk/python/feast/repo_operations.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sdk/python/feast/repo_operations.py b/sdk/python/feast/repo_operations.py index 45da167dee2..28fe86602ad 100644 --- a/sdk/python/feast/repo_operations.py +++ b/sdk/python/feast/repo_operations.py @@ -92,9 +92,9 @@ def get_repo_files(repo_root: Path) -> List[Path]: ".git", ".feastignore", ".venv", - "**/*.ipynb_checkpoints", - "**/*.pytest_cache", - "**/*__pycache__", + "**/.ipynb_checkpoints", + "**/.pytest_cache", + "**/__pycache__", ] ignore_files = get_ignore_files(repo_root, ignore_paths) From 7064d1eb68261d910564a7a3acb3362c52753cf5 Mon Sep 17 00:00:00 2001 From: Saipuneet Munikuntla Date: Fri, 27 Mar 2026 00:14:35 +0530 Subject: [PATCH 5/6] Adding tests to validated if checkpoints are being picked up in subdirectories Signed-off-by: Saipuneet Munikuntla --- .../unit/infra/scaffolding/test_repo_operations.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sdk/python/tests/unit/infra/scaffolding/test_repo_operations.py b/sdk/python/tests/unit/infra/scaffolding/test_repo_operations.py index 672c8f43d96..ddd62dab846 100644 --- a/sdk/python/tests/unit/infra/scaffolding/test_repo_operations.py +++ b/sdk/python/tests/unit/infra/scaffolding/test_repo_operations.py @@ -28,15 +28,27 @@ def feature_repo(feastignore_contents: Optional[str]): (repo_root / "bar").mkdir() (repo_root / "bar/subdir1").mkdir() (repo_root / "bar/subdir1/subdir2").mkdir() + (repo_root / "foo/__pycache__").mkdir() + (repo_root / "foo/.pytest_cache").mkdir() + (repo_root / "foo/.ipynb_checkpoints").mkdir() + (repo_root / "bar/subdir1/.ipynb_checkpoints").mkdir() + (repo_root / "bar/subdir1/subdir2/.ipynb_checkpoints").mkdir() (repo_root / "a.py").touch() (repo_root / ".ipynb_checkpoints/test-checkpoint.py").touch() (repo_root / "foo/b.py").touch() + (repo_root / "foo/__pycache__/b.cpython.pyc").touch() + (repo_root / "foo/.pytest_cache/test-README.md").touch() + (repo_root / "foo/.ipynb_checkpoints/foo-checkpoint.py").touch() (repo_root / "foo1/c.py").touch() (repo_root / "foo1/bar/d.py").touch() (repo_root / "bar/e.py").touch() (repo_root / "bar/subdir1/f.py").touch() + (repo_root / "bar/subdir1/.ipynb_checkpoints/subdir1-checkpoint.py").touch() (repo_root / "bar/subdir1/subdir2/g.py").touch() + ( + repo_root / "bar/subdir1/subdir2/.ipynb_checkpoints/nested-checkpoint.py" + ).touch() if feastignore_contents: with open(repo_root / ".feastignore", "w") as f: From 4b20be8de2ac3d57b13491a0ee79a7bea98782eb Mon Sep 17 00:00:00 2001 From: Saipuneet Munikuntla Date: Fri, 27 Mar 2026 12:30:44 +0530 Subject: [PATCH 6/6] Fixing Tests To Incorporate New Changes Signed-off-by: Saipuneet Munikuntla --- .../infra/scaffolding/test_repo_operations.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/sdk/python/tests/unit/infra/scaffolding/test_repo_operations.py b/sdk/python/tests/unit/infra/scaffolding/test_repo_operations.py index ddd62dab846..b31aee51c1e 100644 --- a/sdk/python/tests/unit/infra/scaffolding/test_repo_operations.py +++ b/sdk/python/tests/unit/infra/scaffolding/test_repo_operations.py @@ -92,6 +92,7 @@ def test_feastignore_no_stars(): { (repo_root / "foo/b.py").resolve(), (repo_root / "bar/subdir1/f.py").resolve(), + (repo_root / "foo/.ipynb_checkpoints/foo-checkpoint.py").resolve(), } ) assertpy.assert_that(get_repo_files(repo_root)).is_equal_to( @@ -122,6 +123,13 @@ def test_feastignore_with_stars(): { (repo_root / "foo/b.py").resolve(), (repo_root / "bar/subdir1/f.py").resolve(), + ( + repo_root + / "bar/subdir1/subdir2/.ipynb_checkpoints/nested-checkpoint.py" + ).resolve(), + ( + repo_root / "bar/subdir1/.ipynb_checkpoints/subdir1-checkpoint.py" + ).resolve(), (repo_root / "bar/e.py").resolve(), (repo_root / "bar/subdir1/f.py").resolve(), (repo_root / "bar/subdir1/subdir2/g.py").resolve(), @@ -147,6 +155,13 @@ def test_feastignore_with_stars2(): assertpy.assert_that(get_ignore_files(repo_root, ignore_paths)).is_equal_to( { (repo_root / "bar/subdir1/f.py").resolve(), + ( + repo_root + / "bar/subdir1/subdir2/.ipynb_checkpoints/nested-checkpoint.py" + ).resolve(), + ( + repo_root / "bar/subdir1/.ipynb_checkpoints/subdir1-checkpoint.py" + ).resolve(), (repo_root / "bar/e.py").resolve(), (repo_root / "bar/subdir1/f.py").resolve(), (repo_root / "bar/subdir1/subdir2/g.py").resolve(),