<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Dec 22, 2015, at 12:25 PM, David Owens II <<a href="mailto:david@owensd.io" class="">david@owensd.io</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Dec 22, 2015, at 10:15 AM, Chris Lattner <<a href="mailto:clattner@apple.com" class="">clattner@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">We would like to integrate this into the package manager as well, so it helps “enforce” proper semantic versioning.</span></div></blockquote></div><br class=""><div class="">This would be awesome to have, especially integrated in. The way we handle this internally is less than ideal, so have a standard way would be great.</div><div class=""><br class=""></div><div class="">-David</div></div></div></blockquote></div><br class=""><div class="">Yes, I was actually going to suggest proposing this as a general way to address this concern. Glad to hear it’s already in the works!</div><div class=""><br class=""></div><div class="">As for the proposal, it offers you the ability to retain full control over initialization. You can even use it in v1 and switch to a manual implementation of initializers in v2 if that is necessary to uphold the existing contract. Use it when it provides value and avoid it when it doesn’t.</div><div class=""><br class=""></div><div class="">Matthew</div></body></html>