javapackages-tools/0003-Reproducible-exclusions-order-in-maven-metadata.patch

53 lines
2.0 KiB
Diff

From 66ba33a8c28497e01eddcb0cd17fbe324674eabc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
Date: Mon, 11 Sep 2023 18:43:28 +0200
Subject: [PATCH 3/3] Reproducible exclusions order in maven metadata
---
python/javapackages/metadata/dependency.py | 4 ++--
python/javapackages/metadata/exclusion.py | 9 +++++++++
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/python/javapackages/metadata/dependency.py b/python/javapackages/metadata/dependency.py
index 1709e1fb..5931134d 100644
--- a/python/javapackages/metadata/dependency.py
+++ b/python/javapackages/metadata/dependency.py
@@ -46,7 +46,7 @@ class MetadataDependency(ObjectBinding):
defaults = {'extension': 'jar',
'requestedVersion': 'SYSTEM'}
types = {'optional': str, # todo bool
- 'exclusions': set([MetadataExclusion])}
+ 'exclusions': list([MetadataExclusion])}
def is_optional(self):
if self.optional and self.optional.lower() == "true":
@@ -145,4 +145,4 @@ class MetadataDependency(ObjectBinding):
classifier=mvn_dep.classifier,
optional=mvn_dep.optional,
requestedVersion=mvn_dep.version,
- exclusions=exclusions)
+ exclusions=sorted(exclusions))
diff --git a/python/javapackages/metadata/exclusion.py b/python/javapackages/metadata/exclusion.py
index 3152b090..5b9503c0 100644
--- a/python/javapackages/metadata/exclusion.py
+++ b/python/javapackages/metadata/exclusion.py
@@ -41,6 +41,15 @@ class MetadataExclusion(ObjectBinding):
element_name = 'exclusion'
fields = ['groupId', 'artifactId']
+ def __lt__(self, other):
+ if self.groupId < other.groupId:
+ return True
+ if self.groupId > other.groupId:
+ return False
+ if self.artifactId < other.artifactId:
+ return True
+ return False
+
def get_mvn_str(self):
return Printer.get_mvn_str(self.groupId, self.artifactId)
--
2.42.0