Skip to main content

An easybuild config linter

Eblint is a linter for easybuild config files. It uses the Python standard library ast module to parse the config files, as those files follow Python syntax.

Installation

Install eblint with pip:

pip install eblint

Usage

You can lint an individual config file with by invoking eblint on the command line. Eblint also supports multiple input files and wildcards. The following are all valid calls to eblint:

eblint example-config.eb
eblint example-config-1.eb example-config-2.eb
eblint **/*.eb

Current rules

Eblint is aimed at closely resembling the specifications laid out by Easybuild. Currently the following rules are in place

M001: Mandatory fields

The following fields are required

name
version
homepage
description
toolchain
moduleclass

M002: First ordered fields

The first fields in a config file are the ones below, in that particular order. Other fields cannot be defined before or in between those fields.

easyblock
name
version
versionsuffix

M003: Soft ordered fields

The following fields are required to be in this order. Other fields not mentioned in this list can come before or in between, but the fields in this list are required to be in this order.

versionsuffix
homepage
description
toolchain
toolchainopts
github_account
source_urls
sources
download_instructions
patches
crates
checksums
osdependencies
allow_system_deps
builddependencies
dependencies
start_dir
preconfigopts
configopts
prebuildopts
buildopts
preinstallopts
installopts
runtest
postintallcmds
fix_python_shebang_for
exts_list
sanity_check_paths
sanity_check_commands
modextravars
modluafooter
modtclfootar
moduleclass

M004: Final field

The last field in an easybuild config file should be moduleclass.

M005: Forbidden fields

The field accept_eula should not be defined in a public EasyConfig file.

Metadata

Release files for eblint 0.0.3

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

Source distribution (sdist)

Source distribution for eblint 0.0.3
File Size Uploaded
eblint-0.0.3.tar.gz 21.8 kB Details

Built distribution (wheel)

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

Total release size: 38.6 kB

Release files / eblint-0.0.3.tar.gz

Download URL eblint-0.0.3.tar.gz
Size 21.8 kB
Tags Source
SHA-256 checksum
How to use checksums
e7994d0ece74a17cc9c573ab1700de9f363e222eac7d223d5c03fc8752e77b04
BLAKE2b-256 checksum
How to use checksums
c3af633949c7d7f46e60a26b8f49ca547efa05421738ff15d76ca8d9b87d0bc2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / eblint-0.0.3-py3-none-any.whl

Download URL eblint-0.0.3-py3-none-any.whl
Size 16.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b5bf1f3fa210e6135df5b363db61ad3de7d17b731fe8bade531aad1102841ba7
BLAKE2b-256 checksum
How to use checksums
07936543d4234c3892a7091b6f2154d9f602ed30fad7945d9d0965eaf00ff933
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

0.0.0

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