<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><div class=""><div class=""><blockquote type="cite" class=""><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class="">Proposal link:<br class="">> <a href="https://github.com/apple/swift-evolution/blob/master/proposals/0158-package-manager-manifest-api-redesign.md" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0158-package-manager-manifest-api-redesign.md</a></div></div></div></blockquote></div></div></div><div class=""><br class=""></div><div class="">Hi Andrey,</div><div class=""><br class=""></div><div class="">You suggestions here sound like they'd only require the addition of new API, not changes to existing API. We have a compatibility mechanism designed to support easily adding new API without causing breakage in the ecosystem; you can read about it at <a href="https://github.com/apple/swift-evolution/blob/master/proposals/0152-package-manager-tools-version.md" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0152-package-manager-tools-version.md</a>.</div><div class=""><br class=""></div><div class="">The Package Manager Manifest API Redesign proposal is intentionally scoped to revising existing API and doesn't cover additive features. Please feel free to spin up a new discussion thread about this and/or create a proposal for these additions. I don't think we should hold up the API Redesign for this, however.</div><div class=""><br class=""></div><div class="">Thank for taking the time to contribute,</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>- Rick</div><br class=""><div><blockquote type="cite" class=""><div class="">On Mar 14, 2017, at 4:50 PM, Andrey Fidrya <<a href="mailto:af@zabiyaka.com" class="">af@zabiyaka.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Hi Ankit,</span><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;">I like the proposal very much. One question about SystemPackageProvider:</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class=""><br class=""></div><div class="">Sometimes it's neccessary to pass options to brew or apt-get, for example:</div><div class="">brew install libxml2 --with-python</div><div class=""><br class=""></div><div class="">Should they be added to package name or have a separate field? Adding the field in the future will break compatibility.</div><div class=""><br class=""></div><div class=""><div class="">let package = Package(</div><div class=""> providers: [</div><div class=""> .brew(["libxml2 --with-python"]),</div><div class=""> ]</div><div class="">)</div></div><div class=""><br class=""></div><div class="">Another thing which comes to mind is a human-readable description field which could be helpful in some situations. I.e. "don't forget to generate a private key by running XXX". I think of something like this:</div><div class=""><br class=""></div><div class=""><div class=""><div class="">let package = Package(</div><div class=""> providers: [</div><div class=""> .brew([</div><div class=""> "openssl",</div><div class=""> SystemPackage(name: "libxml2", options: "--with-python", description: "........")</div><div class=""> ]),</div><div class=""> ]</div><div class="">)</div></div></div><div class=""><br class=""></div><div class="">Regards,</div><div class="">Andrey</div><div class=""><blockquote type="cite" class=""><div class=""></div></blockquote></div></div></div></blockquote></div><br class=""></body></html>