Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V3 #133

Merged
merged 46 commits into from
Nov 16, 2024
Merged

V3 #133

merged 46 commits into from
Nov 16, 2024

Conversation

aedwardstx
Copy link
Collaborator

@aedwardstx aedwardstx commented Nov 9, 2024

Numerous major enhancements to HConfig:

  • add_child() no longer takes an optional index. This feature was seldom used and the order weight functionality offers a similar capability.
  • Hostnames are no longer a required argument of HConfig.
  • Remove HConfig.logs. This feature was seldom used and never fully implemented.
  • All platform specific logic has been moved to Drivers. A driver describes all of the platform specific rules and logic.
  • All performance hot spots have been tuned.
  • Remove HConfigChild.to_tag_spec(). This feature was seldom used and can be implemented externally if needed.
  • Use Pydantic extensively to describe models.
  • get_children() has been extensively optimized for performance.
  • All code in the repo passes Pyright and mypy —strict with no ignores.
  • Ruff with virtually all rules enabled.
  • Most public method args use permissive types e.g. Iterable.
  • HConfigBase._with_tags() bug fix if tags.intersection(child.tags): -> if tags.issubset(child.tags):
  • Immutable objects are used wherever possible
  • HConfig and config view constructor functions are now consolidated in constructors.py
  • Added HConfig.add_children_deep()
  • Eliminate text_match.py
  • Add pydantic validator to load and dump HConfig from str/Dump
  • Remove HConfig.all_children_sorted_with_lineage_rules(). This feature was seldom used and can be implemented externally if needed.
  • Add support for hp_procurve(Aruba AOSS)

@aedwardstx aedwardstx self-assigned this Nov 9, 2024
@jtdub jtdub self-requested a review November 9, 2024 18:34
docs/advanced-topics.md Outdated Show resolved Hide resolved
hier_config/workflow.py Outdated Show resolved Hide resolved
docs/getting-started.md Outdated Show resolved Hide resolved
hier_config/model.py Outdated Show resolved Hide resolved
hier_config/model.py Outdated Show resolved Hide resolved
pyproject.toml Outdated Show resolved Hide resolved
Copy link
Contributor

@jtdub jtdub left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's preserve the v2 documentation by creating a v2 folder and copying the original docs to the v2 folder. In the index, let's create a link to the v2 docs.

I created a 2.3-lts branch from master so that we can easily support bug fixes (if required) for a period of time until folks migrate.

Edit: It's unnecessary to create a a v2 version of the docs. They're available on readthedocs.io as is:

https://hier-config.readthedocs.io/en/2.3-lts/

docs/v2.3/requirements.txt Outdated Show resolved Hide resolved
jtdub
jtdub previously approved these changes Nov 15, 2024
Copy link
Contributor

@jtdub jtdub left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! 🎉

jtdub
jtdub previously approved these changes Nov 15, 2024
@aedwardstx aedwardstx merged commit 006e8d8 into netdevops:master Nov 16, 2024
4 checks passed
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.

3 participants