{"id":1290,"date":"2019-12-30T17:00:05","date_gmt":"2019-12-30T17:00:05","guid":{"rendered":"https:\/\/martinjoiner.co.uk\/blog\/?p=1290"},"modified":"2020-01-14T11:13:55","modified_gmt":"2020-01-14T11:13:55","slug":"dependency-version-constraints-talk-at-php-sw","status":"publish","type":"post","link":"https:\/\/martinjoiner.co.uk\/blog\/2019\/12\/30\/dependency-version-constraints-talk-at-php-sw\/","title":{"rendered":"Dependency Version Constraints Talk at PHP SW"},"content":{"rendered":"\n<p>In November 2019 I delivered a talk at Bristol tech meetup <a rel=\"noreferrer noopener\" href=\"https:\/\/www.meetup.com\/php-sw\/\" target=\"_blank\">PHP South West<\/a>  covering a small but very useful piece of knowledge. <\/p>\n\n\n\n<p>NPM and <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Composer (opens in a new tab)\">Composer<\/a> kind of hit critical popularity at the same time. By 2013\/14 a package manager was an integral part of web development if you wanted to use all the shiny new packages being published. <\/p>\n\n\n\n<p>When a technology arrives by necessity it's hard to know which bits you <em>need <\/em>to learn and which you can just trust to work. I admit, in the early days I was guilty of coasting past the details of version constraints and would follow whatever the installation instructions advised without really understanding the subtle differences. For example, what is the difference between using a hat (^) or a tilde (~) to prefix a number? <\/p>\n\n\n\n<p>Wisdom eventually prevailed and I did learn the differences. But it wasn't until earlier this year in September 2019 when that knowledge really saved my ass! It was then that I realised; understanding this is more than trivial and so, I decided to share it with this talk. <\/p>\n\n\n\n<p>I end by teaching a technique for remembering. <\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Dependency Version Constraints - Martin Joiner - PHPSW: Lightning Talks, Nov 2019\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/ZnDN9u8b_wA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>PHP SW use Joind.in to help the volunteer speakers collect constructive feedback from the audience. The organisers really push the idea of being helpful which I respect a lot. See my feedback at  <a href=\"https:\/\/joind.in\/event\/phpsw-lightning-talks-november-2019\/untangling-the-dependency-spaghetti-you-can-do-it\">https:\/\/joind.in\/event\/phpsw-lightning-talks-november-2019\/untangling-the-dependency-spaghetti-you-can-do-it<\/a>  <\/p>\n","protected":false},"excerpt":{"rendered":"<p>In November 2019 I delivered a talk at Bristol tech meetup PHP South West covering a small but very useful piece of knowledge. NPM and Composer kind of hit critical popularity at the same time. By 2013\/14 a package manager was an integral part of web development if you wanted to use all the shiny [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1291,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[75],"tags":[],"class_list":["post-1290","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software"],"_links":{"self":[{"href":"https:\/\/martinjoiner.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1290","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/martinjoiner.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/martinjoiner.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/martinjoiner.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/martinjoiner.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=1290"}],"version-history":[{"count":2,"href":"https:\/\/martinjoiner.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1290\/revisions"}],"predecessor-version":[{"id":1295,"href":"https:\/\/martinjoiner.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1290\/revisions\/1295"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/martinjoiner.co.uk\/blog\/wp-json\/wp\/v2\/media\/1291"}],"wp:attachment":[{"href":"https:\/\/martinjoiner.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=1290"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/martinjoiner.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=1290"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/martinjoiner.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=1290"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}