Release v2.12.0#423
Merged
Merged
Conversation
Megaport fixes for initial maintenance announcement emails
…t Manager Tool
Template:
```
{
"template": "https://github.com/networktocode-llc/cookiecutter-ntc.git",
"dir": "python",
"ref": "main",
"path": null
}
```
Cookie:
```
{
"remote": "https://github.com/networktocode/circuit-maintenance-parser.git",
"path": "/Users/jeffkala/Documents/GitHub/outputs/circuit-maintenance-parser",
"repository_path": "/Users/jeffkala/Documents/GitHub/outputs/circuit-maintenance-parser",
"dir": "",
"branch_prefix": "drift-manager/develop",
"context": {
"codeowner_github_usernames": "@chadell @glennmatthews @pke11y @scetron @jvanderaa",
"full_name": "Network to Code, LLC",
"email": "info@networktocode.com",
"github_org": "networktocode",
"description": "Python library to parse circuit maintenances from network service providers.",
"project_name": "circuit-maintenance-parser",
"project_slug": "circuit-maintenance-parser",
"repo_url": "https://github.com/networktocode/circuit-maintenance-parser",
"base_url": "circuit-maintenance-parser",
"project_python_name": "circuit_maintenance_parser",
"project_python_base_version": "3.10",
"project_with_config_settings": "no",
"generate_docs": "yes",
"version": "2.10.0",
"original_publish_year": "2021",
"_template": "https://github.com/networktocode-llc/cookiecutter-ntc.git",
"_output_dir": "/Users/jeffkala/Documents/GitHub/outputs",
"_repo_dir": "/Users/jeffkala/.cookiecutters/cookiecutter-ntc/python",
"_checkout": "main"
},
"drift_managed_branch": "develop",
"remote_name": "origin",
"pull_request_strategy": "PullRequestStrategy.CREATE",
"post_actions": [],
"baked_commit_ref": "",
"draft": false
}
```
CLI Arguments:
```
{
"cookie_dir": "",
"input": true,
"json_filename": "",
"output_dir": "../outputs",
"push": true,
"template": "https://github.com/networktocode-llc/cookiecutter-ntc.git",
"template_dir": "python",
"template_ref": "main",
"pull_request": null,
"post_action": [],
"disable_post_actions": false,
"draft": null,
"drift_managed_branch": "develop"
}
```
- Resolve merge conflicts in pyproject.toml and README.md - Update pyproject.toml for poetry 2.x build system with docs dependencies - Add project-specific content to placeholder docs (overview, getting started, use cases, FAQ, extending guide, release notes) - Create v2.10 release notes page required by docs build check - Add mkdocs build output to .gitignore - Fix ruff formatting and import sorting issues
Restore detailed content from original README into the developer documentation: full 7-step provider checklist with test examples, local debugging guide, and local dev requirements with INVOKE_PARSER_LOCAL note.
The cookiecutter template generated INVOKE_CIRCUIT-MAINTENANCE-PARSER_* env var names, but hyphens are invalid in shell variable names. This caused Docker image tags to resolve as ":version" with no image name. Revert to the original INVOKE_PARSER_* names used by tasks.py.
Rename IDENTIFIER to identifier to conform to snake_case naming.
Resolve poetry.lock conflict after lxml 6.0.2 update (PR #390). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Resolve poetry.lock conflict after lxml version update (#394) merged into develop. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Merge main back to develop after v2.11.0 release
Bump version to 2.11.1-beta
Reduce amount of local variables to make pylint happy
Remove trailing space in summary-field
Add change text for PR 378
Resolves merge conflict in pyproject.toml: keep the cookiecutter-added [[tool.towncrier.type]] "breaking" section alongside develop's post-v2.11.0 state (towncrier fragments consumed into docs/release_notes.md, version bumped to 2.11.1b1). Brings PR #388 current with develop ahead of merging so the drift-managed ci.yml and release.yml replace the legacy inline publish jobs.
Cookie initially baked targeting develop by NetworkToCode Cookie Drift Manager Tool
Bump pytest minimum to 9.0.3 (CVE-2025-71176)
…tenance_id Moving forward, maintenance ID's for Equinix are in the format of CHG[0-9]+
Support old and new maintenance_id format; only fall back on matching for CHG[0-9]+ in case maintenance_id is not matched between brackets
Changelog message
Co-authored-by: Josh VanDeraa <josh@josh-v.com>
Co-authored-by: Josh VanDeraa <josh@josh-v.com>
Add Telxius parser
Add parser for provider/vendor RETN.
Equinix fix matching maintenance_id in alternative email subject line
Bumped click, coverage, mkdocs-redirects, netconan, pylint, and ruff, along with CI action pins (actions/checkout, docker/setup-buildx-action, pypa/gh-action-pypi-publish). Added Python 3.14 to the supported version range, expanded the CI matrices to cover it, and removed an indentation-flagged trailing comment in release.yml.
Resolved five open Dependabot advisories by adding minimum-version constraints to pyproject.toml so Poetry resolves transitive deps to patched releases: - lxml >=6.1.0 (XXE in iterparse default configuration) - urllib3 >=2.7.0 (sensitive-header forwarding on proxied redirects; decompression-bomb safeguard bypass) - requests >=2.33.0 (insecure temp file reuse in extract_zipped_paths) - pygments >=2.20.0 (ReDoS in GUID regex matching) Regenerated poetry.lock; only the four flagged packages changed.
- Added build-essential to the Dockerfile so transitive deps lacking cp3xx wheels can be source-built (relevant for the newest Python). - Added `numpy` as a direct dependency with Python-version markers so 3.11+ pulls numpy >=2.3 (with cp314 wheels) while 3.10 stays on the 2.2 line; this lets one lock resolve across the full supported range, including Python 3.14. - Bumped cffi (1.17 -> 2.0) so 3.14 uses the wheel-supported line rather than source-compiling. - Bumped pymdown-extensions (10.21 -> 10.21.2) to fix a None-filename regression with pygments 2.20.0 that broke `dev/extending.md` during docs build. - Held mkdocs-redirects at 1.2.2; 1.2.3 introduced a transitive dependency on the properdocs fork, which deserves separate evaluation before adoption. - Verified locally: full pytest suite passes on Python 3.14.4 inside a fresh image, and `invoke build-and-check-docs` succeeds.
…her fixes that came up during PR review.
Add parser for Vodafone
Add in a parser for vendor SummitIG
…enance-parser into flag-parser
Add parser for FLAG (fka Global Cloud Xchange)
…6-05 Bump dependencies and add Python 3.14 support
Add Cirion parser (Lumen fork)
glennmatthews
approved these changes
Jun 12, 2026
| authors = ["Network to Code, LLC <opensource@networktocode.com>"] | ||
| license = "Apache-2.0" | ||
| homepage = "https://github.com/networktocode/circuit-maintenance-parser" | ||
| homepage = "https://circuit-maintenance-parser.readthedocs.io/" |
Contributor
There was a problem hiding this comment.
This link is a 404 for me?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #422
Minor release v2.12.0, following docs/dev/release_checklist.md.
Important
Do not squash merge. Use Create a merge commit when merging into
main.What's Changed
Security
lxml(>=6.1.0),urllib3(>=2.7.0),requests(>=2.33.0), andpygments(>=2.20.0) to address open Dependabot advisories (XXE in iterparse, sensitive-header forwarding on proxied redirects, decompression-bomb safeguard bypass, insecure temp file reuse, ReDoS).Added
Fixed
maintenance_idfor the alternative email subject line, when themaintenance_idis not matched between square brackets.Dependencies
numpyby Python version (2.2.x on Python 3.10, >=2.3 on 3.11+) so the same lock resolves cleanly across the full supported range.Housekeeping
main.Notes for reviewers
changes/396was reclassified from.securityto.housekeeping(pytest is a dev-only dependency; per NTC convention established on Bump pytest minimum to 9.0.3 (CVE-2025-71176) #406).docs/admin/release_notes/version_2.11.mdso v2.11 follows the per-minor split-file pattern (it previously lived only in the combineddocs/release_notes.md).poetry.lockintentionally left untouched; dependency refreshes are handled by the open Renovate PRs.