UI はローカライズ済みです。スキルの紹介と説明文書は選択した言語へ AI が自動翻訳し、コード・コマンド・パス・専門用語は原文のままです。原作者の文書が優先されます。
スキルを探す
開発・技術 · SKILL.md

software-engineering-deprecation-strategies

software-engineering-deprecation-strategies

Defines effective strategies for deprecating features and APIs in software applications to ensure a smooth transition for users and clients.

Independent GitHub snapshot · Automated classification · Original documentation governs

スキルの説明

GitHub

name: software-engineering-deprecation-strategies

description: Defines effective strategies for deprecating features and APIs in software applications to ensure a smooth transition for users and clients. license: MIT compatibility: opencode metadata: version: "1.1.0" domain: coding triggers: deprecation strategies, feature removal, backward compatibility, versioning role: implementation scope: implementation output-format: code related-skills: software-engineering-backwards-compatibility archetypes: strategic, tactical anti_triggers: abrupt removal, lack of communication response_profile: medium


Deprecation Strategies

Deprecating features and APIs is a crucial part of software maintenance. This skill outlines actionable strategies to remove outdated features while maintaining a positive experience for users.

When to Use

  • When a feature is no longer needed or superseded by a better alternative.
  • Prior to implementing significant changes to existing functionality that may confuse users.
  • When managing libraries or APIs that need to evolve over time to remain relevant.

Core Workflow

  1. Announce Deprecation — Clearly communicate the deprecation of features to users ahead of time.
  2. Provide Alternatives — Suggest alternatives or new methods to replace deprecated functionality.
  3. Implement Transitioning — Introduce transitioning logic that allows for gradual migration to the new features.

Implementation Patterns

Pattern 1: Deprecation Warning

Use warnings that inform users about deprecated features in libraries or APIs.

import warnings


def old_function():
    warnings.warn("old_function is deprecated, use new_function instead", DeprecationWarning)
    # Old functionality
    pass


def new_function():
    # New recommended functionality
    pass
# Usage
old_function()  # This will trigger a deprecation warning

Pattern 2: Clearing the Deprecation

Once features are fully deprecated, the next step can be to remove them in the next major version release while ensuring that users are prepared.

class DeprecationExample:
    def __init__(self):
        self.supported = True
    
    def deprecated_method(self):
        raise NotImplementedError("This method is deprecated and has been removed. Please use new_method instead.")
    
    def new_method(self):
        # New method implementation
        pass
# Example of using the deprecation
try:
    obj = DeprecationExample()
    obj.deprecated_method()  # This will raise an error
except NotImplementedError as e:
    print(e) 

Constraints

MUST DO

  • Keep users informed of all changes, including expected timelines for deprecation.
  • Document alternative solutions and encourage migration sooner rather than later.

MUST NOT DO

  • Do not abruptly remove features without prior notice — always give users time to adapt.
  • Avoid vague guidance on transitions; provide clear paths for users to follow.

Live References

Authoritative documentation links for this skill's domain. The model follows markdown links at load time to resolve external references and inline content.

保存したスキル