Re: [openstack-dev] [Keystone] stabilizing internal APIs

2013-10-15 Thread Dolph Mathews
On Tue, Oct 15, 2013 at 6:05 PM, Morgan Fainberg m...@metacloud.com wrote:
 Hi Fellow Developers (and those who interface with keystone at the code
 level),

 I wanted to reach out to the ML and see what the opinions were about
 starting to stabilize the internal APIs (wherever possible) for the keystone
 project (I would also like to see similar work done in the other fully
 integrated projects, but I am starting with a smaller audience).

 I believe that (especially in the case of things like identity_api -
 assignment_api) we should start supporting the concept of Release -1
 (current release, and previous release) of a given internal API.  While this
 isn't feasible everywhere, if we can't maintain at least an exception being
 raised that indicates what should be called would be ideal for the release
 the change occurred in.

 This will significantly help any developers who have custom code that relies
 on these APIs to find the locations of our new internal APIs.  Perhaps the
 stub function/method replacement that simply raises a go used this new
 method/function type exception would be sufficient and make porting code
 easier.

With a more stringent end goal in mind (release - 1), I think
functional documentation would be a great step in the right direction,
and an easy ask for developers  reviewers.

The two most important capabilities are to provide warnings for when
something may be completely removed (release +1 or +2) and to point to
the new method/function (where possible).

The immediate use case for this patch is to deprecate v2.0
controllers, but there's no reason why it couldn't be adapted to
driver interfaces, etc:

  https://review.openstack.org/#/c/50486/


 This would require at the start of each release a cleanup patchset that
 removed the stub or old methods/functions that are now fully deprecated.

 So with that, lets talk about this more in depth see where it lands.  I want
 to weed out any potential pitfalls before a concept like this makes it
 anywhere beyond some neural misfires that came up in a passing discussion.
 It may just not be feasible/worth the effort in the grand scheme of things.

 Cheers,
 Morgan Fainberg

 IRC: morganfainberg

 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




-- 

-Dolph

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Keystone] stabilizing internal APIs

2013-10-15 Thread Doug Hellmann
On Tue, Oct 15, 2013 at 7:05 PM, Morgan Fainberg m...@metacloud.com wrote:

 Hi Fellow Developers (and those who interface with keystone at the code
 level),

 I wanted to reach out to the ML and see what the opinions were about
 starting to stabilize the internal APIs (wherever possible) for the
 keystone project (I would also like to see similar work done in the other
 fully integrated projects, but I am starting with a smaller audience).

 I believe that (especially in the case of things like identity_api -
 assignment_api) we should start supporting the concept of Release -1
 (current release, and previous release) of a given internal API.  While
 this isn't feasible everywhere, if we can't maintain at least an exception
 being raised that indicates what should be called would be ideal for the
 release the change occurred in.

 This will significantly help any developers who have custom code that
 relies on these APIs to find the locations of our new internal APIs.
  Perhaps the stub function/method replacement that simply raises a go
 used this new method/function type exception would be sufficient and make
 porting code easier.

 This would require at the start of each release a cleanup patchset that
 removed the stub or old methods/functions that are now fully deprecated.

 So with that, lets talk about this more in depth see where it lands.  I
 want to weed out any potential pitfalls before a concept like this makes it
 anywhere beyond some neural misfires that came up in a passing discussion.
  It may just not be feasible/worth the effort in the grand scheme of things.


Making updates easier would be nice, and the abstract base class work
should help with that. On the other hand, as a deployer who has had to
rewrite our custom integration a few times in the past 6 months or so, I
would also welcome some stability in the plugin APIs. I understand the need
to provide flexibility and updated features for new REST APIs, but I hope
we can find a way to migrate more smoothly or make newer features optional
in the plugins themselves.

DreamHost will have several developers at the summit; is there a session to
talk about approaches for this that we should make sure to attend?

Doug



 Cheers,
 Morgan Fainberg

 IRC: morganfainberg

 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Keystone] stabilizing internal APIs

2013-10-15 Thread Morgan Fainberg
On Tue, Oct 15, 2013 at 5:05 PM, Doug Hellmann
doug.hellm...@dreamhost.comwrote:


 Making updates easier would be nice, and the abstract base class work
 should help with that. On the other hand, as a deployer who has had to
 rewrite our custom integration a few times in the past 6 months or so, I
 would also welcome some stability in the plugin APIs. I understand the need
 to provide flexibility and updated features for new REST APIs, but I hope
 we can find a way to migrate more smoothly or make newer features optional
 in the plugins themselves.

 Agreed, the ABC changes that are slowing making their way in will most
assuredly help some.


 DreamHost will have several developers at the summit; is there a session
 to talk about approaches for this that we should make sure to attend?

 I do not believe there is currently a session slated for anything like
this.  You could propose a session for this (or I could); obviously we
would need enough interest to make it worth committing a whole session to.
 Maybe piggy-back this one onto another session already proposed?  Maybe
this should be a broader-than-keystone-only topic?
--Morgan
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Keystone] stabilizing internal APIs

2013-10-15 Thread Robert Collins
I think everyone will have opinions :). I suggest proving it in
keystone and then bringing in a larger audience; we've had discussions
about graceful evolution for some time now but little concrete action
- I think because we're too ambitious, and the costs that result are
perceived to be too high.

+1 for doing it!

-Rob

On 16 October 2013 14:00, Morgan Fainberg m...@metacloud.com wrote:


 On Tue, Oct 15, 2013 at 5:05 PM, Doug Hellmann doug.hellm...@dreamhost.com
 wrote:


 Making updates easier would be nice, and the abstract base class work
 should help with that. On the other hand, as a deployer who has had to
 rewrite our custom integration a few times in the past 6 months or so, I
 would also welcome some stability in the plugin APIs. I understand the need
 to provide flexibility and updated features for new REST APIs, but I hope we
 can find a way to migrate more smoothly or make newer features optional in
 the plugins themselves.

 Agreed, the ABC changes that are slowing making their way in will most
 assuredly help some.


 DreamHost will have several developers at the summit; is there a session
 to talk about approaches for this that we should make sure to attend?

 I do not believe there is currently a session slated for anything like this.
 You could propose a session for this (or I could); obviously we would need
 enough interest to make it worth committing a whole session to.  Maybe
 piggy-back this one onto another session already proposed?  Maybe this
 should be a broader-than-keystone-only topic?
 --Morgan

 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




-- 
Robert Collins rbtcoll...@hp.com
Distinguished Technologist
HP Converged Cloud

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev