Add content on deprecating functionality

Open
#33 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
52/100
Issue type
Documentation
Clarity
Clearly specified
Activity status
Stale
Tech stack
python
Domain
documentation

Research direction

Open Module 7 in 07_packaging.qmd and read the existing “Breaking changes” section around line 132. Add a focused section covering warning types and stacklevel, a deprecation timeline, communication practices, code and real-world examples. Done means the module explains these strategies clearly and fits the surrounding course content.

Written by the indexing model from the issue text.

Description

Problem

The course covers semantic versioning and breaking changes in Module 7, but lacks content on deprecation strategies - a critical skill for package maintainers.

Proposed Content

Add a section to Module 7 (07_packaging.qmd) covering:

1. Deprecation Warnings
  • Using Python's warnings module
  • Proper stacklevel usage
  • DeprecationWarning vs FutureWarning:
    • DeprecationWarning: For developers (filtered by default, shown when running tests)
    • FutureWarning: For end users (always visible, for changes affecting user code)
2. Deprecation Timeline
  • Announce in version X.Y
  • Remove in version (X+1).0
  • Maintain for 1-2 minor releases minimum
3. Communication Strategy
  • CHANGELOG updates
  • Release notes
  • Documentation migration guides
  • Clear docstring warnings
4. Code Examples
import warnings

def old_function(x):
    warnings.warn(
        "old_function is deprecated and will be removed in version 2.0. "
        "Use new_function instead.",
        DeprecationWarning,
        stacklevel=2
    )
    return new_function(x)
5. Real-World Examples

Reference deprecation practices from popular packages (pandas, numpy, scikit-learn).

Location

Module 7 - after the "Breaking changes" section (around line 132)

Dominant language
Jupyter Notebook
Stars
8
Forks
1
Avg merge
4m
Merged PRs (30d)
1

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from DHI/python-package-development

All issues in DHI/python-package-development

Similar issues

More Documentation issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.