Removal is definitely not on the table until at least ATCv7

On Tue, Aug 3, 2021 at 10:56 AM Gray, Jonathan
<jonathan_g...@comcast.com.invalid> wrote:

> Be aware that the ansible deployment code is dependent on v2 for the
> moment until it’s updated again.  Deprecation is fine, but if it’s removed
> we’ll be in the same boat we were in when 1.x got removed.
>
> Jonathan G
>
> From: ocket 8888 <ocket8...@gmail.com>
> Date: Tuesday, August 3, 2021 at 10:53 AM
> To: dev@trafficcontrol.apache.org <dev@trafficcontrol.apache.org>
> Subject: Re: [EXTERNAL] Re: Deprecate APIv2 and v3
> Alright, it seems like nobody is opposed to deprecating APIv2 (please
> correct me if that's wrong), so assuming that's the case to be perfectly
> clear on what everyone wants to do, I'd like to call for a final vote on
> whether or not to deprecate APIv3, so that if we do we can get it into the
> docs and changelog by the 16th when the release is currently set to be cut.
>
> I'm +1 on my own proposal, unsurprisingly.
>
> On Wed, Jul 28, 2021 at 11:28 AM ocket 8888 <ocket8...@gmail.com> wrote:
>
> > I don't disagree with any of that.
> >
> > On Wed, Jul 28, 2021 at 9:01 AM Gray, Jonathan
> > <jonathan_g...@comcast.com.invalid> wrote:
> >
> >> > so that APIv3 doesn't become the next entrenched version to be
> >> hard-coded into a plethora of obscure scripts so that it takes over a
> year
> >> to switch.
> >>
> >> Those scripts are just as important as the ATC project itself when it
> >> comes to production operations.  API version churn is expensive and
> it’s a
> >> symbiotic relationship.  OSS projects that maintain backward
> compatibility
> >> are easier to work with and attain greater adoption.  It’s just another
> >> facet of encouraging adoption just like good PR processes and tests.
> >>
> >> Jonathan G
> >>
> >> From: ocket 8888 <ocket8...@gmail.com>
> >> Date: Tuesday, July 27, 2021 at 5:55 PM
> >> To: dev@trafficcontrol.apache.org <dev@trafficcontrol.apache.org>
> >> Subject: Re: [EXTERNAL] Re: Deprecate APIv2 and v3
> >> I have a link to the mailing list discussion:
> >>
> >>
> https://urldefense.com/v3/__https://lists.apache.org/thread.html/b857afc7b52e72b2e60ebb3eb594b6fa5dd0ed3c9af5a17b58ee4a99*40*3Cdev.trafficcontrol.apache.org*3E__;JSUl!!CQl3mcHX2A!Q_lvH7GunLsRSIigt4CHJwosp0fih_-ArK7UVI4Z2cr5_J00BL2ZxgbYrYcu9fPda49a$
> <
> https://urldefense.com/v3/__https:/lists.apache.org/thread.html/b857afc7b52e72b2e60ebb3eb594b6fa5dd0ed3c9af5a17b58ee4a99*40*3Cdev.trafficcontrol.apache.org*3E__;JSUl!!CQl3mcHX2A!Q_lvH7GunLsRSIigt4CHJwosp0fih_-ArK7UVI4Z2cr5_J00BL2ZxgbYrYcu9fPda49a$
> >
> >> <
> >>
> https://urldefense.com/v3/__https:/lists.apache.org/thread.html/b857afc7b52e72b2e60ebb3eb594b6fa5dd0ed3c9af5a17b58ee4a99*40*3Cdev.trafficcontrol.apache.org*3E__;JSUl!!CQl3mcHX2A!Q_lvH7GunLsRSIigt4CHJwosp0fih_-ArK7UVI4Z2cr5_J00BL2ZxgbYrYcu9fPda49a$
> >> >
> >>
> >> People can still use APIv3 (and v2) until ATCv7. if we don't deprecate
> >> APIv3, then we're going to be in the same boat next time around when
> APIv5
> >> happens - which I know some people aren't thrilled about but I think
> we're
> >> going to need it almost immediately after ATCv6 drops - where we have
> two
> >> supported legacy API versions carrying around cruft and tech debt. IMO,
> we
> >> need to rip this band-aid off sooner rather than later, so that APIv3
> >> doesn't become the next entrenched version to be hard-coded into a
> >> plethora
> >> of obscure scripts so that it takes over a year to switch.
> >>
> >>
> >>
> >> On Tue, Jul 27, 2021 at 4:05 PM Dave Neuman <neu...@apache.org> wrote:
> >>
> >> > Isn't this email almost like a survey?  Anyone doing API work is
> >> probably
> >> > on this ML or should be.
> >> >
> >> > Brennan, do you have a link to that discussion?  If it wasn't on list
> >> then
> >> > it didn't happen ;)
> >> >
> >> > Like I said, I am not going to -1 the proposal but given that I now
> know
> >> > that 4.x isn't introduced until ATC 6.x, I don't see the big hurry to
> >> > remove 2.x and 3.x.  It seems a little premature to me, maybe we just
> do
> >> > 2.x and not 3.x?  Presumably folks that updated from 1.x went to 3.x
> >> and we
> >> > should give them a chance to use that before ripping it out too.
> >> >
> >> > Also, as an aside, it seems like we are adding more and more to 6.x,
> if
> >> we
> >> > want to get that out we should probably just focus on what needs to be
> >> > completed and not adding more to it.
> >> >
> >> > --Dave
> >> >
> >> >
> >> > On Tue, Jul 27, 2021 at 2:24 PM ocket 8888 <ocket8...@gmail.com>
> wrote:
> >> >
> >> > > The reason that's relevant being that deprecating 2.0 and 3.0 with
> the
> >> > > release of 4.0 is in-line with that strategy.
> >> > >
> >> > > On Tue, Jul 27, 2021 at 2:23 PM ocket 8888 <ocket8...@gmail.com>
> >> wrote:
> >> > >
> >> > > > I know it doesn't change the reality of our situation, but fwiw
> >> APIv1
> >> > > > should've already been gone. From our discussion regarding
> >> versioning
> >> > > when
> >> > > > we were making APIv2 prior to ATC release 4.0:
> >> > > >
> >> > > > > TC 4.0:
> >> > > > > - API 1.x supported, some deprecation notices
> >> > > > >
> >> > > > > TC 4.1:
> >> > > > > - API 1.x still supported, deprecation notices added to
> endpoints
> >> not
> >> > > > graduated to 2.0
> >> > > > > - API 2.0 supported, consisting of 1.x endpoints that were
> >> graduated
> >> > > > > - starting with this release, you need to start migrating
> external
> >> > > > clients off of 1.x over to 2.0
> >> > > > >
> >> > > > > TC 4.2:
> >> > > > > - internal clients (e.g. TM, TR, etc) will be migrated off API
> 1.x
> >> > over
> >> > > > to 2.0. Doing this step after 4.1 adds confidence that 1.x is
> still
> >> > > > supported alongside 2.0 in order to provide a smooth migration
> >> period
> >> > for
> >> > > > API clients.
> >> > > > >
> >> > > > > TC 5.0:
> >> > > > > - API 1.x no longer supported, only API 2.x is supported
> >> > > >
> >> > > > The only reason APIv1 exists in 5.x is because "starting with this
> >> > > > release, you need to start migrating external clients off of 1.x
> >> over
> >> > to
> >> > > > 2.0" wound up taking much, much longer than we thought it would.
> The
> >> > > plan,
> >> > > > as I understand it, was always for only three API versions to ever
> >> > > coexist
> >> > > > - and only two released versions:
> >> > > > - legacy version, deprecated, what everyone's using prior to
> >> upgrade to
> >> > > > ATC version that deprecates it
> >> > > > - supported version, latest released
> >> > > > - development version, not released, nobody should use except ATC
> >> > > > components under active development.
> >> > > >
> >> > > > On Tue, Jul 27, 2021 at 11:56 AM Rawlin Peters <raw...@apache.org
> >
> >> > > wrote:
> >> > > >
> >> > > >> I guess the question now is what do we think is "fair" for our
> >> users?
> >> > > >> Shouldn't they decide? Can we survey them? If it were me doing
> the
> >> > > >> updates, I think I'd prefer to do the 2nd update as close to the
> >> 1st
> >> > > >> update as possible, since those necessary changes would still be
> >> fresh
> >> > > >> in memory. Especially knowing that a 2nd update is coming at some
> >> > > >> point, I'd rather just get it over with as soon as possible and
> not
> >> > > >> have to worry about planning for it later down the line.
> >> > > >>
> >> > > >> - Rawlin
> >> > > >>
> >> > > >> On Tue, Jul 27, 2021 at 11:36 AM Zach Hoffman <
> >> zrhoff...@apache.org>
> >> > > >> wrote:
> >> > > >> >
> >> > > >> > > > Does API 4.x exist before 6.0?
> >> > > >> > > According to the most recent docs, yes.
> >> > > >> >
> >> > > >>
> >> > >
> >> >
> >>
> https://urldefense.com/v3/__https://traffic-control-cdn.readthedocs.io/en/latest/api/index.html*api-v4-routes__;Iw!!CQl3mcHX2A!Q_lvH7GunLsRSIigt4CHJwosp0fih_-ArK7UVI4Z2cr5_J00BL2ZxgbYrYcu9fyRz_Si$
> <
> https://urldefense.com/v3/__https:/traffic-control-cdn.readthedocs.io/en/latest/api/index.html*api-v4-routes__;Iw!!CQl3mcHX2A!Q_lvH7GunLsRSIigt4CHJwosp0fih_-ArK7UVI4Z2cr5_J00BL2ZxgbYrYcu9fyRz_Si$
> >
> >> <
> >>
> https://urldefense.com/v3/__https:/traffic-control-cdn.readthedocs.io/en/latest/api/index.html*api-v4-routes__;Iw!!CQl3mcHX2A!Q_lvH7GunLsRSIigt4CHJwosp0fih_-ArK7UVI4Z2cr5_J00BL2ZxgbYrYcu9fyRz_Si$
> >> >
> >> > > >> >
> >> > > >> > Those are the docs for the master branch.
> >> > > >> > There is no mention of API 4.x in the ATC 5.1.2 docs:
> >> > > >> >
> >>
> https://urldefense.com/v3/__https://traffic-control-cdn.readthedocs.io/en/v5.1.2/api/index.html__;!!CQl3mcHX2A!Q_lvH7GunLsRSIigt4CHJwosp0fih_-ArK7UVI4Z2cr5_J00BL2ZxgbYrYcu9Wv2iauE$
> <
> https://urldefense.com/v3/__https:/traffic-control-cdn.readthedocs.io/en/v5.1.2/api/index.html__;!!CQl3mcHX2A!Q_lvH7GunLsRSIigt4CHJwosp0fih_-ArK7UVI4Z2cr5_J00BL2ZxgbYrYcu9Wv2iauE$
> >
> >> <
> >>
> https://urldefense.com/v3/__https:/traffic-control-cdn.readthedocs.io/en/v5.1.2/api/index.html__;!!CQl3mcHX2A!Q_lvH7GunLsRSIigt4CHJwosp0fih_-ArK7UVI4Z2cr5_J00BL2ZxgbYrYcu9Wv2iauE$
> >> >
> >> > > >> >
> >> > > >> > -Zach
> >> > > >> >
> >> > > >> >
> >> > > >> > On Tue, Jul 27, 2021 at 11:29 AM Gray, Jonathan
> >> > > >> > <jonathan_g...@comcast.com.invalid> wrote:
> >> > > >> >
> >> > > >> > > According to the most recent docs, yes.
> >> > > >> > >
> >> > > >>
> >> > >
> >> >
> >>
> https://urldefense.com/v3/__https://traffic-control-cdn.readthedocs.io/en/latest/api/index.html*api-v4-routes__;Iw!!CQl3mcHX2A!Q_lvH7GunLsRSIigt4CHJwosp0fih_-ArK7UVI4Z2cr5_J00BL2ZxgbYrYcu9fyRz_Si$
> <
> https://urldefense.com/v3/__https:/traffic-control-cdn.readthedocs.io/en/latest/api/index.html*api-v4-routes__;Iw!!CQl3mcHX2A!Q_lvH7GunLsRSIigt4CHJwosp0fih_-ArK7UVI4Z2cr5_J00BL2ZxgbYrYcu9fyRz_Si$
> >
> >> <
> >>
> https://urldefense.com/v3/__https:/traffic-control-cdn.readthedocs.io/en/latest/api/index.html*api-v4-routes__;Iw!!CQl3mcHX2A!Q_lvH7GunLsRSIigt4CHJwosp0fih_-ArK7UVI4Z2cr5_J00BL2ZxgbYrYcu9fyRz_Si$
> >> >
> >> > > >> > >
> >> > > >> > > Jonathan G
> >> > > >> > >
> >> > > >> > > From: Dave Neuman <neu...@apache.org>
> >> > > >> > > Date: Tuesday, July 27, 2021 at 10:59 AM
> >> > > >> > > To: dev@trafficcontrol.apache.org <
> >> dev@trafficcontrol.apache.org>
> >> > > >> > > Subject: Re: [EXTERNAL] Re: Deprecate APIv2 and v3
> >> > > >> > > Does API 4.x exist before 6.0?
> >> > > >> > > I am worried about basically telling our users that before
> they
> >> > can
> >> > > >> go to
> >> > > >> > > 6.x they have to get off API 1.x but the latest at that point
> >> is
> >> > 3.x
> >> > > >> so
> >> > > >> > > then we are turning around and saying they have to update
> >> again.
> >> > I
> >> > > >> would
> >> > > >> > > prefer if we gave more time and did 2.0 now and 3.0 in our
> next
> >> > > >> release.
> >> > > >> > > I am not going to -1 because ultimately it is not going to
> >> impact
> >> > me
> >> > > >> as
> >> > > >> > > much as those that have already shared opinions, but I did
> >> want to
> >> > > >> make
> >> > > >> > > sure we aren't being unfair to our users.
> >> > > >> > >
> >> > > >> > > Thanks,
> >> > > >> > > Dave
> >> > > >> > >
> >> > > >> > > On Mon, Jul 26, 2021 at 4:40 PM Zach Hoffman <
> >> > zrhoff...@apache.org>
> >> > > >> wrote:
> >> > > >> > >
> >> > > >> > > > +1 for deprecating APIv2 and APIv3.
> >> > > >> > > >
> >> > > >> > > > -Zach
> >> > > >> > > >
> >> > > >> > > > On Tue, Jul 20, 2021 at 3:28 PM Jeremy Mitchell <
> >> > > >> mitchell...@gmail.com>
> >> > > >> > > > wrote:
> >> > > >> > > >
> >> > > >> > > > > sorry about that. i'm +1 on deprecating APIv2 and APIv3
> in
> >> the
> >> > > >> fashion
> >> > > >> > > > you
> >> > > >> > > > > mentioned.
> >> > > >> > > > >
> >> > > >> > > > > On Tue, Jul 20, 2021 at 2:39 PM ocket 8888 <
> >> > ocket8...@gmail.com
> >> > > >
> >> > > >> > > wrote:
> >> > > >> > > > >
> >> > > >> > > > > > I don't really want to propose anything more complex
> than
> >> > > >> deprecating
> >> > > >> > > > > APIv2
> >> > > >> > > > > > and APIv3 in this  thread. Which isn't to say that I
> >> don't
> >> > > have
> >> > > >> > > > opinions
> >> > > >> > > > > on
> >> > > >> > > > > > all of this, but it's starting to confuse the point
> when
> >> > > people
> >> > > >> are
> >> > > >> > > > > giving
> >> > > >> > > > > > +1s and -1s on things besides the thread subject.
> >> > > >> > > > > >
> >> > > >> > > > > > On Tue, Jul 20, 2021 at 2:17 PM Robert O Butts <
> >> > > r...@apache.org>
> >> > > >> > > wrote:
> >> > > >> > > > > >
> >> > > >> > > > > > > > so really TO (api) seems to have many versions
> >> > > >> > > > > > >
> >> > > >> > > > > > > The Traffic Ops application has a single project/app
> >> > > version.
> >> > > >> The
> >> > > >> > > TO
> >> > > >> > > > > > > Application "serves" multiple API Versions, which are
> >> > > >> unrelated to
> >> > > >> > > > that
> >> > > >> > > > > > > application version. TO doesn't "have" many versions,
> >> it
> >> > has
> >> > > >> one
> >> > > >> > > > > > version. A
> >> > > >> > > > > > > particular Traffic Ops version "10" might serve API
> >> > versions
> >> > > >> X,Y,Z.
> >> > > >> > > > But
> >> > > >> > > > > > > those API versions aren't "part" of the Traffic Ops
> >> > > Versions.
> >> > > >> There
> >> > > >> > > > > > exists
> >> > > >> > > > > > > no "Traffic Ops version 10" which serves any other
> API
> >> > > >> versions.
> >> > > >> > > And
> >> > > >> > > > > > there
> >> > > >> > > > > > > might exist other Traffic Ops versions which also
> serve
> >> > > >> X,Y,Z. So,
> >> > > >> > > TO
> >> > > >> > > > > > only
> >> > > >> > > > > > > has one version, "10." X,Y,Z are unrelated to 10,
> >> except
> >> > > that
> >> > > >> 10 is
> >> > > >> > > > > > > documented as serving X,Y,Z.
> >> > > >> > > > > > >
> >> > > >> > > > > > > > ATC is version 5.x, for example, so all the
> >> components
> >> > are
> >> > > >> > > version
> >> > > >> > > > > 5.x,
> >> > > >> > > > > > > right?
> >> > > >> > > > > > >
> >> > > >> > > > > > > As an aside, IMO having separate application versions
> >> > would
> >> > > >> make a
> >> > > >> > > > lot
> >> > > >> > > > > of
> >> > > >> > > > > > > sense and make a lot of things easier. I don't want
> to
> >> > push
> >> > > >> for
> >> > > >> > > that
> >> > > >> > > > > > right
> >> > > >> > > > > > > now, but something to think about. Maybe part of the
> >> > version
> >> > > >> after
> >> > > >> > > > the
> >> > > >> > > > > > > project, e.g. ATC could be Version 10.11 and Traffic
> >> Ops
> >> > > >> could have
> >> > > >> > > > its
> >> > > >> > > > > > own
> >> > > >> > > > > > > application version 5.7, so Traffic Ops would have
> the
> >> > > >> complete
> >> > > >> > > > version
> >> > > >> > > > > > > "atc-10.11-to-5.7-hash-abc123.rpm" or whatever. I
> think
> >> > that
> >> > > >> might
> >> > > >> > > > make
> >> > > >> > > > > > it
> >> > > >> > > > > > > clearer when one app hasn't changed even if the
> project
> >> > did,
> >> > > >> > > > especially
> >> > > >> > > > > > > with our apps that don't change very often. Something
> >> to
> >> > > think
> >> > > >> > > about.
> >> > > >> > > > > > >
> >> > > >> > > > > > >
> >> > > >> > > > > > >
> >> > > >> > > > > > > On Tue, Jul 20, 2021 at 1:44 PM Jeremy Mitchell <
> >> > > >> > > > mitchell...@gmail.com
> >> > > >> > > > > >
> >> > > >> > > > > > > wrote:
> >> > > >> > > > > > >
> >> > > >> > > > > > > > All good points but also consider this, ATC is
> >> version
> >> > > 5.x,
> >> > > >> for
> >> > > >> > > > > > example,
> >> > > >> > > > > > > so
> >> > > >> > > > > > > > all the components are version 5.x, right? meaning
> >> the
> >> > TO
> >> > > >> > > component
> >> > > >> > > > > > (aka
> >> > > >> > > > > > > > the TO api) is.... version 5.x.... :)
> >> > > >> > > > > > > >
> >> > > >> > > > > > > > so really TO (api) seems to have many versions (5.x
> >> > > >> inherited
> >> > > >> > > from
> >> > > >> > > > > the
> >> > > >> > > > > > > > project and 2.x, 3.x, 4.x, the versions of the
> >> > > >> "interface"). yes,
> >> > > >> > > > > > > > confusing...
> >> > > >> > > > > > > >
> >> > > >> > > > > > > >
> >> > > >> > > > > > > >
> >> > > >> > > > > > > > On Tue, Jul 20, 2021 at 1:32 PM Robert O Butts <
> >> > > >> r...@apache.org>
> >> > > >> > > > > wrote:
> >> > > >> > > > > > > >
> >> > > >> > > > > > > > > > Also, after years of API confusion, is it time
> to
> >> > > >> simply sync
> >> > > >> > > > the
> >> > > >> > > > > > ATC
> >> > > >> > > > > > > > > > version with the API version (brennan has
> >> touched on
> >> > > >> this in
> >> > > >> > > > the
> >> > > >> > > > > > > past)
> >> > > >> > > > > > > > > > starting with our "next" API version. So
> instead
> >> of
> >> > > >> APIv5,
> >> > > >> > > we'd
> >> > > >> > > > > > just
> >> > > >> > > > > > > > jump
> >> > > >> > > > > > > > > > to APIv7. ex:
> >> > > >> > > > > > > > >
> >> > > >> > > > > > > > > I strongly disagree with "synchronizing" the API
> >> and
> >> > > >> project
> >> > > >> > > > > version.
> >> > > >> > > > > > > The
> >> > > >> > > > > > > > > idea that they need to be the same is deeply
> >> confused
> >> > > >> about
> >> > > >> > > what
> >> > > >> > > > > they
> >> > > >> > > > > > > > are,
> >> > > >> > > > > > > > > and making them the same will reinforce that
> >> confusion
> >> > > >> with the
> >> > > >> > > > > > people
> >> > > >> > > > > > > > who
> >> > > >> > > > > > > > > are confused.
> >> > > >> > > > > > > > >
> >> > > >> > > > > > > > > The project version and the API version are
> >> completely
> >> > > >> > > > independent
> >> > > >> > > > > > and
> >> > > >> > > > > > > > > unrelated things. The idea that they need to be
> >> > > versioned
> >> > > >> > > > together
> >> > > >> > > > > > and
> >> > > >> > > > > > > > are
> >> > > >> > > > > > > > > somehow the same thing is incredibly confused and
> >> > > mistaken
> >> > > >> > > about
> >> > > >> > > > > the
> >> > > >> > > > > > > > > fundamental idea of what an API is and what a
> code
> >> > > >> project is.
> >> > > >> > > > > > > > >
> >> > > >> > > > > > > > > The API is the API. The project is the project.
> An
> >> API
> >> > > is
> >> > > >> an
> >> > > >> > > > > > > Application
> >> > > >> > > > > > > > > Programming Interface: an interface, like an
> >> electric
> >> > > >> outlet
> >> > > >> > > or a
> >> > > >> > > > > > water
> >> > > >> > > > > > > > > faucet connection. The Traffic Control project
> is a
> >> > code
> >> > > >> > > > project: a
> >> > > >> > > > > > > > > collection of applications, written in code, to
> do
> >> a
> >> > > >> thing, in
> >> > > >> > > > this
> >> > > >> > > > > > > case
> >> > > >> > > > > > > > a
> >> > > >> > > > > > > > > CDN.
> >> > > >> > > > > > > > >
> >> > > >> > > > > > > > > These are completely, entirely, totally different
> >> > > things.
> >> > > >> It
> >> > > >> > > > would
> >> > > >> > > > > be
> >> > > >> > > > > > > > like
> >> > > >> > > > > > > > > working for a company that sells both laptops and
> >> > > >> capacitors,
> >> > > >> > > and
> >> > > >> > > > > > > saying,
> >> > > >> > > > > > > > > "Our capacitors and laptops should have the same
> >> > serial
> >> > > >> > > numbers,
> >> > > >> > > > > > > because
> >> > > >> > > > > > > > > they both contain iron atoms."
> >> > > >> > > > > > > > >
> >> > > >> > > > > > > > > Yes, the code in the project serves certain APIs.
> >> But
> >> > > the
> >> > > >> two
> >> > > >> > > > > things
> >> > > >> > > > > > > are
> >> > > >> > > > > > > > > completely independent. Giving them the same
> >> version
> >> > > will
> >> > > >> > > > reinforce
> >> > > >> > > > > > the
> >> > > >> > > > > > > > > wrong and confused belief that they're somehow
> the
> >> > same
> >> > > >> thing,
> >> > > >> > > > when
> >> > > >> > > > > > > > > literally the only thing they have in common as
> >> ideas
> >> > is
> >> > > >> that
> >> > > >> > > > > they're
> >> > > >> > > > > > > two
> >> > > >> > > > > > > > > version numbers published by Apache Traffic
> >> Control.
> >> > > >> > > > > > > > >
> >> > > >> > > > > > > > > Moreover, All Traffic Control applications will
> >> always
> >> > > >> have to
> >> > > >> > > > > serve
> >> > > >> > > > > > at
> >> > > >> > > > > > > > > least one major version back, in order to make it
> >> > > >> possible to
> >> > > >> > > > > > upgrade.
> >> > > >> > > > > > > So
> >> > > >> > > > > > > > > the confused idea that they're somehow the same
> >> will
> >> > be
> >> > > >> made
> >> > > >> > > even
> >> > > >> > > > > > more
> >> > > >> > > > > > > > > confusing, because now people think "The API is
> the
> >> > same
> >> > > >> as the
> >> > > >> > > > > > > Project,
> >> > > >> > > > > > > > > and the version proves it, but the project has to
> >> > serve
> >> > > >> > > multiple
> >> > > >> > > > > > APIs."
> >> > > >> > > > > > > > > Making people even more confused.
> >> > > >> > > > > > > > >
> >> > > >> > > > > > > > > In fact, I'm inclined to think making the
> versions
> >> > > >> completely
> >> > > >> > > > > > different
> >> > > >> > > > > > > > > schemes, such as one being letters and the other
> >> > > numbers,
> >> > > >> would
> >> > > >> > > > > help
> >> > > >> > > > > > > > reduce
> >> > > >> > > > > > > > > the confusion, and make it more clear that the
> two
> >> > > >> versioned
> >> > > >> > > > things
> >> > > >> > > > > > are
> >> > > >> > > > > > > > > completely unrelated.
> >> > > >> > > > > > > > >
> >> > > >> > > > > > > > >
> >> > > >> > > > > > > > > On Tue, Jul 20, 2021 at 1:00 PM Jeremy Mitchell <
> >> > > >> > > > > > mitchell...@gmail.com
> >> > > >> > > > > > > >
> >> > > >> > > > > > > > > wrote:
> >> > > >> > > > > > > > >
> >> > > >> > > > > > > > > > ^^ I'm good with this.
> >> > > >> > > > > > > > > >
> >> > > >> > > > > > > > > > Also, after years of API confusion, is it time
> to
> >> > > >> simply sync
> >> > > >> > > > the
> >> > > >> > > > > > ATC
> >> > > >> > > > > > > > > > version with the API version (brennan has
> >> touched on
> >> > > >> this in
> >> > > >> > > > the
> >> > > >> > > > > > > past)
> >> > > >> > > > > > > > > > starting with our "next" API version. So
> instead
> >> of
> >> > > >> APIv5,
> >> > > >> > > we'd
> >> > > >> > > > > > just
> >> > > >> > > > > > > > jump
> >> > > >> > > > > > > > > > to APIv7. ex:
> >> > > >> > > > > > > > > >
> >> > > >> > > > > > > > > > ATCv7 supports APIv7 (to get inline with ATC
> >> > version)
> >> > > >> and
> >> > > >> > > APIv4
> >> > > >> > > > > > (the
> >> > > >> > > > > > > > api
> >> > > >> > > > > > > > > > version from ATCv6)
> >> > > >> > > > > > > > > > ATCv8 supports APIv8 and APIv7
> >> > > >> > > > > > > > > > etc
> >> > > >> > > > > > > > > >
> >> > > >> > > > > > > > > > but then i guess that begs the question, if we
> >> bump
> >> > > the
> >> > > >> major
> >> > > >> > > > ATC
> >> > > >> > > > > > > > version
> >> > > >> > > > > > > > > > for another reason (big feature or something),
> >> does
> >> > > >> that mean
> >> > > >> > > > we
> >> > > >> > > > > > have
> >> > > >> > > > > > > > to
> >> > > >> > > > > > > > > > bump the API version if not really necessary
> >> just to
> >> > > >> keep
> >> > > >> > > ATCv
> >> > > >> > > > ==
> >> > > >> > > > > > > APIv?
> >> > > >> > > > > > > > > >
> >> > > >> > > > > > > > > > jeremy
> >> > > >> > > > > > > > > >
> >> > > >> > > > > > > > > > On Mon, Jul 19, 2021 at 1:08 PM Rawlin Peters <
> >> > > >> > > > raw...@apache.org
> >> > > >> > > > > >
> >> > > >> > > > > > > > wrote:
> >> > > >> > > > > > > > > >
> >> > > >> > > > > > > > > > > > What kind of backward compatibility
> >> expectation
> >> > > are
> >> > > >> we
> >> > > >> > > > aiming
> >> > > >> > > > > > for
> >> > > >> > > > > > > > > here?
> >> > > >> > > > > > > > > > > With 1.x we were coming from 5+ years of
> >> backward
> >> > > >> > > > compatibility
> >> > > >> > > > > > > > > > >
> >> > > >> > > > > > > > > > > I don't think we ever intended for API 1.x to
> >> live
> >> > > >> for so
> >> > > >> > > > long,
> >> > > >> > > > > > but
> >> > > >> > > > > > > > we
> >> > > >> > > > > > > > > > > also never promised an agreed-upon amount of
> >> time
> >> > > for
> >> > > >> > > > backwards
> >> > > >> > > > > > > > > > > compatibility. I think the intention is that
> >> we'd
> >> > > >> like to
> >> > > >> > > > have
> >> > > >> > > > > > one
> >> > > >> > > > > > > > > > > major release cycle where both major API
> >> versions
> >> > > are
> >> > > >> > > > supported
> >> > > >> > > > > > (in
> >> > > >> > > > > > > > > > > order for clients to have a transitionary
> >> period),
> >> > > >> then we
> >> > > >> > > > are
> >> > > >> > > > > > free
> >> > > >> > > > > > > > to
> >> > > >> > > > > > > > > > > remove the deprecated API version in the
> >> following
> >> > > >> release.
> >> > > >> > > > The
> >> > > >> > > > > > > > amount
> >> > > >> > > > > > > > > > > of time we remain backwards-compatible should
> >> > really
> >> > > >> depend
> >> > > >> > > > on
> >> > > >> > > > > > how
> >> > > >> > > > > > > > > > > long the release cycles are, which we're
> aiming
> >> > for
> >> > > >> > > > quarterly.
> >> > > >> > > > > > > > > > >
> >> > > >> > > > > > > > > > > I agree it is a lot of headache to update 3rd
> >> > party
> >> > > >> tooling
> >> > > >> > > > as
> >> > > >> > > > > > API
> >> > > >> > > > > > > > > > > versions are deprecated and removed (which is
> >> why
> >> > > I'm
> >> > > >> > > hoping
> >> > > >> > > > we
> >> > > >> > > > > > > don't
> >> > > >> > > > > > > > > > > introduce another major API version very
> soon),
> >> > but
> >> > > >> > > hopefully
> >> > > >> > > > > the
> >> > > >> > > > > > > > vast
> >> > > >> > > > > > > > > > > majority of cases are simply updating the
> URLs
> >> > from
> >> > > >> 2.0 or
> >> > > >> > > > 3.0
> >> > > >> > > > > to
> >> > > >> > > > > > > > 4.0,
> >> > > >> > > > > > > > > > > since there should only be a small number of
> >> > > >> breakages from
> >> > > >> > > > 2.0
> >> > > >> > > > > > to
> >> > > >> > > > > > > > 4.0
> >> > > >> > > > > > > > > > > (mostly servers-related routes) that would
> >> > actually
> >> > > >> require
> >> > > >> > > > > > > changing
> >> > > >> > > > > > > > > > > more than just the URL. Migrating from 1.x
> has
> >> > > >> probably
> >> > > >> > > been
> >> > > >> > > > > more
> >> > > >> > > > > > > > > > > difficult since we dropped a lot of redundant
> >> > > routes.
> >> > > >> > > > > > > > > > >
> >> > > >> > > > > > > > > > > - Rawlin
> >> > > >> > > > > > > > > > >
> >> > > >> > > > > > > > > > >
> >> > > >> > > > > > > > > > > - Rawlin
> >> > > >> > > > > > > > > > >
> >> > > >> > > > > > > > > > > On Mon, Jul 19, 2021 at 11:43 AM Gray,
> Jonathan
> >> > > >> > > > > > > > > > > <jonathan_g...@comcast.com.invalid> wrote:
> >> > > >> > > > > > > > > > > >
> >> > > >> > > > > > > > > > > > What kind of backward compatibility
> >> expectation
> >> > > are
> >> > > >> we
> >> > > >> > > > aiming
> >> > > >> > > > > > for
> >> > > >> > > > > > > > > here?
> >> > > >> > > > > > > > > > > With 1.x we were coming from 5+ years of
> >> backward
> >> > > >> > > > compatibility
> >> > > >> > > > > > and
> >> > > >> > > > > > > > now
> >> > > >> > > > > > > > > > it
> >> > > >> > > > > > > > > > > seems like we’re aiming for < 1 year with
> >> rotation
> >> > > at
> >> > > >> every
> >> > > >> > > > > major
> >> > > >> > > > > > > > rev.
> >> > > >> > > > > > > > > > > That’s a lot of headache for 3rd party
> tooling
> >> > > >> support to
> >> > > >> > > > > > > constantly
> >> > > >> > > > > > > > be
> >> > > >> > > > > > > > > > > changing regardless if that means you’re
> >> upgrading
> >> > > SDK
> >> > > >> > > > > > dependencies
> >> > > >> > > > > > > > or
> >> > > >> > > > > > > > > > raw
> >> > > >> > > > > > > > > > > HTTP calls.
> >> > > >> > > > > > > > > > > >
> >> > > >> > > > > > > > > > > > Jonathan G
> >> > > >> > > > > > > > > > > >
> >> > > >> > > > > > > > > > > > From: Rawlin Peters <raw...@apache.org>
> >> > > >> > > > > > > > > > > > Date: Friday, July 16, 2021 at 11:54 AM
> >> > > >> > > > > > > > > > > > To: dev@trafficcontrol.apache.org <
> >> > > >> > > > > > dev@trafficcontrol.apache.org
> >> > > >> > > > > > > >
> >> > > >> > > > > > > > > > > > Subject: [EXTERNAL] Re: Deprecate APIv2 and
> >> v3
> >> > > >> > > > > > > > > > > > +1 on deprecating API v2-3 with the release
> >> of
> >> > > >> ACTv6 and
> >> > > >> > > > > > removing
> >> > > >> > > > > > > > > them
> >> > > >> > > > > > > > > > > > in ATCv7. Hopefully we won't need a TO API
> v5
> >> > very
> >> > > >> soon
> >> > > >> > > so
> >> > > >> > > > we
> >> > > >> > > > > > can
> >> > > >> > > > > > > > > have
> >> > > >> > > > > > > > > > > > a break from the API instability.
> >> > > >> > > > > > > > > > > >
> >> > > >> > > > > > > > > > > > +1 on not requiring every v2 and v3
> endpoint
> >> to
> >> > > >> return
> >> > > >> > > > > > > deprecation
> >> > > >> > > > > > > > > > > > notices. I think just mentioning it on the
> >> > mailing
> >> > > >> list,
> >> > > >> > > > the
> >> > > >> > > > > > > > > > > > changelog, and the docs should cover it.
> >> > Updating
> >> > > >> all the
> >> > > >> > > > > v2/v3
> >> > > >> > > > > > > > > > > > endpoints to return deprecation notices
> >> would be
> >> > > >> quite a
> >> > > >> > > > lot
> >> > > >> > > > > of
> >> > > >> > > > > > > > code
> >> > > >> > > > > > > > > > > > change with very little benefit IMO.
> However,
> >> > for
> >> > > >> certain
> >> > > >> > > > > > > endpoints
> >> > > >> > > > > > > > > > > > that have no v4 equivalent, we are
> returning
> >> > > >> deprecation
> >> > > >> > > > > > notices
> >> > > >> > > > > > > > > (e.g.
> >> > > >> > > > > > > > > > > > cachegroup parameters).
> >> > > >> > > > > > > > > > > >
> >> > > >> > > > > > > > > > > > - Rawlin
> >> > > >> > > > > > > > > > > >
> >> > > >> > > > > > > > > > > > On Fri, Jul 16, 2021 at 11:28 AM ocket
> 8888 <
> >> > > >> > > > > > ocket8...@gmail.com
> >> > > >> > > > > > > >
> >> > > >> > > > > > > > > > wrote:
> >> > > >> > > > > > > > > > > > >
> >> > > >> > > > > > > > > > > > > With the release of APIv4 in ATCv6,
> should
> >> we
> >> > > >> > > > > simultaneously
> >> > > >> > > > > > > > > > deprecate
> >> > > >> > > > > > > > > > > > > APIv2 and APIv3? I think so, that'll mean
> >> we
> >> > can
> >> > > >> remove
> >> > > >> > > > > them
> >> > > >> > > > > > in
> >> > > >> > > > > > > > > > ATCv7,
> >> > > >> > > > > > > > > > > > > whereupon the stable API 4.0 will have
> >> existed
> >> > > >> for a
> >> > > >> > > full
> >> > > >> > > > > > major
> >> > > >> > > > > > > > > rev,
> >> > > >> > > > > > > > > > > and
> >> > > >> > > > > > > > > > > > > APIv5 will ostensibly be released (if not
> >> > > sooner,
> >> > > >> since
> >> > > >> > > > we
> >> > > >> > > > > > > could
> >> > > >> > > > > > > > do
> >> > > >> > > > > > > > > > > that
> >> > > >> > > > > > > > > > > > > e.g. in a 6.1).
> >> > > >> > > > > > > > > > > > >
> >> > > >> > > > > > > > > > > > > If so, we should also discuss what that
> >> will
> >> > > mean
> >> > > >> > > > > materially.
> >> > > >> > > > > > > > With
> >> > > >> > > > > > > > > > > > > endpoints that disappear between API
> >> versions
> >> > we
> >> > > >> have
> >> > > >> > > > them
> >> > > >> > > > > > > return
> >> > > >> > > > > > > > > > > > > warning-level alerts that indicate they
> >> won't
> >> > be
> >> > > >> > > > available
> >> > > >> > > > > on
> >> > > >> > > > > > > > > > upgrade,
> >> > > >> > > > > > > > > > > but
> >> > > >> > > > > > > > > > > > > for APIv1 as a whole we didn't issue any
> >> kind
> >> > of
> >> > > >> formal
> >> > > >> > > > > > notice
> >> > > >> > > > > > > > > afaik,
> >> > > >> > > > > > > > > > > not
> >> > > >> > > > > > > > > > > > > even a changelog entry. I think the right
> >> > answer
> >> > > >> is
> >> > > >> > > > > somewhere
> >> > > >> > > > > > > > > between
> >> > > >> > > > > > > > > > > these
> >> > > >> > > > > > > > > > > > > - a changelog entry and notices on the
> >> APIv2
> >> > and
> >> > > >> APIv3
> >> > > >> > > > > > > reference
> >> > > >> > > > > > > > > > > sections
> >> > > >> > > > > > > > > > > > > of the documentation. I don't think it's
> >> > > >> necessary to
> >> > > >> > > > > mention
> >> > > >> > > > > > > on
> >> > > >> > > > > > > > > each
> >> > > >> > > > > > > > > > > > > endpoint that the entire API version is
> >> > > >> deprecated,
> >> > > >> > > > either
> >> > > >> > > > > in
> >> > > >> > > > > > > the
> >> > > >> > > > > > > > > > > > > documentation or in the API through
> Alerts.
> >> > > >> > > > > > > > > > >
> >> > > >> > > > > > > > > >
> >> > > >> > > > > > > > >
> >> > > >> > > > > > > >
> >> > > >> > > > > > >
> >> > > >> > > > > >
> >> > > >> > > > >
> >> > > >> > > >
> >> > > >> > >
> >> > > >>
> >> > > >
> >> > >
> >> >
> >>
> >
>

Reply via email to