-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Testing Infrastructure
-
Query Optimization
The evergreen/check_idl_compat.sh script is not suitable for local development. The inability to locally run the logic for the test_api_version_compatibility Evergreen task slows down development for Server engineers by requiring a new patch build to debug any error. Additionally, the evergreen/check_idl_compat.sh script as currently written makes strong assumptions about using a fresh mongodb/mongo checkout and can lead to surprising behavior when an enterprising Server engineer copies + adapts lines from the evergreen/check_idl_compat.sh script for local use. For example -
- The check_stable_api_commands_have_idl_definitions.py script calls os.walk(os.getcwd()). This causes .idl files created by the checkout_idl_files_from_past_releases.py script to additionally be listed and will likely error due to drift between the master branch and the last stable branch. A test suite ought to be self-contained such that it is possible to rerun without requiring manual intervention/cleanup.
- The checkout_idl_files_from_past_releases.py script calls shutil.rmtree() on the supplied directory. This is risky when the directory isn't guaranteed to only have ever been used for the purpose of temporarily storing .idl files from a prior server release.