Skip to content

Breaking Changes

This page documents all breaking changes introduced in Arctyk ITSM releases.


What is a Breaking Change?

A breaking change is any modification that:

  • Removes or renames public APIs, models, or functions
  • Changes database schema in a non-backward-compatible way
  • Modifies configuration file formats
  • Removes features or endpoints
  • Changes expected behavior of existing functionality

Version 0.6.0

Status: No Breaking Changes ✅

Version 0.6.0 introduces significant new features (Comments, SLA fields, lifecycle timestamps, and comprehensive developer documentation) while remaining fully backward compatible with 0.5.0.

All new database fields are optional with sensible defaults, and existing APIs remain unchanged.


Version 0.5.0

Status: No Breaking Changes ✅

Version 0.5.0 enhances the workflow system with audit trails and inline editing while maintaining full compatibility with 0.4.x.


Version 0.4.0

Recurring Ticket System Removed

Impact: High
Affected Areas: Models, Tasks, Views

The recurring ticket feature was removed in 0.4.0 due to architectural refactoring.

Migration Path:

  • Existing recurring ticket records remain in the database but are inactive
  • The feature will be reintroduced with improved architecture in a future release
  • No immediate action required unless you have custom code referencing recurring tickets

Code Changes Required:

# Remove any imports of recurring ticket models
# from tickets.models import RecurringTicket  # ❌ Remove this

# Remove references to recurring ticket tasks
# from tickets.tasks import create_recurring_tickets  # ❌ Remove this

Workflow System Refactored

Impact: Medium
Affected Areas: Ticket Forms, Views, Constants

The ticket workflow system now uses category-based transitions similar to Jira.

Migration Path:

  • Review any custom workflow logic
  • Update code to use WORKFLOW_TRANSITIONS instead of direct status changes
  • Use get_available_transitions() method on Ticket model

Before:

# Old direct status change
ticket.status = 'resolved'
ticket.save()

After:

# New workflow-aware change
from tickets.workflows import is_valid_transition

if is_valid_transition(ticket.status, 'resolved'):
    ticket.status = 'resolved'
    ticket.save()
else:
    raise ValidationError("Invalid status transition")

UI Component Changes

Impact: Low
Affected Areas: Templates, Static Assets

SCSS architecture reorganized from flat structure to modular base/, layout/, components/, views/.

Migration Path:

  • If you have custom styles, update import paths
  • Review any overridden templates for changes in HTML structure
  • Rebuild static assets with updated SCSS

Version 0.3.0

Django Admin Customizations

Impact: Low
Affected Areas: Admin Interface

Custom admin classes were introduced. If you have custom admin modifications, you may need to adjust them.


Future Breaking Changes

Planned Changes

Future versions may include: - Django 6.x upgrade (when available) - PostgreSQL version requirements - Python version requirements

Check the roadmap and changelog before upgrading.

Deprecation Policy

Arctyk ITSM follows these deprecation guidelines:

  1. Deprecation Notice: Features scheduled for removal are marked deprecated in documentation and may log warnings
  2. Grace Period: Deprecated features remain functional for at least one minor version
  3. Removal: Features are removed in the next major version after deprecation

Getting Help

If a breaking change affects your deployment:

Recurring Ticket System Removed

Impact: High
Affected Areas: Models, Tasks, Views

The recurring ticket feature was removed in 0.4.0 due to architectural refactoring.

Migration Path:

  • Existing recurring ticket records remain in the database but are inactive
  • The feature will be reintroduced with improved architecture in a future release
  • No immediate action required unless you have custom code referencing recurring tickets

Code Changes Required:

# Remove any imports of recurring ticket models
# from tickets.models import RecurringTicket  # ❌ Remove this

# Remove references to recurring ticket tasks
# from tickets.tasks import create_recurring_tickets  # ❌ Remove this

Workflow System Refactored

Impact: Medium
Affected Areas: Ticket Forms, Views, Constants

The ticket workflow system now uses category-based transitions similar to Jira.

Migration Path:

  • Review any custom workflow logic
  • Update code to use WORKFLOW_TRANSITIONS instead of direct status changes
  • Use get_available_transitions() method on Ticket model

Before:

# Old direct status change
ticket.status = 'resolved'
ticket.save()

After:

# New workflow-aware change
from tickets.workflows import is_valid_transition

if is_valid_transition(ticket.status, 'resolved'):
    ticket.status = 'resolved'
    ticket.save()
else:
    raise ValidationError("Invalid status transition")

UI Component Changes

Impact: Low
Affected Areas: Templates, Static Assets

SCSS architecture reorganized from flat structure to modular base/, layout/, components/, views/.

Migration Path:

  • If you have custom styles, update import paths
  • Review any overridden templates for changes in HTML structure
  • Rebuild static assets with updated SCSS

Version 0.3.0

Django Admin Customizations

Impact: Low
Affected Areas: Admin Interface

Custom admin classes were introduced. If you have custom admin modifications, you may need to adjust them.


Future Breaking Changes

Planned Changes

Future versions may include: - Django 6.x upgrade (when available) - PostgreSQL version requirements - Python version requirements

Check the roadmap and changelog before upgrading.

Deprecation Policy

Arctyk ITSM follows these deprecation guidelines:

  1. Deprecation Notice: Features scheduled for removal are marked deprecated in documentation and may log warnings
  2. Grace Period: Deprecated features remain functional for at least one minor version
  3. Removal: Features are removed in the next major version after deprecation

Getting Help

If a breaking change affects your deployment: