Skip to main content

A linter for easybuild config files

Project description

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

easyblock
name
version
homepage
description
dependencies
builddependencies
toolchain

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.

Project details


Download files

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

Source Distribution

eblint-0.0.2.tar.gz (21.0 kB view details)

Uploaded Source

Built Distribution

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

eblint-0.0.2-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file eblint-0.0.2.tar.gz.

File metadata

  • Download URL: eblint-0.0.2.tar.gz
  • Upload date:
  • Size: 21.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for eblint-0.0.2.tar.gz
Algorithm Hash digest
SHA256 14a84556759fc2baeb8a3f0c1974b1a82451e651dc33846a0a331a223401c603
MD5 e9bd5d9a500352c0777778fe74fca61c
BLAKE2b-256 a85cce00ea50c162ccac23865fb2e6eb6380a67e48d8fbc2a31e6616c36badbe

See more details on using hashes here.

File details

Details for the file eblint-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: eblint-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for eblint-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d98629a2d75e11c54ec7d6142b4a6896bcec3707950ab2a5cb78a6dfcfcb3ebd
MD5 29215a9f051a95051d9988dff087c4dc
BLAKE2b-256 dee932c0c477b81bea8f14fb933543c62fe352560e2a27b2e4586f4c52ac3e64

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page