logoalt Hacker News

rswailyesterday at 4:57 AM0 repliesview on HN

I don't accept that "any user interface as the interface, vs API interface". API has a specific meaning, it is for "Application Programmers", which implies that it is for developers of other systems/applications that interface with the system.

What I'm saying is that there are 3 different "users" (actors/use-cases/your-word-of-choice) for a system and each of them need different information about a system that can be expressed in a specific format and implementation of a versioning schema:

1. Other systems, connecting via a documented API (Semver tells devs when they need to be concerned about changes in a particular release to production).

In this case, the users (other developers) are specifically concerned with changes in meaning of an interface, including new information, changes in existing formats, or removal of information.

By definition, this is semantic and Semver provides a schema to support that. Each digit/component of the semver has a specific meaning associated with it.

2. SRE and operations managing the system in production (a calendar based version tells them when a system was released into production, potentially any hotfixes applied, and what SBOM to consult when operating)

It doesn't have to be calendar based, the release version is an arbitrary label. As long as the interpretation of that label is clear between the development and operations teams, it is fine.

Calendar based labelling is usually appropriate for changes to configuration of a system in production.

3. End users of any UX/UI, noting that some systems do not have end users, only other systems. My example was just one of many different "end user version" schemes. Just look at any iOS apps you have installed and what their latest "release" is.

The versioning here can be anything that is clear to the users. A financial system might be versioned by the financial year, or the release of tax and other codes on a regular basis.

Consumer applications might add arbitrary buzzwords like "ai" or "e" or anything else created by the marketing teams.