Skip to main content

f2r

Command line tool to create RPMs out of aliBuild output.

Prerequisites

Installation

To just install the tool: python3 -m pip install f2r

OR

Use flp-release-server role from system-configuration to fully provision a build server.

Quickstart

Build packages using aliBuild, eg:

aliBuild build O2Suite --defaults o2-dataflow --always-prefer-system

Then, run alienv as indicated by aliBuild in order to create modulefiles:

alienv enter O2Suite/latest-o2-dataflow
exit # do not forget to exit

And create RPMs providing same package and version as to alienv:

f2r generate --package O2Suite --version latest-o2-dataflow

Validate created RPMs (this requires sudo):

f2r validate

Create YUM repo:

f2r repo

and sync it to S3:

f2r sync

CLI options

Simple run f2r -h to see all available options

Developers documentation

Software lifecycle

  • Make changes and merge MR when all tests pass
  • Bump version in setup.py
  • Publish to PyPI
    • python3 setup.py sdist bdist_wheel
    • TWINE_USERNAME=$TWINE_USERNAME TWINE_PASSWORD=$TWINE_PASSWORD python3 -m twine upload --repository pypi dist/*
  • Update build server using pip

Simple description of the logic

Creates tree of dependencies by recursively iterating over "alidist" recipes. It disables certain packages based on selected "defaults". It retrieves versioning information from "modulefiles" (as "alidist" recipes do not provide that).

It is capable of generating "devel" RPMs. In such case, in addition to runtime dependencies, it also packs build dependencies. (NOTE: There is no source of truth for build dependencies versioning, therefore the latest available version is used.)

It picks up system dependencies when aliBuild package is not available. For this reason it uses definitions in (devel|runtime).slc*.yaml file translate system dependencies into list of RPM packages.

Then, it uses fpm tool to generate RPMs.

Setup virtual environment for development and test (venv)

  1. cd flp-to-rpm
  2. python3 -m venv env
  3. source env/bin/activate
  4. python -m pip install -r requirements.txt
  5. python3 -m pip install .
  6. You can execute and work. Next time just do source env/bin/activate and then you are good to go.
  7. If you modify the code, then rerun python3 -m pip install .

Unit Tests

cd flp-to-rpm
source env/bin/activate  
cd tests

# Run a test: 
python -m unittest testModule.TestModule.test_versions

# Run all tests:
python3 -m unittest discover tests

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

f2r-2.13.0.tar.gz (29.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

f2r-2.13.0-py3-none-any.whl (33.1 kB view details)

Uploaded Python 3

File details

Details for the file f2r-2.13.0.tar.gz.

File metadata

  • Download URL: f2r-2.13.0.tar.gz
  • Upload date:
  • Size: 29.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for f2r-2.13.0.tar.gz
Algorithm Hash digest
SHA256 8d8863c14d3976b3c7200d4332306465cd3e84d5761a6caed45a2233d3754439
MD5 5af49149f86affb89144c57991af4082
BLAKE2b-256 e2d6b42e661ced37531291d38494444c2f6d3c5a9ca4fd6d5d5546275e599893

See more details on using hashes here.

File details

Details for the file f2r-2.13.0-py3-none-any.whl.

File metadata

  • Download URL: f2r-2.13.0-py3-none-any.whl
  • Upload date:
  • Size: 33.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for f2r-2.13.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0a7e694ddaf8da027f628e7e553060846ac79c1b254ad426ace2cbfb0b8b1011
MD5 1931dc82b213aadbee6c82c59a7e2de7
BLAKE2b-256 e2b5427c2a4a2d0062c21c13b6d896c31827c2602938561c181bd172317744d1

See more details on using hashes here.

Release history Release notifications | RSS feed

3.2.0

2 files

3.1.0

2 files

3.0.3

2 files

3.0.2

2 files

3.0.1

2 files

3.0.0

2 files

This release

2.13.0 This release

2 files

2.12.0

2 files

2.11.0

2 files

2.10.0

2 files

2.9.0

2 files

2.8.3

2 files

2.8.2

2 files

2.8.1

2 files

2.8.0

2 files

2.7.0

1 file

2.6.6

1 file

2.6.5

1 file

2.6.4

1 file

2.6.3

2 files

2.6.2

2 files

2.6.1

2 files

2.6.0

1 file

2.5.1

2 files

2.5.0

2 files

2.4.14

2 files

2.4.13

1 file

2.4.12

2 files

2.4.11

2 files

2.4.9

1 file

2.4.8

2 files

2.4.7

2 files

2.4.6

2 files

2.4.5

2 files

2.4.4

2 files

2.4.3

2 files

2.4.2

2 files

2.4.1

2 files

2.4.0

2 files

2.3.1

2 files

2.3.0

2 files

2.2.1

2 files

2.2.0

2 files

2.1.0

2 files

2.0.1

2 files

2.0.0

2 files

1.6.0

2 files

1.5.3

2 files

1.5.2

2 files

1.5.1

2 files

1.5.0

2 files

1.4.2

2 files

1.4.0

2 files

1.2.10

2 files

1.2.9

2 files

1.2.8

2 files

1.2.7

2 files

1.2.6

2 files

1.2.5

2 files

1.2.4

2 files

1.2.3

2 files

1.2.2

2 files

1.2.1

2 files

1.1.0

2 files

1.0.7

2 files

1.0.6

2 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