summaryrefslogtreecommitdiff
path: root/wiki
diff options
context:
space:
mode:
authorOwen Jacobson <owen.jacobson@grimoire.ca>2015-01-21 23:32:31 -0500
committerOwen Jacobson <owen.jacobson@grimoire.ca>2015-01-21 23:32:31 -0500
commitf68e958f9511ea100a64f248220223f65c815316 (patch)
tree5f36de3d8c361c567248aff30b2366af70997568 /wiki
parentcb589e72cdddddf9acd71af25bba4174c2145d74 (diff)
Rumblings about webapp versions.
Diffstat (limited to 'wiki')
-rw-r--r--wiki/dev/webapp-versions.md27
1 files changed, 27 insertions, 0 deletions
diff --git a/wiki/dev/webapp-versions.md b/wiki/dev/webapp-versions.md
new file mode 100644
index 0000000..ce800e9
--- /dev/null
+++ b/wiki/dev/webapp-versions.md
@@ -0,0 +1,27 @@
+# Semver Is Wrong For Web Applications
+
+[Semantic Versioning](http://semver.org) (“Semver”) is a great idea, not least
+because it's more of a codification of existing practice than a totally novel
+approach to versioning. However, I think it's wrong for web applications.
+
+Modern web applications tend to be either totally stagnant - in which case
+versioning is irrelevant - or continuously upgraded. Users have no, or very
+little, choice as to which version to run: either they run the version currently
+on the site, or no version at all. Without the flexibility to choose to run a
+specific version, Semver's categorization of versions by what compatibility
+guarantees they offer is at best misleading and at worst irrelevant and
+insulting.
+
+Web applications must still be _versioned_; internal users and operators must be
+able to trace behavioural changes through to deployments and backwards from
+there to [code changes](commit-messages). The continuous and incremental nature
+of most web development suggests that a simple, ordered version identifier may
+be more appropriate: a [build](builds) serial number, or a version _date_, or
+otherwise.
+
+There are _parts_ of web applications that should be semantically versioned: as
+the Semver spec says, “Once you identify your public API, you communicate
+changes to it with specific increments to your version number,” and this remains
+true on the web: whether you choose to support multiple API versions
+simultaneously, or to discard all but the latest API version, a semantic version
+number can be a helpful communication tool _about that API_.