GRM-37: Smart CI and release skipping: don't release or run molecule when only workflow files change #30

Merged
emil merged 0 commits from GRM-37-fix-script-split into master 2026-06-21 20:44:40 +00:00
Owner

Problem

The release workflow failed with ModuleNotFoundError because release.py imported classify_changes from scripts.classify_changes but PYTHONPATH=src didn't include the repo root. Also, user-facing dev tools were mixed with CI/CD automation scripts in the same directory.

Solution

  1. Split scripts: Moved 12 CI/CD automation scripts from scripts/ to scripts/ci/. Dev tools (check_test_speed, configure_repo, install_checkmake, setup.sh, molecule_all.sh) stay in scripts/.

  2. Fix PYTHONPATH: All workflow YAMLs now reference scripts/ci/ paths. The import in release.py updated to scripts.ci.classify_changes.

  3. Improve classify_changes.py: Now uses safe-by-default allowlist strategy — any file NOT in the explicit workflow-only list is treated as user-facing. This prevents new file types from accidentally skipping releases.

  4. Updated all references: workflow YAMLs, pre-commit config, Makefile, pyproject.toml, tests, AGENTS.md, docs.

Tests

  • 489 tests pass, 100% coverage maintained
  • New tests for safe-by-default classification logic
  • All imports and patch paths updated

Closes GRM-37

## Problem The release workflow failed with ModuleNotFoundError because release.py imported classify_changes from scripts.classify_changes but PYTHONPATH=src didn't include the repo root. Also, user-facing dev tools were mixed with CI/CD automation scripts in the same directory. ## Solution 1. **Split scripts**: Moved 12 CI/CD automation scripts from scripts/ to scripts/ci/. Dev tools (check_test_speed, configure_repo, install_checkmake, setup.sh, molecule_all.sh) stay in scripts/. 2. **Fix PYTHONPATH**: All workflow YAMLs now reference scripts/ci/ paths. The import in release.py updated to scripts.ci.classify_changes. 3. **Improve classify_changes.py**: Now uses safe-by-default allowlist strategy — any file NOT in the explicit workflow-only list is treated as user-facing. This prevents new file types from accidentally skipping releases. 4. **Updated all references**: workflow YAMLs, pre-commit config, Makefile, pyproject.toml, tests, AGENTS.md, docs. ### Tests - 489 tests pass, 100% coverage maintained - New tests for safe-by-default classification logic - All imports and patch paths updated Closes GRM-37
emil merged commit 780b8e8b39 into master 2026-06-21 20:44:40 +00:00
emil deleted branch GRM-37-fix-script-split 2026-06-21 20:44:40 +00:00
emil changed title from GRM-37: Split CI scripts into scripts/ci/, fix release PYTHONPATH to GRM-37: Smart CI and release skipping: don't release or run molecule when only workflow files change 2026-06-21 21:22:04 +00:00
Sign in to join this conversation.