Przeglądaj źródła

Add support for core gradle plugins

main
Sindre Stephansen 2 lat temu
rodzic
commit
7a60becd91
Podpisane przez: sindre <sindre@sindrestephansen.com> ID klucza GPG: B06FC67D17A46ADE
4 zmienionych plików z 31 dodań i 19 usunięć
  1. +1
    -0
      package-list.yaml
  2. +22
    -14
      sync/src/config.py
  3. +1
    -1
      sync/src/gradle.py
  4. +7
    -4
      sync/src/maven/plugins.py

+ 1
- 0
package-list.yaml Wyświetl plik

@@ -13,6 +13,7 @@ configurations:
gradle-version: "7.6.2"

plugins:
"`kotlin-dsl`": null
com.expediagroup.graphql: ["stable"]

- kotlin-version: "1.8.0"


+ 22
- 14
sync/src/config.py Wyświetl plik

@@ -24,12 +24,19 @@ class Package:
@dataclass
class Plugin:
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
def package(self):
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):
return hash((self.id, self.version))

@@ -94,16 +101,18 @@ def handle_packages(section) -> list[Package]:
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:
versions = section[entry]

if isinstance(versions, str):
result[entry] = [versions]
result.append(Plugin(entry, versions))
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:
logger.warning(f'Invalid plugin version "{versions}" for {entry}')

@@ -134,15 +143,14 @@ def parse_config(path: Path) -> Optional[Config]:
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:
for msg in error:


+ 1
- 1
sync/src/gradle.py Wyświetl plik

@@ -23,7 +23,7 @@ def create_gradle_build(kotlin_version: str, plugins: Iterable[Plugin], packages
plugins {
""" + f'kotlin("jvm") version "{kotlin_version}"' + """
""" + '\n '.join(f'id("{p.id}") version "{p.version}"' for p in plugins) + """
""" + '\n '.join(p.gradle_spec for p in plugins) + """
}
""" + ("""
repositories {


+ 7
- 4
sync/src/maven/plugins.py Wyświetl plik

@@ -6,7 +6,10 @@ from maven.version import resolve_version


async def get_effective_plugins(plugin: Plugin, mirrors: Iterable[str]) -> list[Plugin]:
return [
dataclasses.replace(plugin, version=version)
for version in await resolve_version(plugin.package, mirrors)
]
if plugin.version:
return [
dataclasses.replace(plugin, version=version)
for version in await resolve_version(plugin.package, mirrors)
]
else:
return [plugin]

Ładowanie…
Anuluj
Zapisz