Skip to main content

Applications Download

This tool can be used to maintain a version file (eventually also an application file) for a given application.

The version file is a YAML file that contains the version number of the application. The version file respect the schema describe in application.md and provided in applications_download/application-schema.json.

The application file is also a YAML file that contains how to download and install the application. This is a simple key value file with the application as key and the version as value.

Install

pip install applications-download

Usage

applications-download --help

Applications configuration

In case some executables or applications from GitHub releases or any other URLs are required on the CI host and are not handled by any dependency manager, we provide a set of tools to install them and manage upgrades through Renovate.

Create an application file (e.-g. applications.yaml) with:

# yaml-language-server: $schema=https://raw.githubusercontent.com/sbrunner/applications-download/refs/heads/<version>/applications_download/applications-schema.json

# Application from GitHub release
<organization>/<project>:
  get-file-name: <file name present in the release>
  to-file-name: <The file name you want to create in ~/.local/bin>
  finish-command: # The command you want to run after the file is downloaded
    - - chmod # To be executable (usually required)
      - +x
      - <to-file-name>
    - - <to-file-name> # Print the version of the application
      - --version
# Application from GitHub release in a tar file (or tar.gz)
<organization>/<project>:
  get-file-name: <file name present in the release>
  type: tar
  tar-file-name: <The file name available in the tar file>
  to-file-name: <The file name you want to create in ~/.local/bin>
  finish-command: [...] # The command you want to run after the file is downloaded
# Application from an URL
<application reference name>:
  url-pattern: <The URL used to download the application>
  to-file-name: <The file name you want to create in ~/.local/bin>
  finish-command: [...] # The command you want to run after the file is downloaded

In the attributes url-pattern, get-file-name you can use the following variables:

  • {version}: The version of the application present in the version file.
  • {version_quote}: The URL encoded version.
  • {short_version}: The version without the v prefix.

The applications-versions.yaml file is a map of applications and their versions.

Add in your Renovate configuration:

  regexManagers: [
    {
      fileMatch: ['^applications-versions.yaml$'],
      matchStrings: [
        '(?<depName>[^\\s]+): (?<currentValue>[^\\s]+) # (?<datasource>[^\\s]+)',
      ],
    },
  ],

Now you need to call c2cciutils-download-applications --applications-file=applications.yaml --versions-file=applications-version.yaml to install required applications on CI host before using them (an already installed application is installed only if needed).

Contributing

Install the pre-commit hooks:

pip install pre-commit
pre-commit install --allow-missing-config

Metadata

Release files for applications-download 1.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for applications-download 1.7.0
File Size Uploaded
applications_download-1.7.0.tar.gz 11.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for applications-download 1.7.0
File Interpreter ABI Platform
applications_download-1.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 23.1 kB

Release files / applications_download-1.7.0.tar.gz

Download URL applications_download-1.7.0.tar.gz
Size 11.0 kB
Tags Source
SHA-256 checksum
How to use checksums
cb3b8dd4efa9b102c8aed0dfee28fc01964803762b600dd6de05e512a8393620
BLAKE2b-256 checksum
How to use checksums
750dfe750599af8d8028dbedc29e7c90d70075eaf0267bae3652a170ae752387
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / applications_download-1.7.0-py3-none-any.whl

Download URL applications_download-1.7.0-py3-none-any.whl
Size 12.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
abafb58aab402442e0625dfdeae34a8eca228f338293b3dde6db89ce7df547b7
BLAKE2b-256 checksum
How to use checksums
4728ac1e31d15af0cb7ba926cd427198a8ba075d7e1d5a3a6929be6bb3ccfc48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

1.7.0 This release

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

0.8.0

2 release files

0.7.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page