Add entry on porting tools from Brendan Molloy

This commit is contained in:
Benjamin Kaduk 2016-01-09 20:26:45 +00:00
parent bd91c221de
commit 40980769ef
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=47982

View file

@ -1023,4 +1023,82 @@
</task>
</help>
</project>
<project cat='ports'>
<title>New tools to enhance the porting experience</title>
<contact>
<person>
<name>
<given>Brendan</given>
<common>Molloy</common>
</name>
<email>brendan+freebsd@bbqsrc.net</email>
</person>
</contact>
<links>
<url href="https://github.com/FreeBSD/pytoport">pytoport: Generate &os; Ports from Python modules on PyPI</url>
<url href="https://github.com/bbqsrc/bandar">bandar: Create Development Overlays for the Ports tree</url>
<url href="https://github.com/bbqsrc/skog-python">skog: Generate Visual Dependency Trees for &os; Ports</url>
<url href="https://github.com/bbqsrc/spdx-lookup-python">spdx-lookup: SPDX License List Query Tool</url>
</links>
<body>
<p>When I starting working on ports for &os; in the last
couple of weeks, I found that my workflow was not as efficient as
it could be, using just the available tools, so I made a few that
could be useful to the development community at large. All of
these have been added to the Ports tree, or otherwise will soon be
added, so you can play with them today!</p>
<p><tt>pytoport</tt> is a command-line application that
generates a skeleton port for a given PyPI package name. It
attempts to generate the correct dependencies, makes a good
attempt at guessing the license using <tt>spdx-lookup</tt>, and
generates a <tt>pkg-descr</tt>. This made generating the fifteen
or so ports I was working on a complete breeze.</p>
<p>While doing this, however, I noticed that some ports were
bringing in dependencies that I did not expect, and I needed some
way to visualise this. <tt>skog</tt> builds a dependency tree
from the depends lists output by the Ports framework, and displays
it on the command line (with extra shiny output if you are using
UTF-8). No more pesky example and documentation dependencies
being dragged in when you <em>clearly</em> toggled that
<tt>OPTION</tt> as far off as it would go.</p>
<p>While doing all of this, I found it cumbersome to be
copying ports back and forth between my small development tree
living in git and the larger upstream SVN tree I was using in
poudriere. I built a tool called <tt>bandar</tt> that takes
advantage of the FUSE version of unionfs to easily overlay my dev
tree on the upstream tree, run linting, poudriere and generate
archives with ease.</p>
<p>I'm very impressed with how easy it was to build more
tooling for &os;. I hope some of these tools will be of some use
to you, and as always, I'd love to hear your feedback!</p>
</body>
<help>
<task>
<p>Improve skog to support searching a tree for a certain
port.</p>
</task>
<task>
<p>Get the bandar port completed.</p>
</task>
<task>
<p>Continue to improve pytoport, adding trove support and better
depedency handling.</p>
</task>
<task>
<p>Patches welcome for all of the above!</p>
</task>
</help>
</project>
</report>