Skip to content

Instantly share code, notes, and snippets.

@davidmarkclements
Last active August 29, 2015 14:20
Show Gist options
  • Save davidmarkclements/c0060a9cc31eaba9bbe5 to your computer and use it in GitHub Desktop.
Save davidmarkclements/c0060a9cc31eaba9bbe5 to your computer and use it in GitHub Desktop.

Seshver

Session Based Versioning

Seshver is version standard for the purpose of versioning content that is to delivered in units or slots - termed as "sessions".

It takes the same form as semver, but semantic meaning is different.

Given a version number SESSION.REVISION.AMENDMENT

  1. SESSION version describes the amount of sessions the material populates
  2. REVISION version when you add or delete blocks of content
  3. AMENDMENT version when you correct or update minutia

SESSION should be 1 or greater, REVISION and AMENDMENT start at 0.

For SESSION 0, see WIPVER heading.

REVISION signifies a variation of the content. This allows for a representation of content customizations. An example is content which has been adapted to have greater emphasis on a particular subject area. Another example is content which has merely been (significantly) updated to reflect recent developments.

AMENDMENT primarily represents content correction or minor updates, e.g. fixing typos, rephrasing small portions of text, adding citations, updating diagram/images (providing they represent the same concept), refactoring code snippets (providing their meaning is the same).

Neither REVISIONS nor AMENDMENTS define a limit of changes before version increase, version increases should be determined by the author.

If a change reflects both AMENDMENTS and REVISIONS, it is a REVISION.

For purposes of semver implementation compatiblity, terms between semver and seshver are interchangeable (providing context adequately illustrates use of seshver standard). MAJOR can be used in place of SESSION. MINOR can be used in place of REVISION. and PATCH can be used in place of AMENDMENT. This allows for use of semver tooling without modification.

The actual time equivalent of a session is arbitrary and context-determined.

As an example, in the case of a training day, a session could be defined as roughly one hour and fifteen minutes, this allows for four sessions, two 15 minute breaks and an hour lunch with a thirty minutes of padding.

Another example might be a talk, where a session is 10-15 minutes, allowing for several versions of the material, a lightning talk (1 session), a conference talk (2 sessions), a meet-up talk (3 sessions) and a workshop (4 sessions).

WIPVER

When SESSION field is 0 the meaning changes to Work in Progress.

WIPVER is loose, suggestive, advisory - as long as the left most number is 0, meanings of other numbers can be determined by author. However, the following is a baseline guide.

Given a version number WIPVER.SESSION.CHANGE

  1. WIPVER version must be 0, signifying Work in Progress
  2. SESSION version OPTIONALLY describes the amount of sessions the material populates
  3. CHANGE reflect any changes or updates to the material

In WIPVER, SESSION should start at 1, but optionally may be 0, signifying that a body of content not (yet) associated with a given length.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment