Releases: thoth-station/thoth-application
Release 2021.07.19
we have completed the release of 2021.07.19 🎉 🎊 🥳
Features
- TensorFlow updates in recommendations
We have incorporated few additions to the recommender system when it comes to recent TensorFlow releases. Users of Thoth can now benefit from recommendations that take into account API symbols available also in the upcoming tensorflow~=2.6.0 release. The recommender system automatically suggests using the appropriate TensorFlow release based on API symbols used in the application (that matches API symbols available in the recommended TensorFlow release). The knowledge base was also extended with supported CUDA versions for TensorFlow 2.5 and upcoming TensorFlow 2.6.
-
Python packages packaged as RPMs in Fedora 34 and UBI8
Thoth's knowledge was extended with information that states which Python packages are packaged as RPMs in Fedora 34 and UBI8. When asking for advice, the recommender system notifies about Python packages available as RPMs in justifications in the respective distributions.
Number of Python packages packaged in Fedora 34 as RPMs: 2244
Number of Python packages packaged in UBI as RPMs: 62
-
Notify users about Python releases installed from PyPI
With recent changes, we provide a link to PyPI's release page for each Python package installed from PyPI. This helps users to directly navigate to project information presented on PyPI.
-
Resolve Python software stacks considering Python modules available in the runtime environment (container image) - declarative interface to configure resolver
The declarative interface to the resolution process now allows to state how the resolution process should look like when considering also Python packages already present in the runtime environment (container image). An example can be an adjusted resolution process when JupyterLab is installed in a specific version in the runtime environment (container image).
-
documentation: https://thoth-station.ninja/docs/developers/adviser/prescription.html#should-include-runtime-environments-python-packages
-
Resolve Python software stacks considering prepared container images (runtime environments)
As we provide base container images with a prepared and tested set of packages ("predictive stacks") that are shipped with the container image, these container images can be additionally used as a base for installing packages as per user requests.
An example scenario can be a tested TensorFlow container image, that could be lacking TensorBoard package. If a user wants to install TensorBoard, the resolution process automatically detects TensorFlow release available in the container image and suggests a compatible TensorBoard release that will work with the preinstalled TensorFlow package shipped in the base image.
-
Links to GitHub release notes for the most used 5000 packages on PyPI
The recommendation engine now provides links to release notes pages available on GitHub (if any) for packages that are installed. For example, users will be pointed to numpy==1.21.0 release page if the given numpy is installed in the specific version. This information was aggregated for top 5000 Python packages on PyPI (top based on number of downloads). If you are a maintainer of a repository that provides release information on GitHub and your package is not listed in Thoth's database, feel free to add it to the thoth-station/prescriptions repository following the docs.
-
Notify users if a Python package has archived repository on GitHub
To make sure Python application developers use Python packages that are still actively developed, we warn when users use Python packages that have archived repositories on GitHub. This detection is performed for the top 5000 used packages on PyPI (based on the number of downloads).
-
Notify users if they consume Python packages from Operate First' Pulp instance
We inform users if they consume packages from Operate First Pulp instance. The recommender system prints this information in the provided justification together with the recommended stack.
Component Updates
-
adviser: v0.36.0
-
prescriptions: v0.2.0
- thoth-station/prescriptions#58
- thoth-station/prescriptions#58
- thoth-station/prescriptions#54
- thoth-station/prescriptions#53
- thoth-station/prescriptions#52
- thoth-station/prescriptions#51
- thoth-station/prescriptions#47
- thoth-station/prescriptions#44
- thoth-station/prescriptions#40
- thoth-station/prescriptions#42
- thoth-station/prescriptions#43
-
package-extract: v1.2.0
-
metrics-exporter: v0.17.0
-
slo-reporter: v0.16.0
-
mi: v2.6.2
-
mi-scheduler: v1.6.5
Thanks for the amazing work everyone. 💯
Release 2021.07.05
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.
-
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 integration: pulp-pypi-sync-job
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.
-
Initiate to provide base image for the natural language processing , we have created the following image for use:
https://quay.io/repository/thoth-station/ps-nlp?tab=tags
https://quay.io/repository/thoth-station/ps-nlp-tensorflow?tab=tags
https://quay.io/repository/thoth-station/ps-nlp-pytorch?tab=tags -
Introduced a new component which periodically exports metrics out of the main database asynchronously.
-
Project Thoth is recognizing GitHub published GHSA-4278-2v5v-65r4 which affects some Tensorflow version as "CVE" and advise accordingly.
Component Updates
-
adviser: v0.35.0
- Point users to support repository to report issues (thoth-station/adviser#1949)
- Keep pipeline run information only when adviser is run in verbose mode (thoth-station/adviser#1944)
- Add demos from sprint 63 (thoth-station/adviser#1942)
- Adjust documentation for prescriptions living in a dir structure (thoth-station/adviser#1938)
- Extend documentation for security (thoth-station/adviser#1934)
- Adjust reporting of RPM and SO specific issues (thoth-station/adviser#1933)
- Perform recommendations based on RPM packages present in the environment (thoth-station/adviser#1928)
- Adjust validate logic to consume prescriptions from a dir (thoth-station/adviser#1929)
- Filter Python packages present in software stack based on so files (thoth-station/adviser#1927)
-
metrics-exporter: v0.16.3
- Use common enums (thoth-station/metrics-exporter#733)
- Add missing labels (thoth-station/metrics-exporter#730)
- missin definition of metric (thoth-station/metrics-exporter#719)
-
slo-reporter: v0.15.0
- Add env label (thoth-station/slo-reporter#278)
- Remove qeb-hwt bits (thoth-station/slo-reporter#283)
Thanks for the amazing work everyone. 💯
Release 2021.06.21
we have completed the release of 2021.06.21 🎉 🎊 🥳
Features
-
We have started ingesting the package based on fedora 34 and python 3.9.
-
We are deprecating the support for fedora 31 and python 3.7 modules.
-
thamos advise now supports labels, prescription pipeline units can be now included in the resolution based on labels supplied by users:
-
user-api keeps logs of advises and container image analyses for a longer period of time, users can browse the resolution or analysis logs after some time (not necessary immidiatelly once the resolution is done)
-
Prescriptions are now stated in a directory structure - see thoth-station/prescriptions. This makes the database of known issues more maintainable and maintainers of specific projects can follow only sub-directories for changes and reports. If you are a maintainer of a project or you would like to follow issues stated for a specific set of projects, feel free to add yourself to the CODEOWNERS file in thoth-station/prescriptions repository.
Component Updates
-
user-api: v0.26.3
- Obtain logs from Ceph placed by Argo Workflows (thoth-station/user-api#1426)
- Introduce labels on advise endpoint (thoth-station/user-api#1427)
- Adjust copyright in headers (thoth-station/user-api#1437)
- use pydantic calling convention for messaging (thoth-station/user-api#1442)
-
adviser: v0.34.0
- Adjust copyright notice in headers (thoth-station/adviser#1918)
- Fix wrong CVE key obtained (thoth-station/adviser#1905)
- Add update sieve responsible for package updates (thoth-station/adviser#1903)
- Fix wrong read variable (thoth-station/adviser#1898)
- Notify users about labels used during the resolution process (thoth-station/adviser#1895)
- Introduce labels to the resolution engine (thoth-station/adviser#1889)
- Add tests for solver rules (thoth-station/adviser#1890)
-
investigator: v0.13.1
- remove inner loop which loops over registered indexes(thoth-station/investigator#531)
- expect only single index in message contents (thoth-station/investigator#529)
-
solver: v1.10.1
- Add Fedora 34 based on Python 3.9 solver (thoth-station/solver#711)
- Remove Fedora 31 + Python 3.7 it went EOL (thoth-station/solver#716)
- support solver fedora 34 python 3.9 with thoth services (thoth-station/solver#718)
-
messaging: v0.14.3
- add config for ssl keystore and password (thoth-station/messaging#428)
- all message senders pass index url explicitly (thoth-station/messaging#430)
-
metrics-exporter: v0.16.0
- Add CVE metric (thoth-station/metrics-exporter#700)
- Remove long running metric (thoth-station/metrics-exporter#707)
Thanks for the amazing work everyone. 💯
Release 2021.06.07
With these updates, we have completed the release of 2021.06.07
Features
- Implemented handling of packages - selecting which packages should be analyzed by Thoth by maintaining solver rules: #1403
management-api: >0.17.0
adviser: >=0.31.0
- Using PyPA's advisory-db as a source of security vulnerabilities: thoth-station/cve-update-job#404
cve-update-job: >=0.3.0
adviser: >=0.31.0
As this change required database schema changes, all the components that talk to the database need thoth-storages>=0.44.0 (updates propagated, new releases pending).
Component Updates
-
adviser: v0.31.0
- Keep CVE advisory in the justification output (thoth-station/adviser#1882)
- Adjust for CVEs consumed from PyPA (thoth-station/adviser#1876)
- Add a sieve implementing filtering based on solver rules (thoth-station/adviser#1877)
- Document solver rules (thoth-station/adviser#1878)
- Add video demonstrating constaints.txt use (thoth-station/adviser#1870)
- Handle error when all the direct deps are sieved (thoth-station/adviser#1867)
- Make boot pipeline unit responsible for providing stack info (thoth-station/adviser#1863)
- Report all unresolved dependencies (thoth-station/adviser#1864)
-
management-api: v0.17.2
- Delete solver rules endpoint returns a single rule delete (thoth-station/management-api#770)
- Fix module not found error for flask._compat (thoth-station/management-api#763)
- Create endpoints for managing Python solver rules (thoth-station/management-api#757)
-
investigator: v0.13.0
- loop being deprecated, use asyncio.run instead (thoth-station/investigator#514)
- remove thoth-sourcemanagement from dependencies (thoth-station/investigator#521)
-
solver: v1.9.0
- Raise on exit code propagating a signal from operating system (thoth-station/solver#704)
- Compute packages available in analyzed Python package release (thoth-station/solver#701)
- Metadata now gather also description (thoth-station/solver#707)
- Provide an ability to limit output (thoth-station/solver#696)
- Improvements to docs (thoth-station/solver#694)
-
cve-update-job: v0.3.0
- Add metrics for CVE update job (thoth-station/cve-update-job#410)
- Start using pypa/advisory-db as a source of CVEs (thoth-station/cve-update-job#405)
- upgrade the service to python3.8 (thoth-station/cve-update-job#393)
- cve-update-job upgrade to be kafka message producer (thoth-station/cve-update-job#374)
-
kebechet: v1.3.0
- remove thoth-sourcemanagement from Kebechet (thoth-station/kebechet#725)
- add kebechet metadata when sending request to thamos (thoth-station/kebechet#699)
- add justification based on metadata if possible (thoth-station/kebechet#698)
-
revsolver: v0.2.5
- Add standard GitHub templates (thoth-station/revsolver#49)
Thanks, everyone for the work.
Release 2021.05.24
With these updates, we have completed the release of 2021.05.24
Component Updates
-
adviser: v0.30.0
- Log recommendation type used when starting adviser (thoth-station/adviser#1859)
- Log removal of a legacy version just once (thoth-station/adviser#1858)
- Keep track of iteration in pipeline builder (thoth-station/adviser#1860)
- Add support for skip package prescription unit (thoth-station/adviser#1848)
- Let users know where to report bugs or service issues (thoth-station/adviser#1849)
- Document how to use constraints files (thoth-station/adviser#1839)
-
user-api: v0.25.1
- fix type of cache metrics, rename schema metric (thoth-station/user-api#1408)
-
management-api: v0.16.0
- Introduce endpoints for purging data (thoth-station/management-api#747)
-
messaging: v0.14.1
- Remove adviser re run message(thoth-station/messaging#409)
- add blurb about naive schemas (thoth-station/messaging#410)
- use Strict types provided by pydantic(thoth-station/messaging#411)
- flush all pending messages (thoth-station/messaging#413)
-
workflow-helpers: v0.8.1
- all was imported as all messages (thoth-station/workflow-helpers#249)
- use python 3.8 fixes pydantic issues (thoth-station/workflow-helpers#250)
- adjust metric name (thoth-station/workflow-helpers#252)
- package_version param was wrong (thoth-station/workflow-helpers#256)
-
slo-reporter: v0.14.2
- Add link html preview to README to easily discover status (thoth-station/slo-reporter#260)
- Fix issue on datatype(thoth-station/slo-reporter#259)
-
advice-reporter: v0.9.0
- Produce requests vs reports analysis (thoth-station/reporter#200)
- flush all pending messages (thoth-station/reporter#203)
- fix accidental use of contents instead of baseMessage instance (thoth-station/reporter#198)
-
revsolver: v0.2.4
- Updated the project to Python 3.8 (thoth-station/revsolver#35)
Thanks, everyone for the work.
Release 2021.05.10
With these updates, we have completed the release of 2021.05.10
Component Updates
- adviser: v0.29.0
With this change we provide the following new features:
- support for constraints files
- github release notes in the resulting justifications
To support constraints files:
- users need to update thamos to version
thamos>=1.18
- thoth-station/thamos#845 - users need to update thoth s2i to version
>=0.27.0
- thoth-station/s2i-thoth#169 - user-api needs to be updated to
>=0.29.0
- #1205
To support GitHub release notes in justifications, thoth-station/prescriptions#17 can be merged. The prescription-sync-job will update prescriptions in deployments. The merge should happen after adviser>=0.29.0 is available in deployment (stage+prod).
-
Implement support for constraints (thoth-station/adviser#1826)
-
Add github release notes to justification (thoth-station/adviser#1821)
-
Revisit architecture overview (thoth-station/adviser#1816)
-
Minor improvements in docs (thoth-station/adviser#1813)
-
Update database of symbols available for TensorFlow 2.5.0 (thoth-station/adviser#1807)
-
Allow including one pipeline unit multiple times per matched entry (thoth-station/adviser#1806)
-
user-api: v0.25.0
- Accept constraints on advise endpoint. (thoth-station/user-api#1397)
- Fix internal error HTTP status code when exception reporting is on. (thoth-station/user-api#1398)
-
investigator: v0.12.1
- messages are no longer classes (thoth-station/investigator#515)
- F/pydantic consumer (thoth-station/investigator#500)
- Remove adviser re run message consumer (thoth-station/investigator#498)
-
integration-tests: v0.8.2
- updated anaylsis response check scenario and fix platform scenario name (thoth-station/integration-tests#189)
- fix s2i image availabilty check (thoth-station/integration-tests#186)
- change the dir to runtime environment (thoth-station/integration-tests#185)
- reduce timout of some tests (thoth-station/integration-tests#174)
- Call config.reset_config() once advise is done (thoth-station/integration-tests#154)
- Discard any previous config loaded to the current process (thoth-station/integration-tests#162)
-
workflow-helpers: v0.7.1
- Adjust input to thamos method (thoth-station/workflow-helpers#245)
- Adjust adviser rerun logic (thoth-station/workflow-helpers#240)
- Use thamos and not messaging for qeb-hwt workflow (thoth-station/workflow-helpers#239)
- Messaging pydantic (thoth-station/workflow-helpers#236)
- Adjust AdviserTrigger message inputs from qeb advise workflow helper task (thoth-station/workflow-helpers#234)
Thanks, everyone for the work.
Release 2021.04.26
With these updates, we have completed the release of 2021.04.26
Component Updates
-
user-api: v0.24.3
- Add unauthorized response schema (thoth-station/user-api#1382)
- Generalize _send_schedule_message method to consider authentication(thoth-station/user-api#1372)
- Do cache hit only for accepted requests(thoth-station/user-api#1373)
- Do not provide objects as query parameters(thoth-station/user-api#1365)
- Move metrics creation(thoth-station/user-api#1369)
- Provide information about queued analyses on status endpoints(thoth-station/user-api#1368)
- Introduce cache hit metric.(thoth-station/user-api#1350)
- Drop any metadata associated with the request when providing results. (thoth-station/user-api#1363)
- Pass authenticated parameters to messages. (thoth-station/user-api#1354)
- protect fields for post provenance and advice. (thoth-station/user-api#1336)
-
investigator: v0.11.2
- Adviser trigger message v4(thoth-station/investigator#492)
- constrain thoth-messaging(thoth-station/investigator#478)
- add new function args to call (thoth-station/investigator#476)
-
messaging: v0.14.0
- pydantic messages (thoth-station/messaging#373)
- Add authenticated parameter to the provenance-check-triggering message (thoth-station/messaging#391)
- Add authenticated parameter to the advise-triggering message (thoth-station/messaging#390)
- Add bits needed for publishing docs on thoth-station.ninja (thoth-station/messaging#398)
-
slo-reporter: v0.14.1
- Add adviser quality SLI (thoth-station/slo-reporter#251)
- upgrade to python3.8 (thoth-station/qeb-hwt#133)
-
advise-reporter: v0.7.4
- Add analyzed data for adviser reports inputs and statistics (thoth-station/reporter#179)
- Adjust date inputs(thoth-station/reporter#180)
- update schema and version(thoth-station/reporter#193)
Thanks, everyone for the work.
Release 2021.04.12
With these updates, we have completed the release of 2021.04.12
Component Updates
-
adviser: v0.27.0
- Introduce prescription (thoth-station/adviser#1741)
- Update prescription documentation so users can start using it(thoth-station/adviser#1786)
- Keep optimization for prescription wraps with resolved dependencies(thoth-station/adviser#1800)
- Allow supplying expected library usage in prescriptions (thoth-station/adviser#1793)
- Add ability to declare advised manifest changes in wrap prescriptions (thoth-station/adviser#1794)
- Add "not" operator to the prescription declaration (thoth-station/adviser#1795)
- Move MKL specific wrap to prescriptions (thoth-station/adviser#1796)
- Fix handling prescription unit names(thoth-station/adviser#1797)
- Remove TF Keras embedding wrap that was moved to prescriptions (thoth-station/adviser#1799)
- Rewrite s2i wraps to boots to match semantics (thoth-station/adviser#1789)
- Remove units rewritten to prescription YAML file(thoth-station/adviser#1774)
- Fix typing for prescription units and core units (thoth-station/adviser#1748)
- Prescription listing (thoth-station/adviser#1762)
- Allow multiple hardware configurations per pipeline unit (thoth-station/adviser#1764)
- Allow multiple prescription files being supplied to the resolver(thoth-station/adviser#1767)
- Add a pipeline unit that notifies about prescription release used (thoth-station/adviser#1770)
- Add ability to yield matched package version in pseudonyms(thoth-station/adviser#1775)
- Implement prescription validation with semantics(thoth-station/adviser#1781)
- Add Thoth's landing page(thoth-station/adviser#1626)
- Register UBI boot only if UBI is used (thoth-station/adviser#1756)
- Propagate metadata to justification and stack info(thoth-station/adviser#1625)
- Fix justification messages reported by backport sieves(thoth-station/adviser#1727)
- Remove user's stack if development dependencies are not present (thoth-station/adviser#1729)
- Remove user's stack if any changes in requirements were detected (thoth-station/adviser#1726)
-
user-api: v0.22.1
- Schema-related fix for the API.(thoth-station/user-api#1343)
-
messaging: v0.12.0
- add metadata to kebechet-run-url(thoth-station/messaging#347)
- add more metadata and use attr factory(thoth-station/messaging#360)
- Remove data fields from adviser message(thoth-station/messaging#359)
-
slo-reporter: v0.13.1
- Add defaults (thoth-station/slo-reporter#242)
- Add workflows tasks latency (thoth-station/slo-reporter#238)
- Generalize references (thoth-station/slo-reporter#233)
-
qeb-hwt: v0.3.4
- HOTFIX: Use the explicit pyjwt 1.7.1 for the github app (thoth-station/qeb-hwt#153)
- upgrade to python3.8 (thoth-station/qeb-hwt#133)
-
argo-workflow: v2.12.5
- Fix for the correct TTL propagation.
Thanks everyone for the work.
Release 2021.03.29
With these updates, we have completed the release of 2021.03.29
New components
- prescription-sync-job
- An Application that syncs prescriptions stored on GitHub to Ceph. It is run as a periodic job in Thoth's deployment.
Component Updates
-
user-api
- add kebechet meta to post advise (thoth-station/user-api#1332)
- add new params to be parallel to thoth-common (thoth-station/user-api#1337)
-
metrics-exporter
- Check initial connections and add Kafka metrics (thoth-station/metrics-exporter#638)
-
investigator
- add new args to function call(thoth-station/investigator#469)
- F/message metrics(thoth-station/investigator#467)
- Treat unregistered handler as exceptions(thoth-station/investigator#465)
-
management-api
- Remove version clash boot from the example(thoth-station/management-api#728)
-
solver
- Add bits needed for s2i integration (thoth-station/solver#662)
- Explicitly turn on pre-releases in Python dependency parser (thoth-station/solver#668)
-
workflow-helper
- Introduce metrics for messages sent and enforce consistency (thoth-station/workflow-helpers#212)
- keep message file contents (thoth-station/workflow-helpers#219)
- add new param for v2 of run-url message(thoth-station/workflow-helpers#215)
-
slo-reporter
- Generalize references (thoth-station/slo-reporter#233)
- Add integration per user SLI(thoth-station/slo-reporter#220)
- Add build analysis in the report sent by email (thoth-station/slo-reporter#214)
Thanks everyone for the work.
Release 2021.03.15
The cluster was updated to openshift 4.7
The cluster is renamed to zero
With these updates, we have completed the release of 2021.03.15
-
adviser
- Provide justification when filtering based on selective pre-releases(thoth-station/adviser#1718)
- Add justification for index configuration filter(thoth-station/adviser#1719)
- Propagate parsed Dependency Monkey inputs to the resulting JSON report
-
investigator
- Bump adviser re-run and provenance-checker message versions
- Do not pass arguments that are prepared in adviser container
-
metrics-exporter
- Solve type checking (thoth-station/metrics-exporter#631)
- Introduce a metric for obtaining the current database size (thoth-station/metrics-exporter#617)
- Add almebic rows table metric(thoth-station/metrics-exporter#622)
- Add check on number of solvers from CM and from database (thoth-station/metrics-exporter#612)
-
slo-reporter
- Add build analysis in the report sent by email(thoth-station/slo-reporter#214)
- Add integration per user SLI(thoth-station/slo-reporter#220)
- Generalize smtp tls(thoth-station/slo-reporter#206)
-
user-api
- Sort library usage to properly hit cache on user-api on advise(thoth-station/user-api#1325)
- Introduced endpoint for container images
Thanks everyone for the work.