|
|
@@ -24,12 +24,19 @@ class Package: |
|
|
@dataclass |
|
|
@dataclass |
|
|
class Plugin: |
|
|
class Plugin: |
|
|
id: str |
|
|
id: str |
|
|
version: str |
|
|
|
|
|
|
|
|
version: Optional[str] |
|
|
|
|
|
|
|
|
|
|
|
@property |
|
|
|
|
|
def gradle_spec(self): |
|
|
|
|
|
return f'id("{self.id}") version "{self.version}"' if self.version else self.id |
|
|
|
|
|
|
|
|
@property |
|
|
@property |
|
|
def package(self): |
|
|
def package(self): |
|
|
return Package(self.id, self.id + '.gradle.plugin', self.version) |
|
|
return Package(self.id, self.id + '.gradle.plugin', self.version) |
|
|
|
|
|
|
|
|
|
|
|
def __str__(self): |
|
|
|
|
|
return f'{self.id}:{self.version}' if self.version else self.id |
|
|
|
|
|
|
|
|
def __hash__(self): |
|
|
def __hash__(self): |
|
|
return hash((self.id, self.version)) |
|
|
return hash((self.id, self.version)) |
|
|
|
|
|
|
|
|
@@ -94,16 +101,18 @@ def handle_packages(section) -> list[Package]: |
|
|
return result |
|
|
return result |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def handle_plugins(section) -> dict[str, list[str]]: |
|
|
|
|
|
result = {} |
|
|
|
|
|
|
|
|
def handle_plugins(section: dict[str, str | list[str] | None]) -> list[Plugin]: |
|
|
|
|
|
result = [] |
|
|
|
|
|
|
|
|
for entry in section: |
|
|
for entry in section: |
|
|
versions = section[entry] |
|
|
versions = section[entry] |
|
|
|
|
|
|
|
|
if isinstance(versions, str): |
|
|
if isinstance(versions, str): |
|
|
result[entry] = [versions] |
|
|
|
|
|
|
|
|
result.append(Plugin(entry, versions)) |
|
|
elif isinstance(versions, list): |
|
|
elif isinstance(versions, list): |
|
|
result[entry] = versions |
|
|
|
|
|
|
|
|
result.extend([Plugin(entry, v) for v in versions]) |
|
|
|
|
|
elif versions is None: |
|
|
|
|
|
result.append(Plugin(entry, None)) |
|
|
else: |
|
|
else: |
|
|
logger.warning(f'Invalid plugin version "{versions}" for {entry}') |
|
|
logger.warning(f'Invalid plugin version "{versions}" for {entry}') |
|
|
|
|
|
|
|
|
@@ -134,15 +143,14 @@ def parse_config(path: Path) -> Optional[Config]: |
|
|
packages=packages |
|
|
packages=packages |
|
|
)) |
|
|
)) |
|
|
|
|
|
|
|
|
for plugin_id, plugin_versions in plugins.items(): |
|
|
|
|
|
for plugin_version in plugin_versions: |
|
|
|
|
|
configurations.append(Configuration( |
|
|
|
|
|
name=f'version-plugins-{plugin_id}', |
|
|
|
|
|
kotlin_version=kotlin_version, |
|
|
|
|
|
gradle_version=gradle_version, |
|
|
|
|
|
plugins=[Plugin(plugin_id, plugin_version)], |
|
|
|
|
|
packages=[] |
|
|
|
|
|
)) |
|
|
|
|
|
|
|
|
for j, plugin in enumerate(plugins): |
|
|
|
|
|
configurations.append(Configuration( |
|
|
|
|
|
name=f'{kotlin_version}-plugins-{j}', |
|
|
|
|
|
kotlin_version=kotlin_version, |
|
|
|
|
|
gradle_version=gradle_version, |
|
|
|
|
|
plugins=[plugin], |
|
|
|
|
|
packages=[] |
|
|
|
|
|
)) |
|
|
|
|
|
|
|
|
if error: |
|
|
if error: |
|
|
for msg in error: |
|
|
for msg in error: |
|
|
|