[openstack-dev] [tc][cinder] tag:follows-standard-deprecation should be removed
Hayes, Graham
graham.hayes at hpe.com
Thu Aug 11 14:43:50 UTC 2016
On 11/08/2016 15:35, John Griffith wrote:
>
>
> On Thu, Aug 11, 2016 at 7:14 AM, Erno Kuvaja <ekuvaja at redhat.com
> <mailto:ekuvaja at redhat.com>> wrote:
>
> On Thu, Aug 11, 2016 at 2:47 PM, Sean McGinnis
> <sean.mcginnis at gmx.com <mailto:sean.mcginnis at gmx.com>> wrote:
> >> >>
> >> >> As follow up on the mailing list discussion [0], gerrit activity
> >> >> [1][2] and cinder 3rd party CI policy [3] I'd like to initiate
> >> >> discussion how Cinder follows, or rather does not follow, the
> standard
> >> >> deprecation policy [4] as the project has been tagged on the
> assert
> >> >> page [5].
> >> >>
> > <snip>
> >> >>
> >> >> [0]
> http://lists.openstack.org/pipermail/openstack-dev/2016-August/100717.html
> <http://lists.openstack.org/pipermail/openstack-dev/2016-August/100717.html>
> >> >> [1] https://review.openstack.org/#/c/348032/
> <https://review.openstack.org/#/c/348032/>
> >> >> [2] https://review.openstack.org/#/c/348042/
> <https://review.openstack.org/#/c/348042/>
> >> >> [3]
> https://wiki.openstack.org/wiki/Cinder/tested-3rdParty-drivers
> <https://wiki.openstack.org/wiki/Cinder/tested-3rdParty-drivers>
> >> >> [4]
> https://governance.openstack.org/reference/tags/assert_follows-standard-deprecation.html#requirements
> <https://governance.openstack.org/reference/tags/assert_follows-standard-deprecation.html#requirements>
> >> >> [5]
> https://governance.openstack.org/reference/tags/assert_follows-standard-deprecation.html#application-to-current-projects
> <https://governance.openstack.org/reference/tags/assert_follows-standard-deprecation.html#application-to-current-projects>
> >> >>
> >> >
> >> > Can you be more specific about what you mean? Are you saying that
> >> > the policy isn't being followed because the drivers were removed
> >> > without a deprecation period, or is there something else to it?
> >> >
> >> > Doug
> >> >
> >>
> >> Yes, that's how I see it. Cinder's own policy is that the drivers can
> >> be removed without any warning to the consumers while the standard
> >> deprecation policy defines quite strict lines about informing the
> >> consumer of the functionality deprecation before it gets removed.
> >>
> >> - Erno
> >
> > It is a good point. I think it highlights a common thread though with
> > the other discussion that, at least so far, third party drivers are
> > treated differently than the rest of the code.
> >
> > For any other functionality we certainly follow the deprecation
> policy.
> > Even in existing drivers we try to enforce that any driver renames,
> > config setting changes, and similar non-backwards compatible
> changes go
> > through the normal deprecation cycle before being removed.
> >
> > Ideally I would love it if we could comply with the deprecation policy
> > with regards to driver removal. But the reality is, if we don't
> see that
> > a driver is being supported and maintained by its vendor, then that
> > burden can't fall on the wider OpenStack and Cinder community that has
> > no way of validating against physical hardware.
> >
> > I think third party drivers need to be treated differently when it
> comes
> > to the deprecation policy. If that is not acceptable, then I
> suppose we
> > do need to remove that tag. Tag removal would be the lesser of the two
> > versus keeping around drivers that we know aren't really being
> > maintained.
> >
> > If it came to that, I would also consider creating a new
> cinder-drivers
> > project under the Cinder umbrella and move all of the drivers not
> tested
> > by Jenkins over to that. That wouldn't be a trivial undertaking, so I
> > would try to avoid that if possible. But it would at least allow us to
> > still get code reviews and all of the benefits of being in tree. Just
> > some thoughts.
> >
> > Sean
> >
>
> Sean,
>
> As said on my initial opening, I do understand and agree with the
> reasoning/treatment of the 3rd party drivers. My request for that tag
> removal is out of the remains of my ops hat.
>
> Lets say I was ops evaluating different options as storage vendor for
> my cloud and I get told that "Here is the list of supported drivers
> for different OpenStack Cinder back ends delivered by Cinder team", I
> start looking what the support level of those drivers are and see that
> Cinder follows standard deprecation which is fairly user/ops friendly
> with decent warning etc. I'm happy with that, not knowing OpenStack I
> would not even look if different subcomponents of Cinder happens to
> follow different policy. Now I buy storage vendor X HW and at Oct I
> realize that the vendor's driver is not shipped, nor any remains of it
> is visible anymore, I'd be reasonably pissed off. If I knew that the
> risk is there I would select my HW based on the negotiations that my
> HW is contractually tied to maintain that driver and it's CI, and that
> would be fine as well or if not possible I'd select some other
> solution I could get reasonably guarantee that it will be
> supported/valid at it's expected life time. As said I don't think
> there is anything wrong with the 3rd party driver policy, but
> maintaining that and the tag about standard-deprecation project wide
> is sending wrong message to those who do not know better to safeguard
> their rear ends.
>
> The other option would be to leave the drivers in tree, tag them with
> deprecation message, something like "This driver has not been tested
> by vendor CI since 15.3.2016 and cannot be guaranteed working. Unless
> testing will be resumed the driver will be removed on Unicorn
> release". Which would give as clear indication that the driver seems
> abandoned, but still provide the consumer easier way to test in their
> staging if the driver is something they still dare to use in
> production or not.
>
> IMHO this is purely to set the expectations right for our consumers so
> that they know what to expect from us and what to demand from their
> vendors. Personally I don't think such tags should be the reason why
> we do development in certain way, but rather just indication for the
> consumer where they should pay attention while making the decisions.
>
> - Erno
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe:
> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>
>
>
>>> Yes, that's how I see it. Cinder's own policy is that the drivers can
>>> be removed without any warning to the consumers while the standard
>>> deprecation policy defines quite strict lines about informing the
>>> consumer of the functionality deprecation before it gets removed.
>
> That is a great point, it was mentioned at one point but we sort of
> conveniently swept it under the rug a bit. I certainly understand the
> problem, I do think there's two sides to it. Frankly I also think it
> points out that drivers really are *different* like it or not. So it
> totally sucks that yes, a release could come out and that driver no
> longer exists, and that's no good.
>
>
> BUT on the other hand, it's not much worse to find that the code has
> been all but abandoned and no longer works anyway. I don't think either
> scenario is a good one. It highlights in my opinion that frankly maybe
> distros and customers should be more selective in what they choose to
> use. Community involvement matters.
>
> That being said, I'm not sure which I'd prefer to see happen in this
> situation. I lean slightly towards remove the "follows deprecation" tag
> from Cinder and continue to remove drivers.
>
> The alternative isn't much better, but if we go that route I do think we
> should come up with some widely broadcasted advertisement of drivers
> that are just using Cinder as dumping ground and don't offer any care
> and feeding to the project in any way shape or form (you know who you
> are... but you're not reading this ML anyway).
>
Well as it currently stands, the tag should be removed.
If the policy is changed to accommodate cinder, then the tag can be
re-applied.
Personally, I think it is good how cinder deals with drivers - it means
that there is no grey area.
What we did in designate was define grades [0]. Would that be a
solution? We are planning on having the driver grade logged at startup
and if it is "Untested" or lower, logging ever increasingly large
warning messages.
Would something like this be potential solution?
I can pull out the underlying sphinx extension for displaying it if
needs be, and do a bit of tidying up.
- Graham
0 - http://docs.openstack.org/developer/designate/support-matrix.html
More information about the OpenStack-dev
mailing list