syntax for declaring *when* an API is exported
Bug #615244 reported by
Robert Collins
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Triaged
|
Low
|
Unassigned | ||
lazr.restful |
Triaged
|
Low
|
Unassigned |
Bug Description
Its hard to tell when examining an API export whether:
- the export was in 1.0
- the export was in 'beta'
Without that, we essentially assume everything was in 1.0, and that makes changing API stuff feel risky, even if it isn't.
Not high from my perspective, but it would be a delicious thing to have for new things we export.
Changed in launchpad-foundations: | |
status: | New → Triaged |
importance: | Undecided → Low |
Changed in lazr.restful: | |
status: | New → Triaged |
importance: | Undecided → Low |
Changed in launchpad-foundations: | |
status: | Triaged → Incomplete |
Changed in lazr.restful: | |
status: | Triaged → Incomplete |
Changed in launchpad: | |
status: | Incomplete → Triaged |
Changed in lazr.restful: | |
status: | Incomplete → Triaged |
To post a comment you must log in.
Robert, I tried to look at some examples with fresh eyes, but I didn't see a problem. Maybe my eyes still are not fresh enough!
In essence, if there's not a specific version annotation like "@operation_ for_version( '3.0')" then, yes, the thing is in *all* versions.
We could have made it required to specify a starting version, but not specifying a version does seem a natural spelling for "always available, in all versions". Moreover, it would have been a backwards- incompatible change.
We could make it a policy decision to never add anything to 1.0. I believe that Leonard has felt that this was unnecessary, but I like it, myself. We have a simple mechanism planned (check in the WADL for frozen versions and verify that the generated WADL is the same in tests) that would make this policy easy to track in reviews (because the WADL for the frozen version would have been changed).
I expect you know that the lazr.restful versioning mechanism does allow changing or hiding exports in later revisions, even if it was initially exported for all revisions, but perhaps it bears mentioning in context.