{"id":5546,"date":"2018-04-22T09:14:48","date_gmt":"2018-04-22T13:14:48","guid":{"rendered":"http:\/\/www.dr-chuck.com\/csev-blog\/?p=5546"},"modified":"2018-04-22T09:14:48","modified_gmt":"2018-04-22T13:14:48","slug":"release-0-5-0-of-tsugi-coming-soon","status":"publish","type":"post","link":"https:\/\/www.dr-chuck.com\/csev-blog\/2018\/04\/release-0-5-0-of-tsugi-coming-soon\/","title":{"rendered":"Release 0.5.0 of Tsugi coming soon"},"content":{"rendered":"<div class=\"\">If you have been watching Tsugi-php and tsugi lately, you have seen the pace of commits slowing down. \u00a0This is good because ultimately Tsugi wants to be a library that just works. \u00a0 But a few recent efforts like improving blob support and activity tracking took a lot of effort and a lot of commits. But that code is now solid and has been in production for a while at scale.<\/div>\n<div class=\"\"><\/div>\n<div class=\"\">The Tsugi release approach is that you run master and in a periodic cron (for me it is hourly) do a \u201cgit pull\u201d and run upgrade.php. \u00a0 Master needs to always be production ready and all my production servers run master within an hour of a commit. \u00a0While many of you may not be this aggressive (and don\u2019t need to be) &#8211; I do this so I know if something goes wrong almost instantly. \u00a0 We are working on better unit tests and post-commit hook functionality tests to make this strategy even safer.<\/div>\n<div class=\"\"><\/div>\n<div class=\"\">But with this as approach, the way releases work is more to do with freezing master at a very safe place so that we can try something in master. \u00a0That way if something goes awry in master &#8211; you just jump back to \u00a0a safe place. \u00a0Kind of like mountain climbing with a lead climber. \u00a0Always have a place to fall back to.<\/div>\n<div class=\"\"><\/div>\n<div class=\"\">I will be making a change in master that I expect will be safe, but just to be sure, I want to make the 0.5.0 release \/ branch to come back to.<\/div>\n<div class=\"\"><\/div>\n<div class=\"\">Some of you have noticed that I have frozen various versions of dependencies in composer.json:<\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><a class=\"\" href=\"https:\/\/github.com\/tsugiproject\/tsugi\/blob\/master\/composer.json\">https:\/\/github.com\/tsugiproject\/tsugi\/blob\/master\/composer.json<\/a><\/div>\n<div class=\"\"><\/div>\n<div class=\"\">I did this because I did not want to update a dependency and mix it with a change I was making as we went along the path. \u00a0This way I did not make my change and update a dependency in the same breath so I *know* if something broken is my fault or a dependency failure \/ regression. \u00a0 Dependencies are software too &#8211; and can make make mistakes in minor releases. \u00a0I conside my own QA to be QAing both all of tsugi plus its dependencies.<\/div>\n<div class=\"\"><\/div>\n<div class=\"\">So what I will do as soon as I make the 0.5.0 release is update composer.json to let the dependency versions upgrade. \u00a0I will do this in a series of steps to allow for some QA\/production experience at each step.<\/div>\n<div class=\"\"><\/div>\n<div class=\"\">I will try to make no changes in tsugi-php or tsugi during this time unless a bug appears or a dependency upgrade breaks something.<\/div>\n<div class=\"\"><\/div>\n<div class=\"\">What you will see is a series of updates that update a *lot* of files &#8211; all in the vendor folder. \u00a0 It is OK.<\/div>\n<div class=\"\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>If you have been watching Tsugi-php and tsugi lately, you have seen the pace of commits slowing down. \u00a0This is good because ultimately Tsugi wants to be a library that just works. \u00a0 But a few recent efforts like improving blob support and activity tracking took a lot of effort and a lot of commits. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5546","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts\/5546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/comments?post=5546"}],"version-history":[{"count":2,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts\/5546\/revisions"}],"predecessor-version":[{"id":5548,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts\/5546\/revisions\/5548"}],"wp:attachment":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/media?parent=5546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/categories?post=5546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/tags?post=5546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}