You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
922B

  1. import logging
  2. from config import Package
  3. from .fetch import fetch_metadata
  4. logger = logging.getLogger(__name__)
  5. async def resolve_version(package: Package, repo: str) -> list[str]:
  6. versions = []
  7. if package.version in ['latest', 'stable']:
  8. if metadata := await fetch_metadata(package, repo):
  9. logger.info(f"Available versions for {package}: {metadata.versions}")
  10. if package.version == 'latest':
  11. versions.append(metadata.latest)
  12. elif package.version == 'stable':
  13. versions.append(metadata.release)
  14. if metadata.stable != metadata.release:
  15. versions.append(metadata.stable)
  16. logger.info(f"Using versions {versions} for {package}")
  17. else:
  18. logger.error(f'{package}: Could not find package metadata')
  19. else:
  20. versions.append(package.version)
  21. return versions