MCPcopy Create free account
hub / github.com/apache/solr / run

Method run

dev-tools/scripts/validateChangelogs.py:968–1023  ·  view source on GitHub ↗

Run the complete validation.

(self)

Source from the content-addressed store, hash-verified

966 return report
967
968 def run(self) -> bool:
969 """Run the complete validation."""
970 print("\nStarting Solr changelog validation...\n")
971
972 try:
973 # Step 1: Check git status
974 if not self._run_validation_step(self.validate_git_status):
975 return False
976
977 # Step 2: Check if branches are up to date with remote (before discovery)
978 if not self._run_validation_step(self.validate_branches_up_to_date):
979 return False
980
981 # Step 3: Discover branches (uses remote or local branch list)
982 if not self._run_validation_step(self.discover_branches):
983 return False
984
985 # Step 3.5: Validate all discovered branches are in sync with remote
986 if not self._run_validation_step(self.validate_branches_in_sync):
987 return False
988
989 # Step 4: Load branch data
990 if not self._run_validation_step(self.load_branch_data):
991 return False
992
993 # Step 5: Validate versioned folders
994 self.validate_versioned_folders_identical()
995
996 # Step 6: Validate no released files in unreleased
997 self.validate_no_released_in_unreleased()
998
999 # Step 7: Detect duplicate issues (warnings, not errors) - only if enabled
1000 if self.check_duplicates:
1001 self.detect_duplicate_issues()
1002
1003 # Step 8: Analyze feature distribution
1004 analysis = self.analyze_feature_distribution()
1005
1006 # Step 9: Create temporary branch and generate changelog
1007 temp_branch = self.create_temp_branch_with_changelog(analysis)
1008 changelog_preview = None
1009
1010 if temp_branch:
1011 changelog_preview = self.generate_changelog_preview(temp_branch)
1012
1013 # Step 10: Generate and print report
1014 self.print_report(analysis, changelog_preview)
1015
1016 # Return success if no errors
1017 success = len(self.errors) == 0
1018
1019 return success
1020
1021 finally:
1022 # Always cleanup temp branch
1023 self.cleanup_temp_branch()
1024
1025 def _generate_json_report(self, analysis: Optional[Dict] = None) -> str:

Callers 1

mainFunction · 0.95

Tested by

no test coverage detected