Skip to content

Commit 590b8a8

Browse files
authored
Merge pull request #1143 from opsmill/dga/chore-migrate-to-rumdl-k0hio
chore(ci): replace markdownlint with rumdl for markdown linting
2 parents 117d811 + beda13a commit 590b8a8

19 files changed

Lines changed: 194 additions & 548 deletions

File tree

.agents/commands/pre-ci.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Run a subset of fast CI checks locally. These are lightweight validations that c
77
uv run invoke format
88
```
99

10-
2. **Lint** (YAML, Ruff, ty, mypy, markdownlint, vale):
10+
2. **Lint** (YAML, Ruff, ty, mypy, rumdl, vale):
1111
```bash
1212
uv run invoke lint
1313
```

.github/workflows/ci.yml

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -99,27 +99,18 @@ jobs:
9999
if: |
100100
needs.files-changed.outputs.documentation == 'true' ||
101101
needs.files-changed.outputs.github_workflows == 'true'
102-
needs: ["files-changed"]
102+
needs: ["files-changed", "prepare-environment"]
103103
runs-on: "ubuntu-latest"
104104
timeout-minutes: 5
105105
steps:
106106
- name: "Check out repository code"
107107
uses: "actions/checkout@v7"
108-
- name: "Linting: markdownlint"
109-
uses: DavidAnson/markdownlint-cli2-action@v23
108+
- name: "Install uv"
109+
uses: astral-sh/setup-uv@v7
110110
with:
111-
config: docs/.markdownlint.yaml
112-
globs: |
113-
**/*.{md,mdx}
114-
!changelog/*.md
115-
!.agents/commands/**
116-
!.agents/skills/**
117-
!.claude/commands/**
118-
!.claude/skills/**
119-
!dev/commands/**
120-
!dev/skills/**
121-
!.specify/templates/**
122-
!.specify/extensions/**
111+
version: ${{ needs.prepare-environment.outputs.UV_VERSION }}
112+
- name: "Linting: rumdl"
113+
run: "uvx rumdl@0.2.28 check ."
123114

124115
action-lint:
125116
if: needs.files-changed.outputs.github_workflows == 'true'

.markdownlint-cli2.yaml

Lines changed: 0 additions & 15 deletions
This file was deleted.

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Foundational library for programmatically interacting with Infrahub. Abstracts t
1919
```bash
2020
uv sync --all-groups --all-extras # Install all deps
2121
uv run invoke format # Format code
22-
uv run invoke lint # Full pipeline: ruff, yamllint, ty, mypy, markdownlint, vale
22+
uv run invoke lint # Full pipeline: ruff, yamllint, ty, mypy, rumdl, vale
2323
uv run invoke lint-code # All linters for Python code
2424
uv run invoke docs-generate # Generate all docs (CLI + SDK)
2525
uv run invoke docs-validate # Check generated docs match committed version

changelog/1138.housekeeping.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Replaced `markdownlint-cli2` with [rumdl](https://github.com/rvben/rumdl) for markdown linting. This removes the Node.js/npm dependency for the markdown check, speeds up linting, and consolidates the configuration into `pyproject.toml` under `[tool.rumdl]`.

dev/constitution.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,55 @@
11
# [PROJECT_NAME] Constitution
2+
23
<!-- Example: Spec Constitution, TaskFlow Constitution, etc. -->
34

45
## Core Principles
56

67
### [PRINCIPLE_1_NAME]
8+
79
<!-- Example: I. Library-First -->
810
[PRINCIPLE_1_DESCRIPTION]
911
<!-- Example: Every feature starts as a standalone library; Libraries must be self-contained, independently testable, documented; Clear purpose required - no organizational-only libraries -->
1012

1113
### [PRINCIPLE_2_NAME]
14+
1215
<!-- Example: II. CLI Interface -->
1316
[PRINCIPLE_2_DESCRIPTION]
1417
<!-- Example: Every library exposes functionality via CLI; Text in/out protocol: stdin/args → stdout, errors → stderr; Support JSON + human-readable formats -->
1518

1619
### [PRINCIPLE_3_NAME]
20+
1721
<!-- Example: III. Test-First (NON-NEGOTIABLE) -->
1822
[PRINCIPLE_3_DESCRIPTION]
1923
<!-- Example: TDD mandatory: Tests written → User approved → Tests fail → Then implement; Red-Green-Refactor cycle strictly enforced -->
2024

2125
### [PRINCIPLE_4_NAME]
26+
2227
<!-- Example: IV. Integration Testing -->
2328
[PRINCIPLE_4_DESCRIPTION]
2429
<!-- Example: Focus areas requiring integration tests: New library contract tests, Contract changes, Inter-service communication, Shared schemas -->
2530

2631
### [PRINCIPLE_5_NAME]
32+
2733
<!-- Example: V. Observability, VI. Versioning & Breaking Changes, VII. Simplicity -->
2834
[PRINCIPLE_5_DESCRIPTION]
2935
<!-- Example: Text I/O ensures debuggability; Structured logging required; Or: MAJOR.MINOR.BUILD format; Or: Start simple, YAGNI principles -->
3036

3137
## [SECTION_2_NAME]
38+
3239
<!-- Example: Additional Constraints, Security Requirements, Performance Standards, etc. -->
3340

3441
[SECTION_2_CONTENT]
3542
<!-- Example: Technology stack requirements, compliance standards, deployment policies, etc. -->
3643

3744
## [SECTION_3_NAME]
45+
3846
<!-- Example: Development Workflow, Review Process, Quality Gates, etc. -->
3947

4048
[SECTION_3_CONTENT]
4149
<!-- Example: Code review requirements, testing gates, deployment approval process, etc. -->
4250

4351
## Governance
52+
4453
<!-- Example: Constitution supersedes all other practices; Amendments require documentation, approval, migration plan -->
4554

4655
[GOVERNANCE_RULES]

docs/.markdownlint.yaml

Lines changed: 0 additions & 15 deletions
This file was deleted.

docs/docs/python-sdk/guides/installation.mdx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
title: Installing infrahub-sdk
33
---
4+
45
# Installing infrahub-sdk
56

67
The Infrahub SDK for Python is available on [PyPI](https://pypi.org/project/infrahub-sdk/) and can be installed using the pip package installer. It is recommended to install the SDK into a virtual environment.
@@ -15,25 +16,33 @@ pip install infrahub-sdk
1516

1617
Extras can be installed as part of the Python SDK and are not installed by default.
1718
<!-- vale off -->
19+
1820
### ctl
21+
1922
<!-- vale on -->
2023

2124
The `ctl` extra provides the `infrahubctl` command, which allows you to interact with an Infrahub instance.
2225

2326
```shell
2427
pip install 'infrahub-sdk[ctl]'
2528
```
29+
2630
<!-- vale off -->
31+
2732
### tests
33+
2834
<!-- vale on -->
2935

3036
The `tests` extra provides all the components for the testing framework of Transforms, Queries and Checks.
3137

3238
```shell
3339
pip install 'infrahub-sdk[tests]'
3440
```
41+
3542
<!-- vale off -->
43+
3644
### all
45+
3746
<!-- vale on -->
3847

3948
Installs `infrahub-sdk` together with all the extras.

docs/docs/python-sdk/guides/tracking.mdx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,14 @@ This behavior ensures that the tracking group specifically reflects changes made
106106

107107
When enabling tracking mode with the `start_tracking` method, you can customize the tracking session with the following parameters:
108108
<!-- vale off -->
109+
109110
| Parameter | Description |
110111
|------------------------|-----------------------------------------------------------------------------------------------------------------------------|
111112
| **identifier** | Unique string to identify the session, used for correlating operations and logs. Defaults to "python-sdk" if not specified. |
112113
| **params** | Optional dictionary for extra context, enabling fine-grained control over tracking. |
113114
| **delete_unused_nodes**| Boolean indicating if nodes not referenced should be automatically deleted, helping maintain a clean state. |
114115
| **group_type** | Type of group object for tracking, default is `CoreStandardGroup`, customizable for specific grouping logic. |
116+
115117
<!-- vale on -->
116118
These parameters provide flexibility, enabling detailed auditing, efficient data management, and support for idempotent operations.
117119

@@ -245,4 +247,4 @@ if group:
245247
```
246248

247249
</TabItem>
248-
</Tabs>
250+
</Tabs>

docs/docs/python-sdk/reference/compatibility.mdx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ This page documents which versions of the Infrahub Python SDK are compatible wit
1010
Each Infrahub release pins a specific SDK version. Using the matching SDK version ensures full compatibility. Newer patch releases of the SDK within the same minor version are generally safe to use.
1111

1212
<!-- vale off -->
13+
1314
| Infrahub | Required SDK | Release date |
1415
| --- | --- | --- |
1516
| 1.9.x | >= 1.20.0 | April 2026 |
@@ -23,13 +24,15 @@ Each Infrahub release pins a specific SDK version. Using the matching SDK versio
2324
| 1.1.x | >= 1.3.0 | December 2024 |
2425
| 1.0.x | >= 1.0.0 | October 2024 |
2526
| 0.16.x | >= 0.13.1 | September 2024 |
27+
2628
<!-- vale on -->
2729

2830
## Detailed release mapping
2931

3032
The table below shows the exact SDK version pinned to each Infrahub release.
3133

3234
<!-- vale off -->
35+
3336
| Infrahub | SDK version | Infrahub release date |
3437
| --- | --- | --- |
3538
| 1.9.3 | 1.20.0 | 2026-05-05 |
@@ -123,16 +126,19 @@ The table below shows the exact SDK version pinned to each Infrahub release.
123126
| 0.16.3 | 0.14.0 | 2024-10-10 |
124127
| 0.16.2 | 0.13.1 | 2024-10-01 |
125128
| 0.16.1 | 0.13.1 | 2024-09-25 |
129+
126130
<!-- vale on -->
127131

128132
## Python version support
129133

130134
<!-- vale off -->
135+
131136
| SDK version | Python versions |
132137
| --- | --- |
133138
| >= 1.17.0 | 3.10, 3.11, 3.12, 3.13, 3.14 |
134139
| 1.16.0 | 3.10, 3.11, 3.12, 3.13 |
135140
| 1.13.0 - 1.15.x | 3.9, 3.10, 3.11, 3.12, 3.13 |
141+
136142
<!-- vale on -->
137143

138144
:::note
@@ -144,11 +150,13 @@ The Infrahub server requires Python 3.12 or later. The SDK supports older Python
144150
Some SDK features require a minimum Infrahub version:
145151

146152
<!-- vale off -->
153+
147154
| Feature | Minimum SDK | Minimum Infrahub |
148155
| --- | --- | --- |
149156
| infrahubctl branch report | 1.19.0 | 1.7 |
150157
| FileObject support | 1.19.0 | 1.8 |
151158
| NumberPool support | 1.13.0 | 1.3 |
159+
152160
<!-- vale on -->
153161

154162
## General guidance

0 commit comments

Comments
 (0)