Skip to content

Release 2021.07.05

Compare
Choose a tag to compare
@harshad16 harshad16 released this 06 Jul 21:42
· 1676 commits to master since this release
72ba8c1

we have completed the release of 2021.07.05 πŸŽ‰ 🎊 πŸ₯³

Features

  • Resolve Python software stacks based on RPM packages present in the base container image (runtime environment used)

Some Python libraries require native packages to work. An example can be GitPython, a popular Python library for interacting with Git. The installation of GitPython done by pip install gitpython will bring Python library into the environment, nevertheless, the library does require Git to be installed in the environment to work properly. The newly introduced mechanism allows to declaratively specify which RPM packages (such as Git required by GitPython in the example) should be present in the environment so that the resolved software will serve user needs. See documentation for more info.

  • thoth-station/adviser#1922

  • Resolve Python software stacks based on shared objects present in the base container image (runtime environment used)

Similarly as for RPM packages (see above), some Python packages require native shared objects (so files) present in the environment to operate correctly. To support this, Thoth performs analyses of base container images that can be used with Python software stacks. One of the outcomes of these analyses is information about shared objects (and their versions) shipped in the container images. Detection of required shared objects in Python packages then creates a requirement to match shared objects offered by the base container image used (done by a corresponding ABI sieve).

Besides this automatic detection, Thoth offers a declarative interface to describe pipeline units which adjust the resolution process based on shared objects present in the base container image. This is especially useful if shared objects are loaded dynamically on runtime - maintainers of such Python packages can state requirements on the base container image with respect to shared objects and their versions present. An example can be a requirement on a specific glibc version - see docs for more information.

Pulp offers pulp-python plugin which enables users to maintain multiple Python package indexes. Users can upload their Python packages to package indexes considering their needs (e.g. have a specific Python package index for AVX2 optimized TensorFlow builds, another index for patched Python packages needed for testing products, ...). To integrate with Thoth, we introduced pulp-pypi-sync-job which periodically checks Python package indexes created on a monitored Pulp instance and registers them to Thoth. Subsequently, Thoth analyses packages published on these package indexes and can guide users on how to consume packages published there. As Thoth offers resolution which, unlike pip/Pipenv, considers Python package indexes as a different source of packages (rather than mirrors as in the case of pip/Pipenv), the resolution process can give guidance on how and why Python packages should be consumed from the recommended Python package sources.

As of now, we monitor Pulp instance deployed on the operate-first environment.

Component Updates

Thanks for the amazing work everyone. πŸ’―