Execute version comparison and release-date.txt writing.
(self)
| 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/.""" |
no test coverage detected