Browse Source

Add support for using latest or stable kotlin version

main
Sindre Stephansen 2 years ago
parent
commit
29622e102b
Signed by: sindre <sindre@sindrestephansen.com> GPG Key ID: B06FC67D17A46ADE
2 changed files with 19 additions and 6 deletions
  1. +1
    -1
      package-list.yaml
  2. +18
    -5
      sync/src/main.py

+ 1
- 1
package-list.yaml View File

@@ -11,7 +11,7 @@ maven:

configurations:
# Specify configurations where the packages/plugins depend on a specific kotlin and/or gradle version.
- kotlin-version: ["1.8.20", "1.7.0"]
- kotlin-version: ["latest", "1.8.20", "1.7.0"]
gradle-version: ["8.2.1", "7.6.2"]

plugins:


+ 18
- 5
sync/src/main.py View File

@@ -4,15 +4,25 @@ import dataclasses
import logging
from pathlib import Path

from config import parse_config, Configuration, MavenMirrors
from config import parse_config, Configuration, MavenMirrors, Package
from gradle import create_gradle
from maven import get_effective_packages
from maven.plugins import get_effective_plugins
from maven.version import resolve_version

logger = logging.getLogger(__name__)


async def resolve_kotlin(configuration: Configuration, mirrors: MavenMirrors):
async def resolve_kotlin(configuration: Configuration, mirrors: MavenMirrors) -> list[Configuration]:
kotlin_versions = await resolve_version(
Package('org.jetbrains.kotlin', 'kotlin-stdlib', configuration.kotlin_version),
mirrors.package_mirrors,
)

if not kotlin_versions:
logger.error(f'Could not find kotlin version matching "{configuration.kotlin_version}"')
return []

packages = [
resolved
for package in configuration.packages
@@ -25,7 +35,10 @@ async def resolve_kotlin(configuration: Configuration, mirrors: MavenMirrors):
for resolved in await get_effective_plugins(plugin, mirrors)
]

return dataclasses.replace(configuration, packages=packages, plugins=plugins)
return [
dataclasses.replace(configuration, kotlin_version=kotlin_version, packages=packages, plugins=plugins)
for kotlin_version in kotlin_versions
]


async def main(package_list: Path, output_dir: Path, gradle_repo: str) -> None:
@@ -43,8 +56,8 @@ async def main(package_list: Path, output_dir: Path, gradle_repo: str) -> None:
for i, configuration in enumerate(config.configurations):
logger.info(f'Resolving configuration kotlin={configuration.kotlin_version}, gradle={configuration.gradle_version}')
try:
configuration = await resolve_kotlin(configuration, config.mirrors)
create_gradle(configuration, gradle_repo, output_dir)
for c in await resolve_kotlin(configuration, config.mirrors):
create_gradle(c, gradle_repo, output_dir)
except:
logger.exception(f'Error resolving kotlin version {configuration.kotlin_version}')



Loading…
Cancel
Save