Explorar el Código

Add separate mirrors for packages and plugins

main
Sindre Stephansen hace 2 años
padre
commit
1023d0f2e5
Firmado por: sindre <sindre@sindrestephansen.com> ID de clave GPG: B06FC67D17A46ADE
Se han modificado 6 ficheros con 28 adiciones y 16 borrados
  1. +3
    -1
      package-list.yaml
  2. +1
    -1
      sync/src/config/__init__.py
  3. +11
    -2
      sync/src/config/parse.py
  4. +6
    -4
      sync/src/main.py
  5. +4
    -4
      sync/src/maven/packages.py
  6. +3
    -4
      sync/src/maven/plugins.py

+ 3
- 1
package-list.yaml Ver fichero

@@ -1,10 +1,12 @@
maven:
mirrors:
package-mirrors:
- "https://repo.maven.apache.org/maven2"
- "https://repo1.maven.org/maven2"
- "https://oss.sonatype.org/content/repositories/snapshots"
- "https://packages.confluent.io/maven"
- "https://registry.quarkus.io/maven"

plugin-mirrors:
- "https://plugins.gradle.org/m2"

configurations:


+ 1
- 1
sync/src/config/__init__.py Ver fichero

@@ -1,3 +1,3 @@
from .packages import Package
from .plugins import Plugin
from .parse import Configuration, Config, parse_config
from .parse import Configuration, Config, MavenMirrors, parse_config

+ 11
- 2
sync/src/config/parse.py Ver fichero

@@ -19,10 +19,16 @@ class Configuration:
packages: list[Package]


@dataclass
class MavenMirrors:
package_mirrors: list[str]
plugin_mirrors: list[str]


@dataclass
class Config:
configurations: list[Configuration]
mirrors: list[str]
mirrors: MavenMirrors


def parse_config(path: Path) -> Optional[Config]:
@@ -69,5 +75,8 @@ def parse_config(path: Path) -> Optional[Config]:
Configuration(kotlin, gradle, plugins, packages)
for (kotlin, gradle), (plugins, packages) in configurations.items()
],
data.get('maven', {}).get('mirrors', []),
MavenMirrors(
data.get('maven', {}).get('package-mirrors', []),
data.get('maven', {}).get('plugin-mirrors', []),
),
)

+ 6
- 4
sync/src/main.py Ver fichero

@@ -4,7 +4,7 @@ import dataclasses
import logging
from pathlib import Path

from config import parse_config, Configuration
from config import parse_config, Configuration, MavenMirrors
from gradle import create_gradle
from maven import get_effective_packages
from maven.plugins import get_effective_plugins
@@ -12,7 +12,7 @@ from maven.plugins import get_effective_plugins
logger = logging.getLogger(__name__)


async def resolve_kotlin(configuration: Configuration, mirrors: list[str]):
async def resolve_kotlin(configuration: Configuration, mirrors: MavenMirrors):
packages = [
resolved
for package in configuration.packages
@@ -35,8 +35,10 @@ async def main(package_list: Path, output_dir: Path, gradle_repo: str) -> None:
print('Error in configuration')
elif not config.configurations:
print('No configurations defined, nothing to do.')
elif not config.mirrors:
print('No mirrors defined. Add maven.mirrors in the config file.')
elif not config.mirrors.package_mirrors and [p for c in config.configurations for p in c.packages]:
print('No package mirrors defined. Add maven.package-mirrors in the config file.')
elif not config.mirrors.plugin_mirrors and [p for c in config.configurations for p in c.plugins]:
print('No plugin mirrors defined. Add maven.plugin-mirrors in the config file.')
else:
for i, configuration in enumerate(config.configurations):
logger.info(f'Resolving configuration kotlin={configuration.kotlin_version}, gradle={configuration.gradle_version}')


+ 4
- 4
sync/src/maven/packages.py Ver fichero

@@ -2,7 +2,7 @@ import dataclasses
import logging
from typing import Optional, Iterable

from config import Package
from config import Package, MavenMirrors
from maven.fetch import fetch_pom
from maven.version import resolve_version
from pom import PropertyMissing, Properties
@@ -10,7 +10,7 @@ from pom import PropertyMissing, Properties
logger = logging.getLogger(__name__)


async def get_effective_packages(package: Package, mirrors: Iterable[str]) -> list[Package]:
async def get_effective_packages(package: Package, mirrors: MavenMirrors) -> list[Package]:
"""
Get a list of packages that is required for Gradle to fetch this package.

@@ -25,13 +25,13 @@ async def get_effective_packages(package: Package, mirrors: Iterable[str]) -> li
"""
versions = [
dataclasses.replace(package, version=version)
for version in await resolve_version(package, mirrors)
for version in await resolve_version(package, mirrors.package_mirrors)
]

deps = [
dep
for v in versions
for dep in await get_dependencies(v, mirrors)
for dep in await get_dependencies(v, mirrors.package_mirrors)
]

return versions + deps


+ 3
- 4
sync/src/maven/plugins.py Ver fichero

@@ -1,15 +1,14 @@
import dataclasses
from typing import Iterable

from config import Plugin
from config import Plugin, MavenMirrors
from maven.version import resolve_version


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

Cargando…
Cancelar
Guardar