<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="">SGTM, I definitely prefer using the more modern (?) style "--foo &lt;bar&gt;" arguments and agree about the other cleanups.<div class=""><br class=""></div><div class="">&nbsp;- Daniel<br class=""><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On May 25, 2016, at 4:13 PM, Anders Bertelrud via swift-build-dev &lt;<a href="mailto:swift-build-dev@swift.org" class="">swift-build-dev@swift.org</a>&gt; 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="">Hello all,<div class=""><br class=""></div><div class="">Now that the `package` subcommand has been implemented (see <a href="https://github.com/apple/swift-evolution/blob/master/proposals/0085-package-manager-command-name.md" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0085-package-manager-command-name.md</a>), some of the options have ended up with awkward syntax. &nbsp;For example, the old `--init` option took an optional package type parameter, and after the command renaming, the syntax has become somewhat awkward: &nbsp;`package init=library`.</div><div class=""><br class=""></div><div class="">In order to clean this up, we have added some flags for the newly introduced subcommands, and I wanted to run them by the list to get any feedback before making the change.</div><div class=""><br class=""></div><div class="">The command line interface vended by the new `package` subcommand introduced by SE-0085 is shown in its help text:</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">OVERVIEW: Perform operations on Swift packages</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class=""><br class=""></span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">USAGE: swift package [command] [options]</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class=""><br class=""></span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">COMMANDS:</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;init [--type &lt;type&gt;]&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;Initialize a new package (executable|library)</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;fetch&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;Fetch package dependencies</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;update&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;Update package dependencies</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;generate-xcodeproj [--output &lt;path&gt;]&nbsp;&nbsp;&nbsp;Generates an Xcode project</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;show-dependencies [--format &lt;format&gt;]&nbsp;&nbsp;Print dependency graph (text|dot|json)</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;dump-package [--output &lt;path&gt;]&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;Print Package.swift as JSON</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class=""><br class=""></span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">OPTIONS:</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;--chdir &lt;path&gt;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;Change working directory before any command [-C]</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;--color &lt;mode&gt;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;Specify color mode (auto|always|never)</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;--verbose&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;Increase verbosity of informational output [-v]</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;-Xcc &lt;flag&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;Pass flag through to all C compiler instantiations</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;-Xlinker &lt;flag&gt;&nbsp; &nbsp; &nbsp;&nbsp;Pass flag through to all linker instantiations</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;-Xswiftc &lt;flag&gt;&nbsp; &nbsp; &nbsp;&nbsp;Pass flag through to all Swift compiler instantiations</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class=""><br class=""></span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">NOTE: Use `swift build` to build packages, and `swift test` to test packages</span></font></div></blockquote><div class=""><br class=""></div><div class="">The changes are to introduce new flags for the parameters that were previously passed to the subcommand names themselves. &nbsp;The last three flags listed (-Xcc, -Xlinker, and -Xswiftc) are unchanged to maintain compatibility with the swift compiler — this will likely be revisited at a later time.</div><div class=""><br class=""></div><div class="">As described in SE-0085, the `build` subcommand stays. &nbsp;It how has this interface:</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">OVERVIEW: Build sources into binary products</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class=""><br class=""></span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">USAGE: swift build [mode] [options]</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class=""><br class=""></span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">MODES:</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;--configuration &lt;value&gt;&nbsp;&nbsp;&nbsp;Build with configuration (debug|release)</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;--clean [&lt;mode&gt;]&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;Delete artifacts (build|dist)</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class=""><br class=""></span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">OPTIONS:</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;--chdir &lt;path&gt;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;Change working directory before any other operation [-C]</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;--build-path &lt;path&gt;&nbsp;&nbsp;Specify build directory</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;--color &lt;mode&gt;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;Specify color mode (auto|always|never)</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;--verbose&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;Increase verbosity of informational output [-v]</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;-Xcc &lt;flag&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;Pass flag through to all C compiler instantiations</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;-Xlinker &lt;flag&gt;&nbsp; &nbsp; &nbsp;&nbsp;Pass flag through to all linker instantiations</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;-Xswiftc &lt;flag&gt;&nbsp; &nbsp; &nbsp;&nbsp;Pass flag through to all Swift compiler instantiations</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class=""><br class=""></span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">NOTE: Use `swift package` to perform other functions on packages</span></font></div></blockquote><div class=""><br class=""></div><div class="">Finally, the `test` subcommand remains largely unmodified, with this interface:</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">OVERVIEW: Build and run tests</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class=""><br class=""></span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">USAGE: swift test [specifier] [options]</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class=""><br class=""></span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">SPECIFIER:</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;-s TestModule.TestCase&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;Run a test case subclass</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;-s TestModule.TestCase/test1&nbsp;&nbsp;&nbsp;Run a specific test method</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class=""><br class=""></span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">OPTIONS:</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;--chdir&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;Change working directory before any other operation [-C]</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">&nbsp;&nbsp;--build-path &lt;path&gt;&nbsp;&nbsp;Specify build directory</span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class=""><br class=""></span></font></div><div class=""><font face="Courier" class=""><span style="font-size: 12px;" class="">NOTE: Use `swift package` to perform other functions on packages</span></font></div></blockquote><div class=""><br class=""></div><div class="">Questions / comments / concerns?</div><div class=""><br class=""></div><div class="">Anders</div><div class=""><br class=""></div></div>_______________________________________________<br class="">swift-build-dev mailing list<br class=""><a href="mailto:swift-build-dev@swift.org" class="">swift-build-dev@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-build-dev<br class=""></div></blockquote></div><br class=""></div></div></body></html>