Skip to content

Latest commit

 

History

History
451 lines (268 loc) · 33.8 KB

File metadata and controls

451 lines (268 loc) · 33.8 KB

CHANGELOG

v1.5.0 (2026-05-02)

Bug Fixes

  • Add schema-driven module type property detection and component comparison (#64, 2af54a0)
  • Update module type scalar properties (e.g. part_number) on --update (#64, 2af54a0)
  • Module change detection and diff-u report without --update (#64, 2af54a0)
  • Display none and empty string consistently in diff-u output (#64, 2af54a0)
  • Resolve all pre-commit issues (#64, 2af54a0)
  • Upload module-type images before scalar patch in existing-module path (#64, 2af54a0)
  • Three module change detection bugs (#64, 2af54a0)
  • Apply component changes for existing module types during --update (#64, 2af54a0)
  • Remove module_bay_templates from _no_module_type for idempotent caching (#64, 2af54a0)
  • Retry transient graphql connection errors and fix module type change report ordering (#64, 2af54a0)
  • Catch graphqlerror and netboxrequesterror with user-friendly messages (#64, 2af54a0)
  • Detect and skip duplicate (manufacturer, model) yaml definitions (#64, 2af54a0)
  • Apply --remove-components for module types and reject argparse abbreviations (#64, 2af54a0)
  • Address pr review findings and add coverage tests (#64, 2af54a0)
  • Address second-round coderabbit review findings (#64, 2af54a0)
  • Ruff format/c901 (#64, 2af54a0)
  • Defer module_type_properties loading; tighten mock shapes (#64, 2af54a0)
  • Address pr review round 9 findings (#64, 2af54a0)
  • Round-10 cr fixes: narrow except, preload guard, test hardening (#64, 2af54a0)
  • Re-raise preload errors instead of swallowing and caching empty records (#64, 2af54a0)
  • Defer module_updated accounting to post-component-reconciliation (#64, 2af54a0)
  • Count scalar success when component removals skipped + update docs (#64, 2af54a0)
  • Treat all-failed component api calls as a failure, not cached (#64, 2af54a0)
  • Distinguish partial from full component reconciliation via delta/count (#64, 2af54a0)
  • Exclusive module outcome counters, partial rendering, resolver sentinel + doc (#64, 2af54a0)
  • schema_reader: Use explicit allowlist for scalar property detection (#64, 2af54a0)
  • Accurate applied counts in log, module failure outcomes, and test hardening (#64, 2af54a0)
  • Correct module outcome reason and harden test assertions (#64, 2af54a0)

Chores

  • Ruff format (#64, 2af54a0)
  • deps: Bump the python-deps group with 2 updates (#63, db057ab)
  • deps: Bump gitpython from 3.1.46 to 3.1.47 (#62, 2341906)

Documentation

  • Round-11 cr fixes — update docstrings for 3-tuple return and per-page callback (#64, 2af54a0)

Features

  • Schema-driven property comparison for device/module types (#64, 2af54a0)
  • Full component comparison for module types with description/color/rf_role coverage (#64, 2af54a0)
  • Validate graphql component fetch counts against rest api (#64, 2af54a0)
  • Graphql count mismatch retry logic, 100% docstring coverage (#64, 2af54a0)

Refactoring

  • Extract shared diff-u formatter into core/formatting.py (#64, 2af54a0)
  • Reuse changedetector instance via lazy cached property (#64, 2af54a0)
  • Remove power-port singular alias entirely (closes #67) (#64, 2af54a0)

Testing

  • Tighten pending-removal and rack-type summary assertions (#64, 2af54a0)

Contributors

@dependabot[bot], @marcinpsk

v1.4.0 (2026-04-23)

Bug Fixes

  • Centralize _unknown_src sentinel and fix coercion typeerror test (#61, 0d74d42)

Chores

  • ci: Bump astral-sh/setup-uv in the github-actions group (#59, 5a340e3)
  • deps: Bump ruff from 0.15.10 to 0.15.11 in the python-deps group (#60, a761779)
  • Document --slugs argument (#58, 633c354)
  • Small fixes (#58, 633c354)
  • Add info about v1 vs v2 tokens in readme (#57, 126e445)
  • deps: Bump the python-deps group with 3 updates (#53, 85127a3)

Features

  • Improve --verbose diff output for modified device types (#61, 0d74d42)
  • Improve --verbose diff output for modified device types (#61, 0d74d42)

Refactoring

  • Extract shared normalize_values / values_equal helper (#61, 0d74d42)

Contributors

@dependabot[bot], @Frigyes06, @marcinpsk, Aaron Axvig

v1.3.3 (2026-04-15)

Bug Fixes

  • Suppress insecurerequestwarning when ignore_ssl_errors is enabled (#56, 46c4967)
  • Use --native-tls instead of invalid --system-certs in pre-commit hooks (#56, 46c4967)

Chores

  • deps: Bump pytest from 9.0.2 to 9.0.3 (#54, e977c4d)
  • ci: Bump the github-actions group with 2 updates (#52, 837d293)

Contributors

@dependabot[bot], @marcinpsk

v1.3.2 (2026-04-09)

Bug Fixes

  • Update module image discovery for flat upstream layout (#50, aaf1b3e)

Chores

  • deps: Bump ruff from 0.15.8 to 0.15.9 in the python-deps group (#49, d5874c0)
  • ci: Bump docker/login-action in the github-actions group (#48, 2327192)

Contributors

@dependabot[bot], @marcinpsk

v1.3.1 (2026-04-03)

Bug Fixes

  • Show actionable error for proxy/connection failures (#47, 887db9c)
  • Show actionable error message for proxy/connection failures (#47, 887db9c)
  • Catch graphql 403 and show actionable error message (#47, 887db9c)
  • Retry transient connection errors during bulk api operations (#47, 887db9c)
  • Catch graphqlerror from devicetypes initialization (#47, 887db9c)

Chores

  • Use --native-tls for uv in pre-commit hooks (#47, 887db9c)
  • Standardize retry count in connection error log messages (#47, 887db9c)
  • deps: Bump the python-deps group with 2 updates (#45, 79385ee)

Contributors

@dependabot[bot], @marcinpsk

v1.3.0 (2026-03-31)

Chores

  • deps: Bump pygments from 2.19.2 to 2.20.0 (#44, 67f1780)
  • ci: Bump astral-sh/setup-uv in the github-actions group (#43, 3c6c7a0)
  • deps: Bump requests from 2.32.5 to 2.33.0 (#42, 11c1da0)
  • deps: Bump the python-deps group with 2 updates (#41, 6ff350c)
  • ci: Bump astral-sh/setup-uv in the github-actions group (#40, 9b53248)
  • deps: Bump ruff from 0.15.5 to 0.15.6 in the python-deps group (#39, 04f116c)
  • ci: Bump astral-sh/setup-uv in the github-actions group (#38, 18d2aed)
  • ci: Bump docker/setup-buildx-action in the github-actions group (#37, 29fba71)
  • ci: Sha-pin all workflow actions and group dependabot updates (af0b4b1)

Features

  • Resolve module type profile string to name dict for netbox api (#46, 23603b2)
  • Resolve module type profile string to name dict for netbox api (#46, 23603b2)

Testing

  • Add edge-case tests for profile already-dict and null (#46, 23603b2)

Contributors

@dependabot[bot], @marcinpsk, Marcin Zieba

v1.2.0 (2026-03-10)

Bug Fixes

  • Handle remote url mismatch and improve branch error message in pull_repo (#35, f5675bf)
  • Address pr review comments - graphql 3-tier fallback, legacy mapping update, empty stanza, inline validation, multi-mapping test coverage, extract helper to reduce complexity (#35, f5675bf)
  • Guard legacy 2-tuple _mappings unpack, validate rear-ports:[], simplenamespace in tests, assert call ordering (#35, f5675bf)
  • Prune fetch, early-return port-mappings key, core.repo.glob patch, type= in no-change test (#35, f5675bf)
  • Clear legacy rear_port on empty mappings; add devicetypes test factory (#35, f5675bf)
  • Remove dead code in _build_mappings_patch (not m2m inside if m2m block) (#35, f5675bf)
  • Thread yaml_data into legacy mapping path; add markdownlintignore for changelog (#35, f5675bf)

Build System

  • deps: Bump docker/metadata-action from 5 to 6 (#30, 8447b2b)
  • deps: Bump actions/upload-artifact from 4 to 7 (#31, 947c5c9)
  • deps: Bump docker/login-action from 3 to 4 (#28, 3621faa)
  • deps: Bump docker/build-push-action from 6 to 7 (#29, daa3cde)
  • deps: Bump python-dotenv from 1.2.1 to 1.2.2 (#33, 0fef4b0)
  • deps-dev: Bump ruff from 0.15.4 to 0.15.5 (#34, 6632940)
  • deps: Bump docker/setup-qemu-action from 3 to 4 (#32, 4ab06a8)

Features

  • Add full port-mappings stanza support with multi-mapping and change detection (#35, f5675bf)
  • Add full port-mappings stanza support with multi-mapping and change detection (#35, f5675bf)

Testing

  • Add regression tests, version-path parametrize, and coverage gaps (#35, f5675bf)
  • Assert no fallback retry when has_mappings guard fires in graphql fallback test (#35, f5675bf)

Contributors

@dependabot[bot], @marcinpsk

v1.1.0 (2026-03-01)

Bug Fixes

  • Address code review findings (src_file in error msg, empty env vars, slug guard, test assertions, docstrings, coverage xml) (#27, de988fc)
  • Coerce float strings via float() in _values_equal to avoid false updates (#27, de988fc)
  • Strip trailing newlines in _values_equal to handle yaml literal blocks (#27, de988fc)
  • Numeric coercion, missing exception key, deterministic glob, docs (#27, de988fc)
  • Address code review findings in log_handler and netbox_api (#27, de988fc)

Build System

  • deps: Bump python from 3.12-slim to 3.14-slim (#26, ab23bcf)
  • deps-dev: Bump ruff from 0.15.2 to 0.15.4 (#25, 4946d44)

Documentation

  • Add contribution attribution to changelog and fix markdownlint (#27, de988fc)

Features

  • Add rack-type, reduce complexity, add option to configure repo_path location (#27, de988fc)
  • Add ci coverage check, semantic-release contributor attribution (#27, de988fc)
  • Repo_path env var, move default back to project root, add path validation (#27, de988fc)
  • Add rack-types import support (netbox >= 4.1) (#27, de988fc)

Refactoring

  • Reduce log_change_report complexity below 15 (#27, de988fc)
  • Reduce netbox_api.py complexity below 15 (#27, de988fc)
  • Reduce main() complexity below 15 (#27, de988fc)

Testing

  • Achieve 100% coverage of nb-dt-import.py (#27, de988fc)

Contributors

@dependabot[bot], @marcinpsk

v1.0.2 (2026-03-01)

Bug Fixes

  • Show proper image upload progress bar with total count (#24, a7c8d9b)
  • Show proper image upload progress bar with total count (#24, a7c8d9b)
  • Exclude already-uploaded images from progress bar total (#24, a7c8d9b)

Chores

  • Updated dependencies (#24, a7c8d9b)

Contributors

@marcinpsk

v1.0.1 (2026-02-28)

Bug Fixes

  • Use python directly instead of uv run in dockerfile cmd (3d8a808)

Contributors

@Pa0x43

v1.0.0 (2026-02-23)

Bug Fixes

  • Netbox 4.5+ compatibility with v2 token auth for ci improvements (#22, 0ba1006)
  • Weekly ci, core/ restructure, v2 token auth, and release workflow (#22, 0ba1006)
  • Update semantic-release config to v8+ and fix validate_git_url docstring (#22, 0ba1006)
  • Validate file:// urls have a non-empty path (#22, 0ba1006)
  • Correct netbox configuration path and heredoc indentation in ci (#21, 3ff48ec)
  • Correct netbox configuration path and heredoc indentation in ci (#21, 3ff48ec)
  • Restore checkov suppression comments and add explicit utf-8 encoding (#21, 3ff48ec)

Contributors

@marcinpsk

v0.4.0 (2026-02-22)

Build System

  • deps-dev: Bump ruff from 0.15.1 to 0.15.2 (#19, 584011f)
  • deps: Bump rich from 14.3.2 to 14.3.3 (#20, e8366ca)

Features

  • Migrate read queries from rest to graphql with configurable tuning (#18, 7f63a0f)

Contributors

@dependabot[bot], @marcinpsk

v0.3.0 (2026-02-20)

Bug Fixes

    1. module-type progress tracking — wrapped files with get_progress_wrapper(progress, files, desc=parsing module types) before (0fde990)

Contributors

@marcinpsk

v0.2.0 (2026-02-17)

Bug Fixes

  • Skip absent yaml properties in change detection, remove unused method, fix update cache (17d3561)
  • Detect property removals, guard component removal detection, and fix null yaml values (641ff69)
  • Updated progress on compare (1f229f8)
  • Use _get_cached_or_fetch in _create_generic to fix module component detection (abb1c87)
  • Invalidate component cache after successful removal in remove_components (8a21f19)
  • Invalidate component cache after successful creation in _create_generic (50b7ba3)
  • Use item.name instead of str(item) for component cache keys (28c3eae)
  • Use _get_cached_or_fetch in update/remove_components, fix endpoint.delete call (86a2e30)
  • Respect empty cache in _get_cached_or_fetch, fix netbox capitalization (04d1510)
  • Correct module counter keys, alias-aware component additions, per-item updates, readme typos (c981780)
  • Changed black to ruff format (3883d97)
  • Added --remove-components to remove components from models when yaml changed - for example conversion from interfaces to module-bays (69fc19a)
  • Updated new device creation (07962a6)
  • Normalize trailing whitespace in change detection (498529b)
  • Handle pynetbox record objects in change detection (04a1592)
  • Image handling (681d4cb)
  • Image handling (287bfb1)
  • Reformatted (0bf196c)
  • Defensive checks (db6dcb0)
  • Update logging (4d3cbf0)
  • Update url handling (9f80fdf)
  • Image handling - closing files, simple url verification (92fea33)
  • Wording (965ad5c)
  • Remove old versions that dont work anymore (602f9d4)
  • Create poweroutlet with unambiguous powerport (16b922b)

Build System

  • deps-dev: Bump ruff from 0.14.9 to 0.15.1 (b8bc0fc)
  • deps: Bump gitpython from 3.1.45 to 3.1.46 (b075e9d)
  • deps-dev: Bump black from 25.12.0 to 26.1.0 (2885114)
  • deps: Bump pynetbox from 7.5.0 to 7.6.1 (016a4c2)
  • deps-dev: Bump pre-commit from 4.5.0 to 4.5.1 (f926447)
  • deps: Bump tqdm from 4.67.1 to 4.67.3 (0654d46)
  • deps: Bump the uv group across 1 directory with 3 updates (8aa7283)
  • deps: Bump actions/setup-python from 5 to 6 (7ea0b09)
  • deps: Bump astral-sh/setup-uv from 4 to 7 (3114e77)
  • deps: Bump actions/stale from 5 to 10 (e643eb2)
  • deps: Bump actions/checkout from 4 to 6 (2a5618f)
  • deps: Bump urllib3 from 1.25.8 to 1.26.5 (3c12cb5)
  • deps: Bump pyyaml from 5.3 to 5.4 (4c1a412)

Chores

Features

  • Add change detection and --update flag for device types (89994b1)
  • Refactored part of it, added progress and caching to speed up updates (fafc0ab)

Performance Improvements

  • Scope component preload by vendor, global fetch when no vendors specified (c6d19d8)
  • Scope component preload to relevant device types when vendors are filtered (45ddfe6)

Refactoring

  • Consolidate change detection, dry up netbox_api, add markdownlint (aa21e48)

Contributors

@dependabot[bot], Marcin Zieba, ndom91