{"id":1989,"date":"2016-04-30T16:14:41","date_gmt":"2016-04-30T21:14:41","guid":{"rendered":"http:\/\/bitpost.com\/news\/?p=1989"},"modified":"2016-04-30T18:15:01","modified_gmt":"2016-04-30T23:15:01","slug":"semantic-versioning-is-better-than-no-semantic-versioning","status":"publish","type":"post","link":"https:\/\/bitpost.com\/news\/2016\/semantic-versioning-is-better-than-no-semantic-versioning\/","title":{"rendered":"Semantic Versioning is better than no Semantic Versioning"},"content":{"rendered":"<p>Some people <a href=\"https:\/\/gist.github.com\/jashkenas\/cbd2b088e20279ae2c8e\">argue<\/a> that <a href=\"http:\/\/semver.org\">Semantic Versioning<\/a> fails to deliver. Why they expect miracles, I&#8217;m not sure. Other people propose <a href=\"http:\/\/snowplowanalytics.com\/blog\/2014\/05\/13\/introducing-schemaver-for-semantic-versioning-of-schemas\/\">entirely new schemes for schemas<\/a>, because they want to get some different meanings out of their versioning system.<\/p>\n<p>My current approach:<\/p>\n<ul>\n<li>Using SemVer gives you compatibility, feature and build information that you would otherwise not get; it may not be absolutely precise to use these big buckets, but having them is good<\/li>\n<li>Using SemVer for schemas works for me, in this way:\n<ul>\n<li>to represent database incompatibility, bump the major version (&#8220;don&#8217;t fear the major bump&#8221;)<\/li>\n<li>to represent the need for a database upgrade, bump\u00a0the minor version<\/li>\n<li>perk #1: database upgrades can be completely driven by just the minor version (major versions must match, of course, but patch can be ignored)<\/li>\n<li>fallout #1: you MUST consider dbs with older major versions to be incompatible, even if the major bump was not db related<\/li>\n<li>fallout #2: you MUST run an upgrade on databases with older minor versions, even if the minor bump was not db related; the upgrade will simply update the internal db version<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Works for me. \u00a0Upwards.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Some people argue that Semantic Versioning fails to deliver. Why they expect miracles, I&#8217;m not sure. Other people propose entirely new schemes for schemas, because they want to get some different meanings out of their versioning system. My current approach: Using SemVer gives you compatibility, feature and build information that you would otherwise not get; [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"enabled":false},"version":2}},"categories":[10],"tags":[235,236,234],"class_list":["post-1989","post","type-post","status-publish","format-standard","hentry","category-tricks-tips-tools","tag-databases","tag-schemas","tag-semantic-versioning"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9M11L-w5","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/posts\/1989","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/comments?post=1989"}],"version-history":[{"count":5,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/posts\/1989\/revisions"}],"predecessor-version":[{"id":1994,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/posts\/1989\/revisions\/1994"}],"wp:attachment":[{"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/media?parent=1989"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/categories?post=1989"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/tags?post=1989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}