Skip to content

Rebase next against master#242

Merged
jtdub merged 10 commits intonextfrom
next-rebase-master
Mar 26, 2026
Merged

Rebase next against master#242
jtdub merged 10 commits intonextfrom
next-rebase-master

Conversation

@jtdub
Copy link
Contributor

@jtdub jtdub commented Mar 26, 2026

Summary

  • Rebases the next branch against the latest master to incorporate recent changes (Huawei VRP driver, CODEOWNERS, TextStyle Literal type)
  • Resolves merge conflicts in tests/unit/test_child.py and hier_config/__init__.py

Test plan

  • All 594 tests pass
  • No regressions

🤖 Generated with Claude Code

jtdub and others added 10 commits March 25, 2026 22:13
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
) (#240)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…es, and reorganize tests (#221)

Remove v2-to-v3 platform mapping functions and constants. Rename
load_hconfig_v2_options to load_driver_rules and load_hconfig_v2_tags
to load_tag_rules, preserving dict-based driver extension for Nautobot
Golden Config compatibility.

Reorganize test suite into unit/, integration/, and benchmarks/
directories mirroring the source code structure. Split the 2079-line
test_hier_config.py into focused files by module (test_root.py,
test_child.py, test_children.py). Separate driver remediation scenario
tests into integration/ and unit tests into unit/platforms/.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace inline match-rule collection with existing _collect_match_rules
helper for consistency. Simplify return type from
tuple[TagRule] | tuple[TagRule, ...] to tuple[TagRule, ...].

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Fix __hash__/__eq__ inconsistency in HConfigChild (#185)

__hash__ included new_in_config and order_weight but __eq__ intentionally
excluded them, violating the Python invariant that a == b implies hash(a) == hash(b).
__eq__ also checked tags but __hash__ did not include them.

Align __hash__ to use the same fields as __eq__: text, tags, and children.

Add five tests covering each dimension of the inconsistency and its practical
impact on set deduplication and dict key lookup.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Fix pre-existing lint errors in next branch

- test_benchmarks.py: replace append loops with extend (PERF401), add
  @staticmethod to methods that don't use self (PLR6301), suppress
  intentional print calls with noqa: T201
- test_child.py: suppress pylint too-many-lines (C0302)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- tags_add()/tags_remove() → add_tags()/remove_tags()
- cisco_style_text() → indented_text()
- dump_simple() → to_lines()
- config_to_get_to() → remediation()
- depth() method → depth property
- Rename private helpers _config_to_get_to/_left/_right accordingly

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add HierConfigError as the base exception with DriverNotFoundError,
InvalidConfigError, IncompatibleDriverError, and reparent
DuplicateChildError under it. Replace generic ValueError/TypeError
raises in constructors and workflows with specific exception types.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
#241)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jtdub jtdub requested a review from aedwardstx as a code owner March 26, 2026 04:17
@jtdub jtdub merged commit eb60564 into next Mar 26, 2026
5 checks passed
@jtdub jtdub deleted the next-rebase-master branch March 26, 2026 04:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant