nautobot 2.3.12__py3-none-any.whl → 2.3.14__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of nautobot might be problematic. Click here for more details.
- nautobot/circuits/tables.py +2 -1
- nautobot/core/api/serializers.py +1 -0
- nautobot/core/celery/log.py +4 -4
- nautobot/core/filters.py +2 -0
- nautobot/core/jobs/cleanup.py +47 -11
- nautobot/core/models/tree_queries.py +5 -2
- nautobot/core/settings.py +1 -1
- nautobot/core/tables.py +60 -10
- nautobot/core/templates/search.html +7 -0
- nautobot/core/templatetags/helpers.py +7 -1
- nautobot/core/testing/api.py +5 -1
- nautobot/core/testing/filters.py +20 -5
- nautobot/core/tests/test_api.py +20 -0
- nautobot/core/tests/test_csv.py +25 -3
- nautobot/core/tests/test_utils.py +8 -0
- nautobot/core/utils/lookup.py +11 -8
- nautobot/dcim/api/views.py +3 -0
- nautobot/dcim/filters/__init__.py +26 -1
- nautobot/dcim/forms.py +10 -5
- nautobot/dcim/models/devices.py +1 -0
- nautobot/dcim/tests/test_filters.py +33 -0
- nautobot/dcim/tests/test_forms.py +51 -2
- nautobot/dcim/tests/test_views.py +6 -0
- nautobot/extras/api/serializers.py +1 -0
- nautobot/extras/api/views.py +2 -0
- nautobot/extras/forms/forms.py +2 -0
- nautobot/extras/forms/mixins.py +10 -2
- nautobot/extras/group_sync.py +3 -3
- nautobot/extras/jobs.py +6 -4
- nautobot/extras/plugins/__init__.py +13 -2
- nautobot/extras/tests/test_views.py +2 -0
- nautobot/ipam/lookups.py +101 -62
- nautobot/ipam/models.py +62 -11
- nautobot/ipam/tables.py +20 -6
- nautobot/ipam/tests/test_api.py +68 -1
- nautobot/ipam/tests/test_models.py +41 -0
- nautobot/ipam/tests/test_querysets.py +49 -1
- nautobot/ipam/utils/__init__.py +24 -0
- nautobot/ipam/views.py +61 -68
- nautobot/project-static/docs/404.html +1 -1
- nautobot/project-static/docs/apps/index.html +1 -1
- nautobot/project-static/docs/apps/nautobot-apps.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/api.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/config.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +7 -5
- nautobot/project-static/docs/code-reference/nautobot/apps/models.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +197 -5
- nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +2 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +16 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/views.html +1 -1
- nautobot/project-static/docs/development/apps/api/configuration-view.html +1 -1
- nautobot/project-static/docs/development/apps/api/database-backend-config.html +1 -1
- nautobot/project-static/docs/development/apps/api/models/django-admin.html +1 -1
- nautobot/project-static/docs/development/apps/api/models/global-search.html +1 -1
- nautobot/project-static/docs/development/apps/api/models/graphql.html +1 -1
- nautobot/project-static/docs/development/apps/api/models/index.html +1 -1
- nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +1 -1
- nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +1 -1
- nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +1 -1
- nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +1 -1
- nautobot/project-static/docs/development/apps/api/platform-features/index.html +1 -1
- nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +1 -1
- nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +1 -1
- nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +1 -1
- nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +1 -1
- nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +23 -4
- nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +1 -1
- nautobot/project-static/docs/development/apps/api/prometheus.html +1 -1
- nautobot/project-static/docs/development/apps/api/setup.html +1 -1
- nautobot/project-static/docs/development/apps/api/testing.html +1 -1
- nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +1 -1
- nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +1 -1
- nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +1 -1
- nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +1 -1
- nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +1 -1
- nautobot/project-static/docs/development/apps/api/views/base-template.html +1 -1
- nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +1 -1
- nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +1 -1
- nautobot/project-static/docs/development/apps/api/views/help-documentation.html +1 -1
- nautobot/project-static/docs/development/apps/api/views/index.html +1 -1
- nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +1 -1
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +1 -1
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +1 -1
- nautobot/project-static/docs/development/apps/api/views/notes.html +1 -1
- nautobot/project-static/docs/development/apps/api/views/rest-api.html +1 -1
- nautobot/project-static/docs/development/apps/api/views/urls.html +1 -1
- nautobot/project-static/docs/development/apps/index.html +1 -1
- nautobot/project-static/docs/development/apps/migration/code-updates.html +1 -1
- nautobot/project-static/docs/development/apps/migration/dependency-updates.html +1 -1
- nautobot/project-static/docs/development/apps/migration/from-v1.html +1 -1
- nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +1 -1
- nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +1 -1
- nautobot/project-static/docs/development/apps/migration/model-updates/global.html +1 -1
- nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +1 -1
- nautobot/project-static/docs/development/apps/porting-from-netbox.html +1 -1
- nautobot/project-static/docs/development/core/application-registry.html +1 -1
- nautobot/project-static/docs/development/core/best-practices.html +1 -1
- nautobot/project-static/docs/development/core/bootstrap-ui.html +1 -1
- nautobot/project-static/docs/development/core/caching.html +1 -1
- nautobot/project-static/docs/development/core/controllers.html +1 -1
- nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +1 -1
- nautobot/project-static/docs/development/core/generic-views.html +1 -1
- nautobot/project-static/docs/development/core/getting-started.html +154 -140
- nautobot/project-static/docs/development/core/homepage.html +1 -1
- nautobot/project-static/docs/development/core/index.html +1 -1
- nautobot/project-static/docs/development/core/model-checklist.html +1 -1
- nautobot/project-static/docs/development/core/model-features.html +1 -1
- nautobot/project-static/docs/development/core/natural-keys.html +1 -1
- nautobot/project-static/docs/development/core/navigation-menu.html +1 -1
- nautobot/project-static/docs/development/core/release-checklist.html +1 -1
- nautobot/project-static/docs/development/core/role-internals.html +1 -1
- nautobot/project-static/docs/development/core/settings.html +1 -1
- nautobot/project-static/docs/development/core/style-guide.html +1 -1
- nautobot/project-static/docs/development/core/templates.html +1 -1
- nautobot/project-static/docs/development/core/testing.html +1 -1
- nautobot/project-static/docs/development/core/user-preferences.html +1 -1
- nautobot/project-static/docs/development/index.html +1 -1
- nautobot/project-static/docs/development/jobs/index.html +142 -118
- nautobot/project-static/docs/development/jobs/migration/from-v1.html +1 -1
- nautobot/project-static/docs/index.html +1 -1
- nautobot/project-static/docs/objects.inv +0 -0
- nautobot/project-static/docs/overview/application_stack.html +1 -1
- nautobot/project-static/docs/overview/design_philosophy.html +1 -1
- nautobot/project-static/docs/release-notes/index.html +1 -1
- nautobot/project-static/docs/release-notes/version-1.0.html +1 -1
- nautobot/project-static/docs/release-notes/version-1.1.html +1 -1
- nautobot/project-static/docs/release-notes/version-1.2.html +1 -1
- nautobot/project-static/docs/release-notes/version-1.3.html +1 -1
- nautobot/project-static/docs/release-notes/version-1.4.html +1 -1
- nautobot/project-static/docs/release-notes/version-1.5.html +1 -1
- nautobot/project-static/docs/release-notes/version-1.6.html +614 -179
- nautobot/project-static/docs/release-notes/version-2.0.html +1 -1
- nautobot/project-static/docs/release-notes/version-2.1.html +1 -1
- nautobot/project-static/docs/release-notes/version-2.2.html +1 -1
- nautobot/project-static/docs/release-notes/version-2.3.html +553 -200
- nautobot/project-static/docs/requirements.txt +1 -1
- nautobot/project-static/docs/search/search_index.json +1 -1
- nautobot/project-static/docs/sitemap.xml +270 -270
- nautobot/project-static/docs/sitemap.xml.gz +0 -0
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +1 -1
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +1 -1
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +3 -3
- nautobot/project-static/docs/user-guide/administration/configuration/index.html +1 -1
- nautobot/project-static/docs/user-guide/administration/configuration/redis.html +1 -1
- nautobot/project-static/docs/user-guide/administration/configuration/settings.html +1 -1
- nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +1 -1
- nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +1 -1
- nautobot/project-static/docs/user-guide/administration/guides/docker.html +1 -1
- nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +1 -1
- nautobot/project-static/docs/user-guide/administration/guides/permissions.html +1 -1
- nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +1 -1
- nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +1 -1
- nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +1 -1
- nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +1 -1
- nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +1 -1
- nautobot/project-static/docs/user-guide/administration/installation/app-install.html +1 -1
- nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +1 -1
- nautobot/project-static/docs/user-guide/administration/installation/http-server.html +1 -1
- nautobot/project-static/docs/user-guide/administration/installation/index.html +1 -1
- nautobot/project-static/docs/user-guide/administration/installation/install_system.html +1 -1
- nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +1 -1
- nautobot/project-static/docs/user-guide/administration/installation/services.html +1 -1
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +1 -1
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +1 -1
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +1 -1
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +1 -1
- nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +1 -1
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +1 -1
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +1 -1
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +1 -1
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +1 -1
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +1 -1
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +1 -1
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +1 -1
- nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +1 -1
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +1 -1
- nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +1 -1
- nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +1 -1
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +1 -1
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +1 -1
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +1 -1
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +1 -1
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +1 -1
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +1 -1
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +1 -1
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +1 -1
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +1 -1
- nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +1 -1
- nautobot/project-static/docs/user-guide/feature-guides/graphql.html +1 -1
- nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +1 -1
- nautobot/project-static/docs/user-guide/feature-guides/relationships.html +1 -1
- nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +1 -1
- nautobot/project-static/docs/user-guide/index.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/note.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/role.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/secret.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/status.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/tag.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +1 -1
- nautobot/users/api/serializers.py +1 -0
- nautobot/virtualization/filters.py +19 -2
- nautobot/virtualization/tests/test_filters.py +9 -0
- {nautobot-2.3.12.dist-info → nautobot-2.3.14.dist-info}/METADATA +3 -3
- {nautobot-2.3.12.dist-info → nautobot-2.3.14.dist-info}/RECORD +324 -324
- {nautobot-2.3.12.dist-info → nautobot-2.3.14.dist-info}/LICENSE.txt +0 -0
- {nautobot-2.3.12.dist-info → nautobot-2.3.14.dist-info}/NOTICE +0 -0
- {nautobot-2.3.12.dist-info → nautobot-2.3.14.dist-info}/WHEEL +0 -0
- {nautobot-2.3.12.dist-info → nautobot-2.3.14.dist-info}/entry_points.txt +0 -0
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
<link rel="icon" href="../../assets/favicon.ico">
|
|
21
|
-
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.
|
|
21
|
+
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.48">
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
@@ -7593,30 +7593,6 @@
|
|
|
7593
7593
|
</span>
|
|
7594
7594
|
</a>
|
|
7595
7595
|
|
|
7596
|
-
</li>
|
|
7597
|
-
|
|
7598
|
-
<li class="md-nav__item">
|
|
7599
|
-
<a href="#creating-a-branch" class="md-nav__link">
|
|
7600
|
-
<span class="md-ellipsis">
|
|
7601
|
-
Creating a Branch
|
|
7602
|
-
</span>
|
|
7603
|
-
</a>
|
|
7604
|
-
|
|
7605
|
-
<nav class="md-nav" aria-label="Creating a Branch">
|
|
7606
|
-
<ul class="md-nav__list">
|
|
7607
|
-
|
|
7608
|
-
<li class="md-nav__item">
|
|
7609
|
-
<a href="#prototypes" class="md-nav__link">
|
|
7610
|
-
<span class="md-ellipsis">
|
|
7611
|
-
Prototypes
|
|
7612
|
-
</span>
|
|
7613
|
-
</a>
|
|
7614
|
-
|
|
7615
|
-
</li>
|
|
7616
|
-
|
|
7617
|
-
</ul>
|
|
7618
|
-
</nav>
|
|
7619
|
-
|
|
7620
7596
|
</li>
|
|
7621
7597
|
|
|
7622
7598
|
</ul>
|
|
@@ -7811,6 +7787,30 @@
|
|
|
7811
7787
|
<nav class="md-nav" aria-label="Working in your Development Environment">
|
|
7812
7788
|
<ul class="md-nav__list">
|
|
7813
7789
|
|
|
7790
|
+
<li class="md-nav__item">
|
|
7791
|
+
<a href="#creating-a-branch" class="md-nav__link">
|
|
7792
|
+
<span class="md-ellipsis">
|
|
7793
|
+
Creating a Branch
|
|
7794
|
+
</span>
|
|
7795
|
+
</a>
|
|
7796
|
+
|
|
7797
|
+
<nav class="md-nav" aria-label="Creating a Branch">
|
|
7798
|
+
<ul class="md-nav__list">
|
|
7799
|
+
|
|
7800
|
+
<li class="md-nav__item">
|
|
7801
|
+
<a href="#prototypes" class="md-nav__link">
|
|
7802
|
+
<span class="md-ellipsis">
|
|
7803
|
+
Prototypes
|
|
7804
|
+
</span>
|
|
7805
|
+
</a>
|
|
7806
|
+
|
|
7807
|
+
</li>
|
|
7808
|
+
|
|
7809
|
+
</ul>
|
|
7810
|
+
</nav>
|
|
7811
|
+
|
|
7812
|
+
</li>
|
|
7813
|
+
|
|
7814
7814
|
<li class="md-nav__item">
|
|
7815
7815
|
<a href="#creating-a-superuser" class="md-nav__link">
|
|
7816
7816
|
<span class="md-ellipsis">
|
|
@@ -9165,30 +9165,6 @@
|
|
|
9165
9165
|
</span>
|
|
9166
9166
|
</a>
|
|
9167
9167
|
|
|
9168
|
-
</li>
|
|
9169
|
-
|
|
9170
|
-
<li class="md-nav__item">
|
|
9171
|
-
<a href="#creating-a-branch" class="md-nav__link">
|
|
9172
|
-
<span class="md-ellipsis">
|
|
9173
|
-
Creating a Branch
|
|
9174
|
-
</span>
|
|
9175
|
-
</a>
|
|
9176
|
-
|
|
9177
|
-
<nav class="md-nav" aria-label="Creating a Branch">
|
|
9178
|
-
<ul class="md-nav__list">
|
|
9179
|
-
|
|
9180
|
-
<li class="md-nav__item">
|
|
9181
|
-
<a href="#prototypes" class="md-nav__link">
|
|
9182
|
-
<span class="md-ellipsis">
|
|
9183
|
-
Prototypes
|
|
9184
|
-
</span>
|
|
9185
|
-
</a>
|
|
9186
|
-
|
|
9187
|
-
</li>
|
|
9188
|
-
|
|
9189
|
-
</ul>
|
|
9190
|
-
</nav>
|
|
9191
|
-
|
|
9192
9168
|
</li>
|
|
9193
9169
|
|
|
9194
9170
|
</ul>
|
|
@@ -9383,6 +9359,30 @@
|
|
|
9383
9359
|
<nav class="md-nav" aria-label="Working in your Development Environment">
|
|
9384
9360
|
<ul class="md-nav__list">
|
|
9385
9361
|
|
|
9362
|
+
<li class="md-nav__item">
|
|
9363
|
+
<a href="#creating-a-branch" class="md-nav__link">
|
|
9364
|
+
<span class="md-ellipsis">
|
|
9365
|
+
Creating a Branch
|
|
9366
|
+
</span>
|
|
9367
|
+
</a>
|
|
9368
|
+
|
|
9369
|
+
<nav class="md-nav" aria-label="Creating a Branch">
|
|
9370
|
+
<ul class="md-nav__list">
|
|
9371
|
+
|
|
9372
|
+
<li class="md-nav__item">
|
|
9373
|
+
<a href="#prototypes" class="md-nav__link">
|
|
9374
|
+
<span class="md-ellipsis">
|
|
9375
|
+
Prototypes
|
|
9376
|
+
</span>
|
|
9377
|
+
</a>
|
|
9378
|
+
|
|
9379
|
+
</li>
|
|
9380
|
+
|
|
9381
|
+
</ul>
|
|
9382
|
+
</nav>
|
|
9383
|
+
|
|
9384
|
+
</li>
|
|
9385
|
+
|
|
9386
9386
|
<li class="md-nav__item">
|
|
9387
9387
|
<a href="#creating-a-superuser" class="md-nav__link">
|
|
9388
9388
|
<span class="md-ellipsis">
|
|
@@ -9737,24 +9737,6 @@
|
|
|
9737
9737
|
<p class="admonition-title">Hint</p>
|
|
9738
9738
|
<p>You will always <strong>push</strong> changes to <code>origin</code> (your fork) and <strong>pull</strong> changes from <code>upstream</code> (official repo).</p>
|
|
9739
9739
|
</div>
|
|
9740
|
-
<h3 id="creating-a-branch">Creating a Branch<a class="headerlink" href="#creating-a-branch" title="Permanent link">¶</a></h3>
|
|
9741
|
-
<p>Before you make any changes, always create a new branch. Again, for bug fixes and minor features, you'll want to create your branches from the <code>develop</code> branch, while for major new features, you'll branch from <code>next</code> instead.</p>
|
|
9742
|
-
<p>Before you ever create a new branch, always checkout the appropriate branch and make sure you you've got the latest changes from <code>upstream</code>:</p>
|
|
9743
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>git checkout develop
|
|
9744
|
-
<a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a>git pull upstream develop
|
|
9745
|
-
</code></pre></div>
|
|
9746
|
-
<div class="admonition warning">
|
|
9747
|
-
<p class="admonition-title">Warning</p>
|
|
9748
|
-
<p>If you do not do this, you run the risk of having merge conflicts in your branch, and that's never fun to deal with. Trust us on this one.</p>
|
|
9749
|
-
</div>
|
|
9750
|
-
<p>Now that you've got the latest upstream changes, create your branch. Whether you're creating a branch off a fork or working against the Nautobot origin repo, you should follow this convention for naming your branch: <code>u/yourusername-0000-branch-summary</code>, where <code>0000</code> is the related GitHub issue number and <code>yourusername</code> is your GitHub username. For example:</p>
|
|
9751
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>git checkout -b u/yourusername-1234-next-amazing-feature
|
|
9752
|
-
</code></pre></div>
|
|
9753
|
-
<p>If you do not have a relevant GitHub issue, please consider opening one to document the context behind your changes.</p>
|
|
9754
|
-
<h4 id="prototypes">Prototypes<a class="headerlink" href="#prototypes" title="Permanent link">¶</a></h4>
|
|
9755
|
-
<p>Sometimes code is written as a proof of concept or early implementation candidate but is not quite ready to be merged, or may be picked up by another author sometime in the future. In that case, the convention is to use the <code>prototype/</code> prefix to the branch name and not requiring the original authors username. In that scenario, using the example above, you would instead:</p>
|
|
9756
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a>git checkout -b prototype/1234-next-amazing-feature
|
|
9757
|
-
</code></pre></div>
|
|
9758
9740
|
<h2 id="enabling-pre-commit-hooks">Enabling Pre-Commit Hooks<a class="headerlink" href="#enabling-pre-commit-hooks" title="Permanent link">¶</a></h2>
|
|
9759
9741
|
<p>Nautobot ships with a <a href="https://githooks.com/">Git pre-commit hook</a> script that automatically checks for style compliance and missing database migrations prior to committing changes. This helps avoid erroneous commits that result in CI test failures.</p>
|
|
9760
9742
|
<div class="admonition note">
|
|
@@ -9762,15 +9744,15 @@
|
|
|
9762
9744
|
<p>This pre-commit hook currently only supports the Python Virtual Environment Workflow.</p>
|
|
9763
9745
|
</div>
|
|
9764
9746
|
<p>You are encouraged to enable it by creating a link to <code>scripts/git-hooks/pre-commit</code>:</p>
|
|
9765
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9766
|
-
<a id="__codelineno-
|
|
9747
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>cd .git/hooks/
|
|
9748
|
+
<a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a>ln -s ../../scripts/git-hooks/pre-commit
|
|
9767
9749
|
</code></pre></div>
|
|
9768
9750
|
<h2 id="setting-up-your-development-environment">Setting up your Development Environment<a class="headerlink" href="#setting-up-your-development-environment" title="Permanent link">¶</a></h2>
|
|
9769
9751
|
<p>Getting started with Nautobot development is pretty straightforward, and should feel very familiar to anyone with Django development experience. We can recommend either a <a href="#docker-compose-workflow">Docker Compose workflow</a> (if you don't want to install dependencies such as PostgreSQL and Redis directly onto your system) or a <a href="#python-virtual-environment-workflow">Python virtual environment workflow</a>.</p>
|
|
9770
9752
|
<h3 id="windows-development">Windows Development<a class="headerlink" href="#windows-development" title="Permanent link">¶</a></h3>
|
|
9771
9753
|
<p>The Docker Compose development workflow on Windows Subsystem for Linux (WSL) has been tested successfully with <a href="https://docs.docker.com/desktop/windows/wsl/">Docker Desktop using the WSL2 backend</a> and the Ubuntu 20.04 WSL2 distribution. The Poetry workflow has also been tested successfully on the Ubuntu 20.04 WSL2 distribution.</p>
|
|
9772
9754
|
<p>To install WSL2 and Ubuntu follow the instructions from the <a href="https://learn.microsoft.com/en-us/windows/wsl/install">WSL installation guide</a> or if running Windows 10 version 2004 and higher you can open an administrator Powershell terminal and enter the following command:</p>
|
|
9773
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9755
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="n">wsl</span> <span class="p">-</span><span class="n">-install</span>
|
|
9774
9756
|
</code></pre></div>
|
|
9775
9757
|
<p>This will install the WSL2 Ubuntu distribution. Reboot if prompted. After the image installs successfully you may install Docker Desktop with the WSL2 backend.</p>
|
|
9776
9758
|
<h3 id="docker-compose-workflow">Docker Compose Workflow<a class="headerlink" href="#docker-compose-workflow" title="Permanent link">¶</a></h3>
|
|
@@ -9782,55 +9764,58 @@
|
|
|
9782
9764
|
</div>
|
|
9783
9765
|
<h4 id="install-invoke">Install Invoke<a class="headerlink" href="#install-invoke" title="Permanent link">¶</a></h4>
|
|
9784
9766
|
<p>Because it is used to execute all common Docker workflow tasks, Invoke must be installed for your user environment. On most systems, if you're installing without root/superuser permissions, the default will install into your local user environment.</p>
|
|
9785
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9767
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a>pip3 install invoke
|
|
9786
9768
|
</code></pre></div>
|
|
9787
9769
|
<p>If you run into issues, you may also deliberately tell <code>pip3</code> to install into your user environment by adding the <code>--user</code> flag:</p>
|
|
9788
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9770
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a>pip3 install --user invoke
|
|
9789
9771
|
</code></pre></div>
|
|
9790
9772
|
<p>If you encounter an <a href="https://peps.python.org/pep-0668/"><code>externally-managed-environment</code></a> error, you may need to install invoke through your OS's package manager. For example, <code>apt-get install python3-invoke</code> for Debian.</p>
|
|
9791
9773
|
<p>Please see the <a href="https://pip.pypa.io/en/stable/user_guide/#user-installs">official documentation on Pip user installs</a> for more information.</p>
|
|
9792
9774
|
<h4 id="list-invoke-tasks">List Invoke Tasks<a class="headerlink" href="#list-invoke-tasks" title="Permanent link">¶</a></h4>
|
|
9793
9775
|
<p>Now that you have an <code>invoke</code> command, list the tasks defined in <code>tasks.py</code>:</p>
|
|
9794
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9776
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a>invoke --list
|
|
9795
9777
|
</code></pre></div>
|
|
9796
9778
|
<p>Example output:</p>
|
|
9797
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9798
|
-
<a id="__codelineno-
|
|
9799
|
-
<a id="__codelineno-
|
|
9800
|
-
<a id="__codelineno-
|
|
9801
|
-
<a id="__codelineno-
|
|
9802
|
-
<a id="__codelineno-
|
|
9803
|
-
<a id="__codelineno-
|
|
9804
|
-
<a id="__codelineno-
|
|
9805
|
-
<a id="__codelineno-
|
|
9806
|
-
<a id="__codelineno-
|
|
9807
|
-
<a id="__codelineno-
|
|
9808
|
-
<a id="__codelineno-
|
|
9809
|
-
<a id="__codelineno-
|
|
9810
|
-
<a id="__codelineno-
|
|
9811
|
-
<a id="__codelineno-
|
|
9812
|
-
<a id="__codelineno-
|
|
9813
|
-
<a id="__codelineno-
|
|
9814
|
-
<a id="__codelineno-
|
|
9815
|
-
<a id="__codelineno-
|
|
9816
|
-
<a id="__codelineno-
|
|
9817
|
-
<a id="__codelineno-
|
|
9818
|
-
<a id="__codelineno-
|
|
9819
|
-
<a id="__codelineno-
|
|
9820
|
-
<a id="__codelineno-
|
|
9821
|
-
<a id="__codelineno-
|
|
9822
|
-
<a id="__codelineno-
|
|
9823
|
-
<a id="__codelineno-
|
|
9824
|
-
<a id="__codelineno-
|
|
9825
|
-
<a id="__codelineno-
|
|
9826
|
-
<a id="__codelineno-
|
|
9827
|
-
<a id="__codelineno-
|
|
9828
|
-
<a id="__codelineno-
|
|
9829
|
-
<a id="__codelineno-
|
|
9830
|
-
<a id="__codelineno-
|
|
9831
|
-
<a id="__codelineno-
|
|
9832
|
-
<a id="__codelineno-
|
|
9833
|
-
<a id="__codelineno-
|
|
9779
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a>Available tasks:
|
|
9780
|
+
<a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a>
|
|
9781
|
+
<a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a> branch Switch to a different Git branch, creating it if requested.
|
|
9782
|
+
<a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a> build Build Nautobot docker image.
|
|
9783
|
+
<a id="__codelineno-14-5" name="__codelineno-14-5" href="#__codelineno-14-5"></a> build-and-check-docs Build docs for use within Nautobot.
|
|
9784
|
+
<a id="__codelineno-14-6" name="__codelineno-14-6" href="#__codelineno-14-6"></a> build-dependencies
|
|
9785
|
+
<a id="__codelineno-14-7" name="__codelineno-14-7" href="#__codelineno-14-7"></a> buildx Build Nautobot docker image using the experimental buildx docker functionality (multi-arch
|
|
9786
|
+
<a id="__codelineno-14-8" name="__codelineno-14-8" href="#__codelineno-14-8"></a> capability).
|
|
9787
|
+
<a id="__codelineno-14-9" name="__codelineno-14-9" href="#__codelineno-14-9"></a> check-migrations Check for missing migrations.
|
|
9788
|
+
<a id="__codelineno-14-10" name="__codelineno-14-10" href="#__codelineno-14-10"></a> check-schema Render the REST API schema and check for problems.
|
|
9789
|
+
<a id="__codelineno-14-11" name="__codelineno-14-11" href="#__codelineno-14-11"></a> cli Launch a bash shell inside the running Nautobot (or other) Docker container.
|
|
9790
|
+
<a id="__codelineno-14-12" name="__codelineno-14-12" href="#__codelineno-14-12"></a> createsuperuser Create a new Nautobot superuser account (default: "admin"), will prompt for password.
|
|
9791
|
+
<a id="__codelineno-14-13" name="__codelineno-14-13" href="#__codelineno-14-13"></a> debug Start Nautobot and its dependencies in debug mode.
|
|
9792
|
+
<a id="__codelineno-14-14" name="__codelineno-14-14" href="#__codelineno-14-14"></a> destroy Destroy all containers and volumes.
|
|
9793
|
+
<a id="__codelineno-14-15" name="__codelineno-14-15" href="#__codelineno-14-15"></a> docker-push Tags and pushes docker images to the appropriate repos, intended for release use only.
|
|
9794
|
+
<a id="__codelineno-14-16" name="__codelineno-14-16" href="#__codelineno-14-16"></a> dumpdata Dump data from database to db_output file.
|
|
9795
|
+
<a id="__codelineno-14-17" name="__codelineno-14-17" href="#__codelineno-14-17"></a> hadolint Check Dockerfile for hadolint compliance and other style issues.
|
|
9796
|
+
<a id="__codelineno-14-18" name="__codelineno-14-18" href="#__codelineno-14-18"></a> integration-test Run Nautobot integration tests.
|
|
9797
|
+
<a id="__codelineno-14-19" name="__codelineno-14-19" href="#__codelineno-14-19"></a> loaddata Load data from file.
|
|
9798
|
+
<a id="__codelineno-14-20" name="__codelineno-14-20" href="#__codelineno-14-20"></a> logs View the logs of a docker compose service.
|
|
9799
|
+
<a id="__codelineno-14-21" name="__codelineno-14-21" href="#__codelineno-14-21"></a> makemigrations Perform makemigrations operation in Django.
|
|
9800
|
+
<a id="__codelineno-14-22" name="__codelineno-14-22" href="#__codelineno-14-22"></a> markdownlint Lint Markdown files.
|
|
9801
|
+
<a id="__codelineno-14-23" name="__codelineno-14-23" href="#__codelineno-14-23"></a> migrate Perform migrate operation in Django.
|
|
9802
|
+
<a id="__codelineno-14-24" name="__codelineno-14-24" href="#__codelineno-14-24"></a> migration-test Test database migration from a given dataset to latest Nautobot schema.
|
|
9803
|
+
<a id="__codelineno-14-25" name="__codelineno-14-25" href="#__codelineno-14-25"></a> nbshell Launch an interactive Nautobot shell.
|
|
9804
|
+
<a id="__codelineno-14-26" name="__codelineno-14-26" href="#__codelineno-14-26"></a> performance-test Run Nautobot performance tests.
|
|
9805
|
+
<a id="__codelineno-14-27" name="__codelineno-14-27" href="#__codelineno-14-27"></a> post-upgrade Performs Nautobot common post-upgrade operations using a single entrypoint.
|
|
9806
|
+
<a id="__codelineno-14-28" name="__codelineno-14-28" href="#__codelineno-14-28"></a> pylint Perform static analysis of Nautobot code.
|
|
9807
|
+
<a id="__codelineno-14-29" name="__codelineno-14-29" href="#__codelineno-14-29"></a> restart Gracefully restart containers.
|
|
9808
|
+
<a id="__codelineno-14-30" name="__codelineno-14-30" href="#__codelineno-14-30"></a> ruff Run ruff to perform code formatting and linting.
|
|
9809
|
+
<a id="__codelineno-14-31" name="__codelineno-14-31" href="#__codelineno-14-31"></a> serve-docs Runs local instance of mkdocs serve on port 8001 (ctrl-c to stop).
|
|
9810
|
+
<a id="__codelineno-14-32" name="__codelineno-14-32" href="#__codelineno-14-32"></a> showmigrations Perform showmigrations operation in Django.
|
|
9811
|
+
<a id="__codelineno-14-33" name="__codelineno-14-33" href="#__codelineno-14-33"></a> start Start Nautobot and its dependencies in detached mode.
|
|
9812
|
+
<a id="__codelineno-14-34" name="__codelineno-14-34" href="#__codelineno-14-34"></a> stop Stop Nautobot and its dependencies.
|
|
9813
|
+
<a id="__codelineno-14-35" name="__codelineno-14-35" href="#__codelineno-14-35"></a> tests Run all linters and unit tests.
|
|
9814
|
+
<a id="__codelineno-14-36" name="__codelineno-14-36" href="#__codelineno-14-36"></a> unittest Run Nautobot unit tests.
|
|
9815
|
+
<a id="__codelineno-14-37" name="__codelineno-14-37" href="#__codelineno-14-37"></a> unittest-coverage Report on code test coverage as measured by 'invoke unittest'.
|
|
9816
|
+
<a id="__codelineno-14-38" name="__codelineno-14-38" href="#__codelineno-14-38"></a> version Show the version of Nautobot Python package or bump it when a valid bump rule is provided.
|
|
9817
|
+
<a id="__codelineno-14-39" name="__codelineno-14-39" href="#__codelineno-14-39"></a> vscode Launch Visual Studio Code with the appropriate Environment variables to run in a container.
|
|
9818
|
+
<a id="__codelineno-14-40" name="__codelineno-14-40" href="#__codelineno-14-40"></a> yamllint Run yamllint to validate formatting applies to YAML standards.
|
|
9834
9819
|
</code></pre></div>
|
|
9835
9820
|
<h4 id="using-docker-with-invoke">Using Docker with Invoke<a class="headerlink" href="#using-docker-with-invoke" title="Permanent link">¶</a></h4>
|
|
9836
9821
|
<details class="version-changed">
|
|
@@ -9839,14 +9824,17 @@
|
|
|
9839
9824
|
</details>
|
|
9840
9825
|
<p>A development environment can be easily started up from the root of the project using the following commands:</p>
|
|
9841
9826
|
<ul>
|
|
9842
|
-
<li><code>invoke
|
|
9827
|
+
<li><code>invoke branch</code> - Creates or switches to the appropriate Git branch</li>
|
|
9828
|
+
<li><code>invoke build</code> - Builds Nautobot docker images appropriate to the current Git branch</li>
|
|
9843
9829
|
<li><code>invoke migrate</code> - Performs database migration operation in Django</li>
|
|
9844
9830
|
<li><code>invoke debug</code> - Starts Docker containers for Nautobot, PostgreSQL, Redis, Celery, and Celery Beat in debug mode and attaches their output to the terminal in the foreground. You may enter Control-C to stop the containers</li>
|
|
9845
9831
|
</ul>
|
|
9846
9832
|
<p>Additional useful commands for the development environment:</p>
|
|
9847
9833
|
<ul>
|
|
9848
|
-
<li><code>invoke start [-s servicename]</code> - Starts Docker containers for Nautobot, PostgreSQL, Redis, NGINX, Celery, and Celery Beat (or a specific container/service, such as <code>invoke start -s redis</code>) to run in the background
|
|
9849
|
-
<li><code>invoke
|
|
9834
|
+
<li><code>invoke start [-s servicename]</code> - Starts Docker containers for Nautobot, PostgreSQL, Redis, NGINX, Celery, and Celery Beat (or a specific container/service, such as <code>invoke start -s redis</code>) to run in the background</li>
|
|
9835
|
+
<li><code>invoke logs [-s servicename]</code> - View the logs of the containers (or a specific container/service, such as <code>invoke logs -s nautobot</code>)</li>
|
|
9836
|
+
<li><code>invoke nbshell</code> - Launches a Nautobot Python shell inside the Nautobot container</li>
|
|
9837
|
+
<li><code>invoke cli [-s servicename]</code> - Launches a <code>bash</code> shell inside the specified service container (if none is specified, defaults to the Nautobot container)</li>
|
|
9850
9838
|
<li><code>invoke stop [-s servicename]</code> - Stops all containers (or a specific container/service) created by <code>invoke start</code></li>
|
|
9851
9839
|
<li><code>invoke createsuperuser</code> - Creates a superuser account for the Nautobot application</li>
|
|
9852
9840
|
</ul>
|
|
@@ -9876,7 +9864,7 @@
|
|
|
9876
9864
|
<h4 id="install-poetry">Install Poetry<a class="headerlink" href="#install-poetry" title="Permanent link">¶</a></h4>
|
|
9877
9865
|
<p><a href="https://python-poetry.org/docs/">Poetry</a> is a tool for dependency management and packaging in Python. It allows you to declare the libraries your project depends on and it will manage (install/update/remove) them for you. It will also manage virtual environments automatically, and allow for publishing packages to the <a href="https://pypi.org">Python Package Index</a>.</p>
|
|
9878
9866
|
<p>You may install Poetry in your user environment by running:</p>
|
|
9879
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9867
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>curl -sSL https://install.python-poetry.org | python3 -
|
|
9880
9868
|
</code></pre></div>
|
|
9881
9869
|
<details class="version-changed">
|
|
9882
9870
|
<summary>Changed in version 1.5.6</summary>
|
|
@@ -9891,17 +9879,17 @@
|
|
|
9891
9879
|
<p>For detailed installation instructions, please see the <a href="https://python-poetry.org/docs/#installation">official Poetry installation guide</a>.</p>
|
|
9892
9880
|
<h4 id="install-hadolint">Install Hadolint<a class="headerlink" href="#install-hadolint" title="Permanent link">¶</a></h4>
|
|
9893
9881
|
<p><a href="https://github.com/hadolint/hadolint">Hadolint</a> is a tool used to validate and lint Dockerfiles to ensure we are following best practices. On macOS with <a href="https://brew.sh/">Homebrew</a> you can install Hadolint by running:</p>
|
|
9894
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9882
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a>brew install hadolint
|
|
9895
9883
|
</code></pre></div>
|
|
9896
9884
|
<h4 id="install-markdownlint-cli">Install markdownlint-cli<a class="headerlink" href="#install-markdownlint-cli" title="Permanent link">¶</a></h4>
|
|
9897
9885
|
<p><a href="https://github.com/igorshubovych/markdownlint-cli">markdownlint-cli</a> is a tool used to validate and lint Markdown files, such as Nautobot's documentation, to ensure that they are correctly constructed. On macOS with <a href="https://brew.sh/">Homebrew</a> you can install markdownlint-cli by running:</p>
|
|
9898
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9886
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a>brew install markdownlint-cli
|
|
9899
9887
|
</code></pre></div>
|
|
9900
9888
|
<h4 id="creating-a-python-virtual-environment">Creating a Python Virtual Environment<a class="headerlink" href="#creating-a-python-virtual-environment" title="Permanent link">¶</a></h4>
|
|
9901
9889
|
<p>A Python <a href="https://docs.python.org/3/tutorial/venv.html">virtual environment</a> (or <em>virtualenv</em>) is like a container for a set of Python packages. A virtualenv allow you to build environments suited to specific projects without interfering with system packages or other projects. When installed per the documentation, Nautobot uses a virtual environment in production.</p>
|
|
9902
9890
|
<p>For Nautobot development, we have selected Poetry, which will transparently create a virtualenv for you, automatically install all dependencies required for Nautobot to operate, and will also install the <code>nautobot-server</code> CLI command that you will utilize to interact with Nautobot from here on out.</p>
|
|
9903
9891
|
<p>Bootstrap your virtual environment using <code>poetry install</code>:</p>
|
|
9904
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9892
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a>poetry install
|
|
9905
9893
|
</code></pre></div>
|
|
9906
9894
|
<div class="admonition hint">
|
|
9907
9895
|
<p class="admonition-title">Hint</p>
|
|
@@ -9909,44 +9897,44 @@
|
|
|
9909
9897
|
</div>
|
|
9910
9898
|
<p>This will create automatically create a virtualenv in your home directory, which houses a virtual copy of the Python executable and its related libraries and tooling. When running Nautobot for development, it will be run using the Python binary at found within the virtualenv.</p>
|
|
9911
9899
|
<p>Once created, you may activate the virtual environment using <code>poetry shell</code>:</p>
|
|
9912
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9900
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a>poetry shell
|
|
9913
9901
|
</code></pre></div>
|
|
9914
9902
|
<p>Example output:</p>
|
|
9915
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9916
|
-
<a id="__codelineno-
|
|
9917
|
-
<a id="__codelineno-
|
|
9918
|
-
<a id="__codelineno-
|
|
9903
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a>Spawning shell within /home/example/.cache/pypoetry/virtualenvs/nautobot-Ams_xyDt-py3.8
|
|
9904
|
+
<a id="__codelineno-20-2" name="__codelineno-20-2" href="#__codelineno-20-2"></a>
|
|
9905
|
+
<a id="__codelineno-20-3" name="__codelineno-20-3" href="#__codelineno-20-3"></a>. /home/example/.cache/pypoetry/virtualenvs/nautobot-Ams_xyDt-py3.8/bin/activate
|
|
9906
|
+
<a id="__codelineno-20-4" name="__codelineno-20-4" href="#__codelineno-20-4"></a>(nautobot-Ams_xyDt-py3.8) $
|
|
9919
9907
|
</code></pre></div>
|
|
9920
9908
|
<p>Notice that the console prompt changes to indicate the active environment. This updates the necessary system environment variables to ensure that any Python scripts are run within the virtual environment.</p>
|
|
9921
9909
|
<p>Observe also that the <code>python</code> interpreter is bound within the virtualenv:</p>
|
|
9922
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9910
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a>which python
|
|
9923
9911
|
</code></pre></div>
|
|
9924
9912
|
<p>Example output:</p>
|
|
9925
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9913
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a>(nautobot-Ams_xyDt-py3.8) $ /home/example/.cache/pypoetry/virtualenvs/nautobot-Ams_xyDt-py3.8/bin/python
|
|
9926
9914
|
</code></pre></div>
|
|
9927
9915
|
<p>To exit the virtual shell, use <code>exit</code>:</p>
|
|
9928
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9916
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a>exit
|
|
9929
9917
|
</code></pre></div>
|
|
9930
9918
|
<p>Example output:</p>
|
|
9931
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9919
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a>$
|
|
9932
9920
|
</code></pre></div>
|
|
9933
9921
|
<h4 id="working-with-poetry">Working with Poetry<a class="headerlink" href="#working-with-poetry" title="Permanent link">¶</a></h4>
|
|
9934
9922
|
<p>Poetry automatically installs your dependencies. However, if you need to install any additional dependencies this can be done with <code>pip</code>. For example, if you really like using <code>ipython</code> for development:</p>
|
|
9935
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9923
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-25-1" name="__codelineno-25-1" href="#__codelineno-25-1"></a>pip3 install ipython
|
|
9936
9924
|
</code></pre></div>
|
|
9937
9925
|
<p>Example output:</p>
|
|
9938
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9939
|
-
<a id="__codelineno-
|
|
9940
|
-
<a id="__codelineno-
|
|
9926
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-26-1" name="__codelineno-26-1" href="#__codelineno-26-1"></a>Collecting ipython
|
|
9927
|
+
<a id="__codelineno-26-2" name="__codelineno-26-2" href="#__codelineno-26-2"></a> Using cached ipython-7.20.0-py3-none-any.whl (784 kB)
|
|
9928
|
+
<a id="__codelineno-26-3" name="__codelineno-26-3" href="#__codelineno-26-3"></a> ...
|
|
9941
9929
|
</code></pre></div>
|
|
9942
9930
|
<ul>
|
|
9943
9931
|
<li>Install verify that you have the proper dependencies installed and are in the virtual environment via Poetry. This also ensures that you have the proper mkdocs themes installed.</li>
|
|
9944
9932
|
</ul>
|
|
9945
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9946
|
-
<a id="__codelineno-
|
|
9933
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-27-1" name="__codelineno-27-1" href="#__codelineno-27-1"></a>poetry<span class="w"> </span>shell
|
|
9934
|
+
<a id="__codelineno-27-2" name="__codelineno-27-2" href="#__codelineno-27-2"></a>poetry<span class="w"> </span>install
|
|
9947
9935
|
</code></pre></div>
|
|
9948
9936
|
<p>It may not always be convenient to enter into the virtual shell just to run programs. You may also execute a given command ad hoc within the project's virtual shell by using <code>poetry run</code>:</p>
|
|
9949
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9937
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-28-1" name="__codelineno-28-1" href="#__codelineno-28-1"></a>poetry run mkdocs serve
|
|
9950
9938
|
</code></pre></div>
|
|
9951
9939
|
<p>Check out the <a href="https://python-poetry.org/docs/basic-usage/">Poetry usage guide</a> for more tips.</p>
|
|
9952
9940
|
<h4 id="configuring-nautobot">Configuring Nautobot<a class="headerlink" href="#configuring-nautobot" title="Permanent link">¶</a></h4>
|
|
@@ -9961,20 +9949,20 @@
|
|
|
9961
9949
|
<p>Nautobot's configuration file is <code>nautobot_config.py</code>.</p>
|
|
9962
9950
|
<h5 id="initializing-a-config">Initializing a Config<a class="headerlink" href="#initializing-a-config" title="Permanent link">¶</a></h5>
|
|
9963
9951
|
<p>You may also initialize a new configuration using <code>nautobot-server init</code>:</p>
|
|
9964
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9952
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-29-1" name="__codelineno-29-1" href="#__codelineno-29-1"></a>nautobot-server init
|
|
9965
9953
|
</code></pre></div>
|
|
9966
9954
|
<p>Example output:</p>
|
|
9967
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9968
|
-
<a id="__codelineno-
|
|
9969
|
-
<a id="__codelineno-
|
|
9970
|
-
<a id="__codelineno-
|
|
9971
|
-
<a id="__codelineno-
|
|
9955
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-30-1" name="__codelineno-30-1" href="#__codelineno-30-1"></a>Nautobot would like to send anonymized installation metrics to the project's maintainers.
|
|
9956
|
+
<a id="__codelineno-30-2" name="__codelineno-30-2" href="#__codelineno-30-2"></a>These metrics include the installed Nautobot version, the Python version in use, an anonymous "deployment ID", and a list of one-way-hashed names of enabled Nautobot Apps and their versions.
|
|
9957
|
+
<a id="__codelineno-30-3" name="__codelineno-30-3" href="#__codelineno-30-3"></a>Allow Nautobot to send these metrics? [y/n]: n
|
|
9958
|
+
<a id="__codelineno-30-4" name="__codelineno-30-4" href="#__codelineno-30-4"></a>Installation metrics will not be sent by default.
|
|
9959
|
+
<a id="__codelineno-30-5" name="__codelineno-30-5" href="#__codelineno-30-5"></a>Configuration file created at /home/example/.nautobot/nautobot_config.py
|
|
9972
9960
|
</code></pre></div>
|
|
9973
9961
|
<p>You may also specify alternate file locations. Please refer to <a href="../../user-guide/administration/configuration/index.html">Configuring Nautobot</a> for how to do that.</p>
|
|
9974
9962
|
<h5 id="using-the-development-config">Using the Development Config<a class="headerlink" href="#using-the-development-config" title="Permanent link">¶</a></h5>
|
|
9975
9963
|
<p>A <code>nautobot_config.py</code> suitable for development purposes can be found at <code>development/nautobot_config.py</code>. You may customize the values there or utilize environment variables to override the default values.</p>
|
|
9976
9964
|
<p>If you want to use this file, initialize a config first, then copy this file to the default location Nautobot expects to find its config:</p>
|
|
9977
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9965
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-31-1" name="__codelineno-31-1" href="#__codelineno-31-1"></a>cp development/nautobot_config.py ~/.nautobot/nautobot_config.py
|
|
9978
9966
|
</code></pre></div>
|
|
9979
9967
|
<h5 id="required-settings">Required Settings<a class="headerlink" href="#required-settings" title="Permanent link">¶</a></h5>
|
|
9980
9968
|
<p>A newly created configuration includes sane defaults. If you need to customize them, edit your <code>nautobot_config.py</code> and update the following settings as required:</p>
|
|
@@ -9987,6 +9975,32 @@
|
|
|
9987
9975
|
</ul>
|
|
9988
9976
|
<h2 id="working-in-your-development-environment">Working in your Development Environment<a class="headerlink" href="#working-in-your-development-environment" title="Permanent link">¶</a></h2>
|
|
9989
9977
|
<p>Below are common commands for working your development environment.</p>
|
|
9978
|
+
<h3 id="creating-a-branch">Creating a Branch<a class="headerlink" href="#creating-a-branch" title="Permanent link">¶</a></h3>
|
|
9979
|
+
<p>Before you make any changes, always create a new branch. Again, for bug fixes and minor features, you'll want to create your branches from the <code>develop</code> branch, while for major new features, you'll branch from <code>next</code> instead.</p>
|
|
9980
|
+
<p>In current versions of Nautobot, you can use the <code>invoke branch</code> command to create a new branch or switch to an existing branch. Whether you're creating a branch off a fork or working against the Nautobot origin repo, you should follow this convention for naming your branch: <code>u/yourusername-0000-branch-summary</code>, where <code>0000</code> is the related GitHub issue number and <code>yourusername</code> is your GitHub username. (If you do not have a relevant GitHub issue, please consider opening one to document the context behind your changes.)</p>
|
|
9981
|
+
<p>For example:</p>
|
|
9982
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-32-1" name="__codelineno-32-1" href="#__codelineno-32-1"></a>invoke branch --create --branch u/yourusername-1234-some-bug-fix --parent develop
|
|
9983
|
+
</code></pre></div>
|
|
9984
|
+
<p>or:</p>
|
|
9985
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-33-1" name="__codelineno-33-1" href="#__codelineno-33-1"></a>invoke branch --create --branch u/yourusername-1235-amazing-feature --parent next
|
|
9986
|
+
</code></pre></div>
|
|
9987
|
+
<div class="admonition caution">
|
|
9988
|
+
<p class="admonition-title">Caution</p>
|
|
9989
|
+
<p>We recommend using this Invoke command instead of directly calling <code>git checkout</code> or <code>git switch</code> because it automatically handles some other aspects of the development environment, in particular stopping the currently running Nautobot Docker containers, if any, before switching to a different branch.</p>
|
|
9990
|
+
</div>
|
|
9991
|
+
<div class="admonition tip">
|
|
9992
|
+
<p class="admonition-title">Tip</p>
|
|
9993
|
+
<p>You can switch between any existing branches with simply <code>invoke branch --branch <name></code>.</p>
|
|
9994
|
+
</div>
|
|
9995
|
+
<div class="admonition tip">
|
|
9996
|
+
<p class="admonition-title">Nautobot branches and the Docker compose workflow</p>
|
|
9997
|
+
<p>It's common for the Python dependencies and database schema to differ between major and minor Nautobot releases, and therefore between the primary branches of <code>main</code>, <code>develop</code>, <code>next</code>, and <code>ltm-1.6</code>. To account for this, the Docker workflow automatically detects which <code>major.minor</code> Nautobot version you're working with and changes the Docker Compose project name accordingly. What this means for you in practice is that when first switching between Nautobot releases, you may need to rerun <code>invoke build</code> once for each primary branch, and <code>invoke start</code>/<code>invoke debug</code> may take some time as it needs to create a new database and migrate its schema. However, in the future, switching between releases should be relatively smooth (just <code>invoke branch -b <name></code> and then <code>invoke start</code>) rather than needing to rebuild the container and database every time you switch between <code>develop</code> and <code>next</code> as would likely be needed if the same Docker Compose project were used for both release trains.</p>
|
|
9998
|
+
<p>Conversely, if you're using the virtual environment workflow, you may need to manually run <code>poetry install</code> whenever switching between primary branches, and may need to manually drop and restore the database schema as well. Be aware!</p>
|
|
9999
|
+
</div>
|
|
10000
|
+
<h4 id="prototypes">Prototypes<a class="headerlink" href="#prototypes" title="Permanent link">¶</a></h4>
|
|
10001
|
+
<p>Sometimes code is written as a proof of concept or early implementation candidate but is not quite ready to be merged, or may be picked up by another author sometime in the future. In that case, the convention is to use the <code>prototype/</code> prefix to the branch name and not requiring the original authors username. In that scenario, using the example above, you would instead:</p>
|
|
10002
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-34-1" name="__codelineno-34-1" href="#__codelineno-34-1"></a>invoke branch --create --branch prototype/1234-next-amazing-feature --parent next
|
|
10003
|
+
</code></pre></div>
|
|
9990
10004
|
<h3 id="creating-a-superuser">Creating a Superuser<a class="headerlink" href="#creating-a-superuser" title="Permanent link">¶</a></h3>
|
|
9991
10005
|
<details class="version-changed">
|
|
9992
10006
|
<summary>Changed in version 2.1.2</summary>
|