EnvGene Linter
EnvGene Linter checks EnvGene instance and template repositories and saves findings in HTML and JSON reports. Template-only repositories are checked by TPL-1, TPL-4, and TPL-6. Other implemented checks require instance inputs.
Install
You need Python 3.12 or newer with pip.
The Python command can be named python or python3, depending on your installation.
Check which command is available with python --version or python3 --version.
Use one of the following commands with Python 3.12 or newer to install or update the tool:
python -m pip install --upgrade qubership-envgene-linter
Or, if your Python command is python3:
python3 -m pip install --upgrade qubership-envgene-linter
On Windows, you can also use py -m pip if the Python launcher is installed.
You do not need to download the source code or build the package.
Run a check
Open a terminal in your repository root: the directory containing environments/, templates/, or both.
Run:
envgene-linter check
Open the report
When the check finishes, the terminal shows both report locations, for example:
HTML report saved here: /path/to/instance-repository/envgene-linter-report.html
JSON report saved here: /path/to/instance-repository/envgene-linter-report.json
Open that HTML file in your browser. Each finding shows the affected file, the issue, and a suggested action.
Use JSON for automated processing or AI tools. It contains an array of findings with rule_id, rule_title,
files, issue, action, and fix_suggestion. An empty result is [].
The linter does not fix configuration files automatically.
Every successful check replaces both reports. Their filenames are added to the repository's .gitignore.
Errors and messages about skipped files appear in the terminal. Review those messages if a file could not be checked.
Optional commands
To also display findings in the terminal:
envgene-linter check --console
To check a repository without changing directories:
envgene-linter check /path/to/instance-repository
Both commands also create HTML and JSON reports.
Troubleshooting
- If pip reports
externally-managed-environment, install in a Python virtual environment. A virtual environment is optional for the linter, but some systems require one for pip installations. - If the terminal cannot find
envgene-linter, check that your Python scripts directory is onPATH. If you installed in a virtual environment, activate that environment first. - If neither
environments/nortemplates/is found, run the command from the repository root. - For template-only repositories, HTML and console output mark unsupported checks as
Not applicable. JSON omits them. TPL-1, TPL-4, and TPL-6 still run unless disabled.
This is an alpha release. Most checks cover supported references and generator inputs.
TPL-1 checks YAML and template placement under templates/, environments/, and configuration/.
Exit code 0 means the check completed, including runs with findings. Exit code 2 indicates a command or execution error.
TPL-4 reviews references without recognized presence protection. It does not prove that generation fails.
TPL-6 checks template logic and allows recognizable Helm passthrough in raw blocks.
Both rules inspect .j2 files under templates/ and supported descriptor fields without rendering templates.
EnvGene Linter changelog
0.0.6
- Add TPL-4, enabled by default, to review potentially optional Jinja references without recognized presence protection,
such as
defaultor an appropriateis definedcheck. Report candidates as Review without claiming that rendering fails. - Add TPL-6, enabled by default, to report prohibited Jinja constructs as Fix and uncertain template logic as Review.
Allow recognizable Helm passthrough in
rawblocks and review other raw blocks. Both new rules check.j2files undertemplates/and supported descriptor fields in instance and template repositories. - Generate
envgene-linter-report.jsonalongside HTML on every check, with one object per finding and all related file locations. Includerule_id,rule_title,files,issue,action, andfix_suggestion. Write[]when there are no findings. Add the JSON report filename to.gitignoreautomatically. - Print separate
HTML report saved here:andJSON report saved here:messages with absolute report paths.
0.0.5
- Hide disabled rules in HTML and console reports. If every rule is disabled, show
No rules enabled. - Support template repositories containing
templates/without requiringenvironments/. TPL-1 runs on these repositories. Other checks are not yet supported for template-only repositories. - Add TPL-1, enabled by default, to check YAML and
.j2placement undertemplates/,environments/, andconfiguration/. Allow generator-rendered descriptor fields and EnvGene macros. Report misplaced templates and EnvGene Jinja as Fix, and ambiguous Helm or application placeholders as Review. No automatic conversion or renaming is performed. - Add VAL-4, enabled by default, to review JSON collections and YAML block collections encoded as strings in connected ParameterSets, including application parameters and nested values. Findings recommend native YAML after checking the consumer contract. No automatic conversion is performed.
0.0.4
- Add INT-3 to report used reference names defined at multiple environment, cluster, or repository scopes. Checks cover ParameterSets, shared Credential files, Resource Profile Overrides, and Shared Template Variables.
- Add INT-4 to flag authored entities for which no references were found in available local sources. Findings recommend Review and explain uncertainty, including external templates and rendered references. The rule does not establish that removal is safe or delete entities automatically.
- Add NAME-8 to check that selected default Cloud Passports use the filename stem
passportand their selected companion Credential files usepassport-creds. Thepassport-infrafile and its companion are excluded. - Enable INT-3, INT-4, and NAME-8 by default.
- Remove the Type row and its colored chips from HTML findings. Cards retain File, Issue, Action, and Fix suggestion. Console severity remains unchanged.
- Show the repository's root folder name below the HTML report heading and in the browser tab title. Escape special characters and show the name even when there are no findings.
0.0.3
No functional changes from 0.0.2.
0.0.2
- Allow
envgene-linter checkwithout a repository argument to check the current directory. Explicit repository paths remain supported. - Create or update
envgene-linter-report.htmlby default and print its absolute path. - Add
--consoleto also print findings in the terminal. Errors and parsing diagnostics remain visible by default. - Remove
--html. HTML reports are generated automatically, including when--consoleis used.
To migrate from 0.0.1, remove --html from existing commands.
Add --console to commands that need findings on stdout, including shell redirection and CI log collection.
Each successful check now writes the report and adds it to the checked repository's .gitignore if needed.
The report location must be writable. Findings still return exit code 0, and operational errors return 2.
0.0.1
- Initial PyPI release of
qubership-envgene-linter. - Check local instance repositories for placement, naming, secret handling, and reference integrity.
- Print findings in the terminal, with optional HTML output through
--html. - Support rule switches configured when the package is built.
Metadata
Release files for qubership-envgene-linter 0.0.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qubership_envgene_linter-0.0.6.tar.gz | 62.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qubership_envgene_linter-0.0.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 151.9 kB
Release files / qubership_envgene_linter-0.0.6.tar.gz
| Download URL | qubership_envgene_linter-0.0.6.tar.gz |
|---|---|
| Size | 62.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3c540eb90cebef84e91a830c1d3897bb76fdb6eeae4376a347d37dd866759c2f
|
|
BLAKE2b-256 checksum How to use checksums |
4a6dfbe39e1104cc6e7cbfcac2f8a403dc750d27a98066f927d327ef0714bfc8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.3 CPython/3.12.14 Linux/6.17.0-1022-azure
|
Release files / qubership_envgene_linter-0.0.6-py3-none-any.whl
| Download URL | qubership_envgene_linter-0.0.6-py3-none-any.whl |
|---|---|
| Size | 89.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2a55646bc4cadb5faae423a42f7805be2376deb99ed73e5b1a363cae4ee81ec4
|
|
BLAKE2b-256 checksum How to use checksums |
fc87ad650d6862cef26303cdac2a3ebfa21e87c312fdefc9f9bc4c24ad9658ed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.3 CPython/3.12.14 Linux/6.17.0-1022-azure
|