Skip to main content

mdapi

A simple and fast API for serving the metadata from the RPM repositories

Installation

For development

  1. Install Python 3, Virtualenv and Poetry on your Fedora Linux installation.
    $ sudo dnf install python3 python3-virtualenv poetry
    
  2. Clone the repository to your local storage and make it your present working directory.
    $ git clone git@github.com:fedora-infra/mdapi.git
    $ cd mdapi
    
  3. Set up and activate a virtual environment within the directory of the cloned repository.
    $ virtualenv venv
    $ source venv/bin/activate
    
  4. Check the validity of the project configuration and install the project dependencies from the lockfile.
    $ (venv) poetry check
    $ (venv) poetry install
    

For container image

  1. Install Podman on your Fedora Linux installation.
    $ sudo dnf install podman
    
  2. Ensure that
    1. The project directory is the present working directory.
    2. The virtual environment with the project is activated, following the instructions provided in the development installation section.
    3. The project configuration is modified according to needs in myconfig.py file, following the instructions provided in the configuration setup section.
  3. Execute the following command to build the container image.
    $ (venv) podman build -t "mdapi:$(poetry version -s)" .
    

Usage

In development

Viewing the help message and version

  1. Ensure that
    1. The project directory is the present working directory.
    2. The virtual environment with the project is activated, following the instructions provided in the development installation section.
  2. Execute the following command to view the help message.
    $ (venv) mdapi --help
    
    Output
    Usage: mdapi [OPTIONS] COMMAND [ARGS]...
    
      A simple API for serving the metadata from the RPM repositories
    
    Options:
      -c, --conffile PATH  Read configuration from the specified Python file
      --version            Show the version and exit.
      --help               Show this message and exit.
    
    Commands:
      database  Fetch SQLite databases from all active Fedora Linux and EPEL...
      serveapp  Start the API server for querying repository metadata
    
  3. Execute the following command to view the project version.
    $ (venv) mdapi --version
    
    Output
    mdapi, version 3.0.0
    

Testing the project

  1. Ensure that
    1. The project directory is the present working directory.
    2. The virtual environment with the project is activated, following the instructions provided in the development installation section.
    3. The storage partition on which test database directory is located has at least 1.5 GiB of free space.
  2. Execute the following command to run the code quality checks and testcases.
    $ (venv) tox
    

Setting up the configuration

  1. Ensure that
    1. The project directory is the present working directory.
  2. Make a copy of the default configuration on your local storage.
    $ cp mdapi/confdata/standard.py mdapi/confdata/myconfig.py
    
  3. Make changes to the copied configuration file to suit the requirements.
    $ nano confdata/myconfig.py
    

Fetching the databases

  1. Ensure that
    1. The project directory is the present working directory.
    2. The virtual environment with the project is activated, following the instructions provided in the development installation section.
    3. The storage partition on which database directory is located has at least 6 GiB of free space.
  2. Execute the following command to start fetching the database, while referencing to the modified configuration file.
    $ (venv) mdapi --conffile myconfig.py database
    
  3. Note that the first run of the database fetching command will take a long time, depending on the internet connection.

Serving the application

  1. Ensure that
    1. The project directory is the present working directory.
    2. The virtual environment with the project is activated, following the instructions provided in the development installation section.
  2. Execute the following command to start serving the application, while referencing to the modified configuration file.
    $ (venv) mdapi --conffile myconfig.py serveapp
    
  3. When done with serving the application, press Ctrl + C to raise a KeyboardInterrupt and exit out of the program.

In container or pod

Serving the application

  1. Ensure that
    1. The project directory is the present working directory.
    2. The virtual environment with the project is activated, following the instructions provided in the development installation section.
    3. The container image is built and available locally.
    4. The databases are downloaded to the database directory, following the instructions provided in the database fetching section.
  2. Execute the following command to start the serving the application.
    $ (venv) podman run -v /var/tmp:/var/tmp -p 8080:8080 -ti mdapi:$(poetry version -s)
    
    This command assumes that the database directory is /var/tmp (which is the default) and the service port is 8080 (which is the default).

Metadata

Release files for mdapi 3.1.7

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

Source distribution (sdist)

Source distribution for mdapi 3.1.7
File Size Uploaded
mdapi-3.1.7.tar.gz 28.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mdapi 3.1.7
File Interpreter ABI Platform
mdapi-3.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 65.4 kB

Release files / mdapi-3.1.7.tar.gz

Download URL mdapi-3.1.7.tar.gz
Size 28.3 kB
Tags Source
SHA-256 checksum
How to use checksums
644d92599e7c69f1d499651a7ed426d319bff5e6f86fb6693462e0c61cf2e681
BLAKE2b-256 checksum
How to use checksums
ccd4d608401b1afdaffee6598348067342451ef7cf1f4a22b6b2026350f86349
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.1 CPython/3.13.2 Linux/6.14.0-0.rc4.20250226gitac9c34d1e45a.38.fc43.x86_64

Release files / mdapi-3.1.7-py3-none-any.whl

Download URL mdapi-3.1.7-py3-none-any.whl
Size 37.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
02d8116ed8995eb754f9c7aaf1ceb1bda6335a46c7c1032260c4015de91aecb0
BLAKE2b-256 checksum
How to use checksums
0be91571bee4a5a0e78fb3e6bf231bf2a36f116e9696895a8f90aa9068e1b306
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.1 CPython/3.13.2 Linux/6.14.0-0.rc4.20250226gitac9c34d1e45a.38.fc43.x86_64
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