Skip to main content
CommunityCloudEnterprise

Change Log

v1.1.0

Faster Branch Provisioning (#595)

The main change for this version is a set of performance enhancements targeting branch provisioning. For large data sets we have seen up to a 4x reduction in the time it takes to provision a branch, so creating a new branch should be significantly faster on larger data sets. Provisioning now copies data across multiple workers in parallel.


v1.0.5

Bug Fixes

  • #496 - Skip the branch deleted-in-main check when the request is absent from context
  • #581 - Close branch connections during the post-migrate pending-migrations check
  • #588 - Preserve unmodified JSON dict keys when merging branches
  • #603 - Remove the unconstrained Django dependency so installers do not upgrade Django past the version NetBox supports

v1.0.4

Enhancements

  • #6 - Group change records by request in the branch view
  • #28 - Preserve sync conflict resolution when merging a branch
  • #545 - Allow plugins to register a resolver for branching support on non-ChangeLoggingMixin models
  • #554 - Improve help text for branch merge
  • #564 - Clarify "no conflicts found" UI to note that constraint violations are detected at merge time
  • #572 - Expose signal to extend SquashMergeStrategy dependency graph
  • #585 - Add help text descriptions to BranchStatusChoices

Bug Fixes

  • #445 - Fix branch edit/save race condition for merge status
  • #483 - Set auto_now=True on the ChangeDiff last_updated field
  • #498 - Fix 500 error from Changes API when a branch with a cable deletion is active
  • #530 - Call super().clean() in Branch.clean() so custom validators run
  • #531 - Fix branch sync failure when no conflicting changes are present
  • #561 - Enforce permissions on the branching sidebar menu
  • #568 - Fix object modified warning for objects in a merged branch

v1.0.3

Enhancements

  • #533 - Avoid instantiating objects when verifying their existence

Bug Fixes

  • #542 - Branch migrations should not generate object change records

v1.0.2

Bug Fixes

  • #539 - Fix branch upgrade migration failures from NetBox 4.4 to 4.6

v1.0.1

Bug Fixes

  • #529 - Allow specifying migrations to skip via fake_on_branch to handle RunPython and AlterModelOptions operations

v1.0.0

Enhancements

  • #419 - Register branch custom permission actions
  • #519 - Disable merge button for branches with no pending changes

Bug Fixes

  • #447 - Fix IntegrityError when creating devices with front/rear port mappings in a branch
  • #493 - Fix event rule handling for NetBox v4.5
  • #494 - Fix merge failure when using S3 storage and a referenced file is not found
  • #522 - Fix share button toast notification, correct typo, and add i18n for activation messages

v0.9.1

Bug Fixes

  • #478 - Fix merge failure when referencing an object that has been deleted in main
  • #513 - Fix AttributeError exception when accessing diff properties on a ChangeDiff with no original or modified data

v0.9.0

Enhancements

  • #145 - Add a detail view for change diffs
  • #213 - Display a warning when a branch is becoming stale
  • #323 - Enable migrating branches in bulk
  • #335 - Add conflict handling to sync & merge API endpoints
  • #406 - Add owner_id filter for branches
  • #425 - Create a merge report
  • #475 - Track objects deleted in main as potential conflicts
  • #485 - Add branch context to events
  • #505 - Support NetBox v4.6

Bug Fixes

  • #423 - Fix migrating branches from v0.5.2
  • #506 - Set SameSite attribute for branch cookie

v0.8.3

Enhancements

  • #25 - Display a summary of changes to be applied under the sync & merge views

Bug Fixes

  • #426 - Allow sync/merge if edited objects have been deleted in main
  • #448 - Fix squash merge ordering when new objects reference other new objects
  • #467 - Fix GFK dependency detection in squash merge
  • #468 - Fix KeyError exception when API request omits commit field

v0.8.2

Enhancements

  • #5 - Automatically redirect to avoid 404s when activating or deactivating a branch
  • #86 - Omit empty values from displayed data for created & deleted objects
  • #307 - Exempt /api/status/ from branching middleware
  • #418 - Allow setting maximum threshold for job timeout

Bug Fixes

  • #422 - Do not display deletion warning if object has already been deleted in main

v0.8.1

Bug Fixes

  • #380 - Fix branch sync failure when object in main branch was updated then deleted
  • #388 - Fix deletion of M2M assignments (tags, interfaces) created within a branch
  • #408 - Ensure ChangeDiff references the most recent changed object

v0.8.0

Enhancements

  • #198 - Add ability to squash changes when merging a branch to resolve conflicts

v0.7.4

Enhancements

  • #386 - Add support for NetBox v4.5

Bug Fixes

  • #384 - Preserve existing DATABASE["OPTIONS"] settings for branch database connections

v0.7.3

Bug Fixes

  • #353 - Prohibit altering branch status via REST API (establishes a dedicated endpoint for archiving)
  • #354 - Ensure that queries for assigned tags utilize the active branch
  • #358 - Enforce CONN_MAX_AGE timeout for branch database connections
  • #365 - Temporarily disable object deletion check when syncing a branch from main to avoid validation failure
  • #371 - Ignore module import errors when discovering object migrators (fixes ModuleNotFoundError exception raised when attempting to merge a branch)

v0.7.2

Enhancements

  • #342 - Display warning when attempting to modify an object that has been deleted in main
  • #347 - Include ObjectChange ID in log messages when applying/undoing changes

Bug Fixes

  • #311 - Fix merge failure when image attachments are created and subsequently deleted
  • #317 - Fix event rules not triggering for branch events
  • #349 - Fix exception when removing a device from a virtual chassis with a branch active

v0.7.1

Bug Fixes

  • #150 - Fix recalculation of cable paths when merging a branch with cable changes

v0.7.0

Enhancements

  • #314 - Include active branch in webhook payload data

Bug Fixes

  • #308 - Prevent branch change records from appearing in main changelog (NetBox v4.4)
  • #309 - Fix ProgrammingError exception when merging branch (NetBox v4.4)

v0.6.2

Bug Fixes

  • #298 - Fix change diff creation for many-to-many fields
  • #321 - Prevent tag object type reassignments from leaking outside a branch
  • #325 - Enforce a maximum NetBox version of 4.3

v0.6.1

Bug Fixes

  • #246 - Ensure changelog is retrieved from the correct database schema
  • #299 - Avoid AttributeError exception when provisioning a branch due to invalid content type

v0.6.0

Enhancements

  • #1 - Enable the application of database migrations to open branches
  • #122 - Implement a mechanism to enforce policy before executing branch actions
  • #181 - Introduce the main_schema configuration parameter to set the default schema name
  • #189 - Introduce a registration mechanism for pre-action branch validators

Bug Fixes

  • #204 - Hide navigation menu items for unauthenticated users

v0.5.7

Bug Fixes

  • #136 - Set GenericForeignKey values when restoring a deleted object
  • #286 - Fix display of branch status in selector dropdown

v0.5.6

Enhancements

  • #262 - Copy migrations table when provisioning a branch

Bug Fixes

  • #256 - Fix "changes ahead" count on branches pending provisioning
  • #260 - Ignore duplicate SQL indexes when provisioning a branch
  • #275 - Set sync_time on branch during initial provisioning

v0.5.5

Bug Fixes

  • #242 - Use RestrictedQuerySet for BranchEvent objects
  • #243 - Defer MPTT recalculation until all changes have been applied
  • #251 - Preserve SQL index names when provisioning a branch

v0.5.4

Bug Fixes

  • #169 - Fix global search caching function when a branch is active
  • #179 - Avoid nullifying object representation when updating a ChangeDiff
  • #222 - Avoid off-screen overflow of long branch names
  • #225 - Branch status field should not be required in REST API serializer
  • #227 - Fix scripts triggered via an event rule when the branching plugin is installed

v0.5.3

Enhancements

  • #209 - Prevent merging branches whose last_sync time exceeds the configured changelog retention window

Bug Fixes

  • #87 - Deactivate the active branch (if any) when creating a new branch
  • #148 - Fix IntegrityError exception raised when executing custom scripts within a branch
  • #178 - Fix display of assigned tags in the branches list

v0.5.2

Bug Fixes

  • #163 - Ensure changelog records for non-branching models are created in main schema

v0.5.1

Enhancements

  • #123 - Introduce template tags for branch action buttons
  • #129 - Implement pre-event signals for branch actions

Bug Fixes

  • #98 - Cable changes in branch should not impact main schema
  • #119 - Fix the dynamic selection of related objects in forms while a branch is active
  • #120 - max_branches config parameter should disregard archived branches
  • #138 - Fix rendering the ID column of the change diffs table
  • #140 - Fix representation of branch status in REST API
  • #142 - Fix tab record counts for archived branches

v0.5.0

Enhancements

  • #83 - Add a "share" button under object views when a branch is active
  • #84 - Introduce the max_working_branches configuration parameter
  • #88 - Add branching support for NetBox's graphQL API
  • #90 - Introduce the ability to archive & deprovision merged branches without deleting them
  • #97 - Introduce the exempt_models config parameter to disable branching support for plugin models
  • #116 - Disable branching support for applicable core models

Bug Fixes

  • #81 - Fix event rule triggering for the branch_reverted event
  • #91 - Disregard the active branch (if any) when alerting on changes under object views
  • #94 - Fix branch merging after modifying an object with custom field data
  • #101 - Permit (but warn about) database queries issued before branching support has been initialized
  • #102 - Record individual object actions in branch job logs

v0.4.0

Enhancements

  • #52 - Introduce the max_branches config parameter
  • #71 - Ensure the consistent application of logging messages
  • #76 - Validate required configuration items on initialization

Bug Fixes

  • #57 - Avoid recording ChangeDiff records for unsupported object types
  • #59 - BranchAwareRouter should consider branching support for model when determining database connection to use
  • #61 - Fix transaction rollback when performing a dry run sync
  • #66 - Capture object representation on ChangeDiff when creating a new object within a branch
  • #69 - Represent null values for ChangeDiff fields consistently in REST API
  • #73 - Ensure all relevant branch diffs are updated when an object is modified in main

v0.3.1

Bug Fixes

  • #42 - Fix exception raised when viewing custom scripts
  • #44 - Handle truncated SQL sequence names to avoid exceptions during branch provisioning
  • #48 - Ensure background job is terminated in the event branch provisioning errors
  • #50 - Branch state should remain as "merged" after dry-run revert

v0.3.0

Enhancements

  • #2 - Enable the ability to revert a previously merged branch
  • #3 - Require review & acknowledgment of conflicts before syncing or merging a branch
  • #4 - Include a three-way diff summary in the REST API representation of a modified object
  • #13 - Add a link to the active branch in the branch selector dropdown
  • #15 - Default to performing a "dry run" for branch sync & merge
  • #17 - Utilize NetBox's JobRunner class for background jobs
  • #29 - Register a branch column on NetBox's global changelog table
  • #36 - Run the branch provisioning process within an isolated transaction

Bug Fixes

  • #10 - Fix branch merge failure when deleted object was modified in another branch
  • #11 - Fix quick search functionality for branch diffs tab
  • #16 - Fix support for many-to-many assignments
  • #24 - Correct the REST API schema for the sync, merge, and revert branch endpoints
  • #30 - Include only unmerged branches with relevant changes in object view notifications
  • #31 - Prevent the deletion of a branch in a transitional state

v0.2.0

  • Initial private release