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

Method run

dev-tools/scripts/changes2logchange.py:705–735  ·  view source on GitHub ↗

Execute version comparison and release-date.txt writing.

(self)

Source from the content-addressed store, hash-verified

703 self.version_dates[normalized] = date
704
705 def run(self):
706 """Execute version comparison and release-date.txt writing."""
707 print("Parsing CHANGES.txt for versions...")
708 self.parser.parse()
709
710 # Extract versions from CHANGES.txt
711 changes_versions = set(vs.version for vs in self.parser.versions)
712 print(f"Found {len(changes_versions)} versions in CHANGES.txt")
713
714 # Get existing version folders
715 existing_folders = self.get_existing_version_folders()
716 print(f"Found {len(existing_folders)} existing version folders in changelog/")
717
718 # Get versions from solr.json (which is what ReleaseDate fetches)
719 solr_json_versions = set(self.version_dates.keys())
720 print(f"Found {len(solr_json_versions)} versions in solr.json\n")
721
722 # Build normalized version mappings for matching (supports semver like 3.1 == 3.1.0)
723 changes_normalized = {self._normalize_version(v): v for v in changes_versions}
724 existing_normalized = {self._normalize_version(v): v for v in existing_folders}
725 solr_normalized = {self._normalize_version(v): v for v in solr_json_versions}
726
727 # Combine all normalized versions
728 all_normalized = sorted(set(changes_normalized.keys()) | set(solr_normalized.keys()) | set(existing_normalized.keys()),
729 key=self._version_sort_key)
730
731 # Print comparison report
732 self._print_comparison_report(all_normalized, changes_normalized, solr_normalized, existing_normalized)
733
734 # Write release-date.txt for existing folders
735 self._write_release_dates(existing_normalized)
736
737 def get_existing_version_folders(self) -> set:
738 """Get all existing vX.Y.Z folders in changelog/."""

Callers 1

mainFunction · 0.95

Calls 7

_normalize_versionMethod · 0.95
_write_release_datesMethod · 0.95
setFunction · 0.50
parseMethod · 0.45
keysMethod · 0.45

Tested by

no test coverage detected