Graduating versionutils to oslo.log

https://blueprints.launchpad.net/oslo?searchtext=graduate-oslo-versionutils

The versionutils module contains tools for reporting deprecations of features at OpenStack release cycle boundaries. It is being added to oslo.log because it is not large enough to make sense to manage as a library on its own, and the primary use is as a logging helper function.

Library Name

What is the name of the new library?: oslo.log and oslo.utils

Contents

  • openstack/common/versionutils.py

  • tests/unit/test_versionutils.py

Early Adopters

None

Public API

The deprecated() decorator and report_deprecated_feature() will be available through oslo_log.versionutils.

is_compatible() will be added to oslo_utils.versionutils.

Implementation

Assignee(s)

Primary assignee: Doug Hellmann

Other contributors: None

Primary Maintainer

Primary Maintainer: Existing library maintainers

Other Contributors: None

Security Contact

Security Contact: Existing contacts

Milestones

Target Milestone for completion: liberty-1

Work Items

  1. Extract the history for the versionutils code into a new repository.

  2. Import that history into a branch of the oslo.log repo. The changes in the branch will need to be submitted to gerrit for review, but we can fast-approve them because they have already been reviewed in the incubator.

  3. Merge the branch into master, with accompanying fixes to make the tests work.

  4. Remove is_compatible() from oslo.log.

  5. Import that history into a branch of the oslo.utils repo. The changes in the branch will need to be submitted to gerrit for review, but we can fast-approve them because they have already been reviewed in the incubator.

  6. Merge the branch into master, with accompanying fixes to make the tests work.

  7. Remove the parts of versionutils not related to is_compatible() from oslo.utils.

  8. Release both oslo.log and oslo.utils.

  9. Remove versionutils from the incubator.

Adoption Notes

Most applications will already be using versionutils, and the API won’t be changing, so adoption should be fairly straightforward.

Dependencies

None

References

Note

This work is licensed under a Creative Commons Attribution 3.0 Unported License. http://creativecommons.org/licenses/by/3.0/legalcode