← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1816163] [NEW] RFE: Better expose public interfaces

 

Public bug reported:

(The original blueprint was written by Jamie Lennox)

We have gone through the process of adding and then removing versioned
driver interfaces which intended to give stable interfaces to
implementers of drivers. The rationale behind removing it was that it
was too much work (that went largely untested) to translate between
interfaces. We decided instead that release notes and documentation
could be used to communicate how to update drivers.

I think part of the problem here is that we do not define what is and
what is not a public interface that an implementer can use and so they
implement things they shouldn't, and we don't correctly deprecate
features we should.

I propose that we add a new directory/module to keystone in
keystone/lib. keystone-lib is a listing of the _only_ things external
code should rely upon in keystone. Everything in this module will
undergo the standard 2 cycle deprecation period with warnings etc. We
can then evolve drivers, models and other things in a library-like
manner.

This will provide clear signals to users and to keystone developers what
is and is not required to be deprecated and maintained.

** Affects: keystone
     Importance: Wishlist
         Status: Triaged

** Changed in: keystone
       Status: New => Triaged

** Changed in: keystone
   Importance: Undecided => Wishlist

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Identity (keystone).
https://bugs.launchpad.net/bugs/1816163

Title:
  RFE: Better expose public interfaces

Status in OpenStack Identity (keystone):
  Triaged

Bug description:
  (The original blueprint was written by Jamie Lennox)

  We have gone through the process of adding and then removing versioned
  driver interfaces which intended to give stable interfaces to
  implementers of drivers. The rationale behind removing it was that it
  was too much work (that went largely untested) to translate between
  interfaces. We decided instead that release notes and documentation
  could be used to communicate how to update drivers.

  I think part of the problem here is that we do not define what is and
  what is not a public interface that an implementer can use and so they
  implement things they shouldn't, and we don't correctly deprecate
  features we should.

  I propose that we add a new directory/module to keystone in
  keystone/lib. keystone-lib is a listing of the _only_ things external
  code should rely upon in keystone. Everything in this module will
  undergo the standard 2 cycle deprecation period with warnings etc. We
  can then evolve drivers, models and other things in a library-like
  manner.

  This will provide clear signals to users and to keystone developers
  what is and is not required to be deprecated and maintained.

To manage notifications about this bug go to:
https://bugs.launchpad.net/keystone/+bug/1816163/+subscriptions


Follow ups