Skip to content

Commit

Permalink
API: Versioning policy for removing public APIs
Browse files Browse the repository at this point in the history
Thus far apis.h only had instructions for adding APIs, not removing
them. Restored the old enums of the removed W API.
  • Loading branch information
skyjake committed Jun 29, 2014
1 parent 0d0e8c4 commit fa19171
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion doomsday/api/apis.h
Expand Up @@ -56,6 +56,15 @@
* compatibility, it must be manually added to the set of published APIs (see
* library.cpp) and the API struct in question should be copied to a separate
* header file for that version of the API (e.g., api_map_v1.h).
*
* @par Deprecating/removing an API
*
* When an API becomes fully obsolete, a new version with a "_REMOVED" suffix should be
* added. This new enum should have a new identification number to differentiate it from
* previous valid versions. As always, the old enums of the API should be retained for
* historical reasons. In the future, possible new APIs should not use the same
* identification numbers. A removed API does not need a 'versionless' enumeration,
* though, as there is no more latest version of the API available.
*/
enum {
DE_API_BASE_v1 = 0, // 1.10
Expand Down Expand Up @@ -142,7 +151,11 @@ enum {

DE_API_URI_v1 = 2300, // 1.10
DE_API_URI_v2 = 2301, // 1.14
DE_API_URI = DE_API_URI_v2
DE_API_URI = DE_API_URI_v2,

DE_API_WAD_v1 = 2400, // 1.10
DE_API_WAD_v2 = 2401, // 1.14
DE_API_WAD_REMOVED = 2402 // 1.15 (API removed)
};

/**
Expand Down

0 comments on commit fa19171

Please sign in to comment.