Add the initial packaging and classes for housekeeping.

Review Request #13011 — Created May 4, 2023 and submitted

Information

housekeeping
master

Reviewers

Housekeeping is a Python package designed to make it easy for projects
to mark consumed code as deprecated or pending deprecation, with helpful
instructions for consumers using deprecated functionality.

It's built with the lessons we learned in Review Board, Djblets, and
RBTools.

There are two categories of warnings:

  • Deprecation warnings, which mark code as being deprecated and
    scheduled for removal in a specific upcoming version.

  • Pending deprecation warnings, which mark code as being available but
    scheduled to be deprecated in an unknown future version. Projects
    should later transition these to full deprecation warnings.

Deprecation warnings are backed by BaseRemovedInWarning, and
pending deprecation warnings are backed by BasePendingRemovalWarning.

Projects should subclass these to make their own base classes, filling
in the product field to specify their project's name. Subclasses of
their "removed in" deprecation warning class should then be created for
any versions in which functionality will be deprecated.

These classes can be passed to any Housekeeping function. Suitable
deprecation messages will be generated automatically.

Projects can also emit deprecation warnings themselves through the
.warn() function on the class.

This change introduces the base packaging, development setup, and base
warning classes. Upcoming changes will introduce deprecation helpers
that work with these classes.

Tested packaging and installing.

Tested with in-progress deprecation helpers.

Viewed the README in a GitHub-compatible Markdown viewer.

Summary ID
Add the initial packaging and classes for housekeeping.
Housekeeping is a Python package designed to make it easy for projects to mark consumed code as deprecated or pending deprecation, with helpful instructions for consumers using deprecated functionality. It's built with the lessons we learned in Review Board, Djblets, and RBTools. There are two categories of warnings: * Deprecation warnings, which mark code as being deprecated and scheduled for removal in a specific upcoming version. * Pending deprecation warnings, which mark code as being available but scheduled to be deprecated in an unknown future version. Projects should later transition these to full deprecation warnings. Deprecation warnings are backed by `BaseRemovedInWarning`, and pending deprecation warnings are backed by `BasePendingRemovalWarning`. Projects should subclass these to make their own base classes, filling in the `product` field to specify their project's name. Subclasses of their "removed in" deprecation warning class should then be created for any versions in which functionality will be deprecated. These classes can be passed to any Housekeeping function. Suitable deprecation messages will be generated automatically. Projects can also emit deprecation warnings themselves through the `.warn()` function on the class. This change introduces the base packaging, development setup, and base warning classes. Upcoming changes will introduce deprecation helpers that work with these classes.
42d38d8fe5238de4f94dd86420c6dcbe334d5219
Description From Last Updated

'typing.TypeVar' imported but unused Column: 1 Error code: F401

reviewbotreviewbot

This line needs to be wrapped.

daviddavid
Checks run (1 failed, 1 succeeded)
flake8 failed.
JSHint passed.

flake8

chipx86
david
  1. 
      
  2. README.md (Diff revision 2)
     
     
    Show all issues

    This line needs to be wrapped.

  3. 
      
chipx86
Review request changed
Status:
Completed