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)
| File | Size | Uploaded | |
|---|---|---|---|
| eblint-0.0.3.tar.gz | 21.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|