<div dir="ltr"><span style="font-size:12.727272033691406px"><font face="courier new, monospace">Loic said:</font></span><div><span style="font-size:12.727272033691406px"><font face="courier new, monospace"><br></font></span></div>
<div><font face="courier new, monospace"><span style="font-size:12.727272033691406px">> This is what makes these package manager discussions so odd. People keep talking about technical choices and how the perfect package manager they have wet dreams about so often would look like, and nobody asks the questions that matter: how do people deal with dependencies today? How can we improve the workflow? Do packages need to be separate (meaning you need to convince people to maintain them, how?) or can the library authors do it? How do you convince library authors to agree to it? Is their investment in this worth the reward?</span><br style="font-size:12.727272033691406px">
<br style="font-size:12.727272033691406px"><span style="font-size:12.727272033691406px">> It doesn't matter what the technical solutions are until we have a clearer idea of what people want and would be willing to use. All package manager projects are bound to fail until these questions are answered.</span><br>
</font></div><div><span style="font-size:12.727272033691406px"><font face="courier new, monospace"><br></font></span></div><div><span style="font-size:12.727272033691406px"><font face="courier new, monospace">Spot on.</font></span></div>
<div><span style="font-size:12.727272033691406px"><font face="courier new, monospace"><br></font></span></div><div><span style="font-size:12.727272033691406px"><font face="courier new, monospace">Let me be a little clearer about what I was proposing.</font></span></div>
<div><span style="font-size:12.727272033691406px"><font face="courier new, monospace"><br></font></span></div><div><span style="font-size:12.727272033691406px"><font face="courier new, monospace">What Is The Problem?</font></span></div>
<div><span style="font-size:12.727272033691406px"><font face="courier new, monospace">--------------------</font></span></div><div><span style="font-size:12.727272033691406px"><font face="courier new, monospace"><br></font></span></div>
<div><span style="font-size:12.727272033691406px"><font face="courier new, monospace">There are lots of open source Erlang packages that I don't know about that I ought to be including in my project.</font></span></div>
<div><span style="font-size:12.727272033691406px"><font face="courier new, monospace"><br></font></span></div><div><span style="font-size:12.727272033691406px"><font face="courier new, monospace">How Do I Find Packages?</font></span></div>
<div><span style="font-size:12.727272033691406px"><font face="courier new, monospace">-----------------------</font></span></div><div><span style="font-size:12.727272033691406px"><font face="courier new, monospace"><br></font></span></div>
<div><span style="font-size:12.727272033691406px"><font face="courier new, monospace">Somebody tells me.</font></span></div><div><span style="font-size:12.727272033691406px"><font face="courier new, monospace">I google and find a StackOverflow question that links to a package</font></span></div>
<div><span style="font-size:12.727272033691406px"><font face="courier new, monospace"><br></font></span></div><div><font face="courier new, monospace">How Do People Create Open Source Erlang Now?</font></div><div><font face="courier new, monospace">--------------------------------------------</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">They create a public repository on GitHub.</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">(Yes you can self-host your repository, you can use Mercurial or Bazaar or what ever, but as the Senator said when he failed to be re-elected "the people have spoken, the bastards".)</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">How Do People Include Open Source Erlang?</font></div><div><font face="courier new, monospace">-----------------------------------------</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">rebar get-deps</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">(yes there is relx and <a href="http://erlang.mk">erlang.mk</a>, but rebar get-deps is generally how people do it).</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">How Are Dependency Clashes Resolved?</font></div><div><font face="courier new, monospace">------------------------------------</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">If I want to use a package that depends on Cowboy 0.6.0 and another on that depends on Cowboy 0.8.1, tough.</font></div><div>
<font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">How Do People Ensure That The Software They Are Installing Is Secure And Safe?</font></div><div><font face="courier new, monospace">------------------------------------------------------------------------------</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Richard O'Keefe said:</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">><span style="font-size:12.727272033691406px">Anything that expects people to trust an unknown makefile not</span></font></div>
<font face="courier new, monospace"><span style="font-size:12.727272033691406px">to do evil things while installing had better have some</span><br style="font-size:12.727272033691406px"><span style="font-size:12.727272033691406px">really *serious* security and authentication on it.</span></font><div>
<font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Bless!</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">The problem, of course, is kids today! Even old 'started-programming-on-punch-cards in-the-70s' farts (comme moi) are 'drinkin beer, smokin fags and installing random software from the interwebs' - (haven't smoked a fag for 22 year, but I'm still a metaphorical 80-a-day man)</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">I know, I know, its not big and its not clever...<br></font><div><font face="courier new, monospace"><br></font></div><div>
<font face="courier new, monospace">Commercially you inspect the package and snapshot it to your private GitHub repository and build and deploy from that.</font></div><div><font face="courier new, monospace"><br></font></div>
<div><font face="courier new, monospace">What Am I Proposing?</font></div><div><font face="courier new, monospace">--------------------</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">* a list of open source software</font></div>
<div><font face="courier new, monospace"> - which is SEO-friendly and comes top of the search page</font></div><div><font face="courier new, monospace"> - this is why I suggested merging it with the revived erldocs - mucho SEO juice</font></div>
<div><font face="courier new, monospace">* which the 'owners' of that software choose to join</font></div><div><font face="courier new, monospace"> - commit a single Erlang term file to your repository</font></div>
<div><font face="courier new, monospace">  > proof that you want to join</font></div><div><font face="courier new, monospace"> - post the URL to a crawler robot</font></div><div><font face="courier new, monospace">  > if the term file is there your page will be generated</font></div>
<div><font face="courier new, monospace">   - a Jekyll site would be the easiest</font></div><div><font face="courier new, monospace">   - keywords in URLs</font></div><div><font face="courier new, monospace">   - titles/H1/H2/SEO stuff</font></div>
<div><font face="courier new, monospace">   - tags/categories for free</font></div><div><font face="courier new, monospace"> - it needs to be a community</font></div><div><font face="courier new, monospace">  > the authors need to care about their reputation</font></div>
<div><font face="courier new, monospace">  > you can't spam people into a 'community'</font></div><div><font face="courier new, monospace">* that generates instructions on how to incorporate that software in your project</font></div>
<div><font face="courier new, monospace"> - probably mostly 'add this line to your rebar.config'</font></div><div><font face="courier new, monospace"> - or 'add this line to your package.txt for <a href="http://erlang.mk">erlang.mk</a>'</font></div>
<div><font face="courier new, monospace"> - or blah-blah relx blah-blah (don't know enough about it)</font></div><div><font face="courier new, monospace">* that has enough primitive social indicators to constitute a feedback loop</font></div>
<div><font face="courier new, monospace"> - scrape stars, forks, commits, watches, date of last commit from GitHub?</font></div><div><font face="courier new, monospace">  > or some sort of voting/reputation system (sounds like a pain in the arse to write)</font></div>
<div><font face="courier new, monospace"> - and Disqus commenting (generate SEO keywords)</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">What I Am Not Proposing?</font></div>
<div><font face="courier new, monospace">------------------------</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">* something that scrapes and builds and verifies and cryptographically signs software packages.</font></div>
<div><font face="courier new, monospace">* a continuous build server that will produce verified builds for multiple architecture</font></div></div><div><font face="courier new, monospace"> - you can use Travis-CI to do that for open source projects - you would want to pull their results in - good social signal</font></div>
<div><font face="courier new, monospace">* something that makes extensive us of GitHub apis</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">The General Principles</font></div>
<div><font face="courier new, monospace">----------------------</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">* small problem solved well<br></font></div><div>
<div><font face="courier new, monospace">* loose coupled</font></div></div><div><font face="courier new, monospace"> - so it can evolve to address 'harder' problems</font></div><div><font face="courier new, monospace"><br>
</font></div><div><font face="courier new, monospace">Gordon</font></div><div><font face="courier new, monospace"><br></font></div><div class="gmail_extra"><font face="courier new, monospace"><br><br></font><div class="gmail_quote">
<font face="courier new, monospace">On 18 February 2014 17:18, Miles Fidelman <span dir="ltr"><<a href="mailto:mfidelman@meetinghouse.net" target="_blank">mfidelman@meetinghouse.net</a>></span> wrote:<br></font><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class=""><font face="courier new, monospace">Loc Hoguin wrote:<br>
</font><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><font face="courier new, monospace">
On 02/18/2014 04:47 PM, Garrett Smith wrote:<br>
</font><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><font face="courier new, monospace">
emerged as a de facto standard (i.e. actually *used* by people)<br>
</font></blockquote>
<font face="courier new, monospace"><br>
This is what makes these package manager discussions so odd. People keep talking about technical choices and how the perfect package manager they have wet dreams about so often would look like, and nobody asks the questions that matter: how do people deal with dependencies today? How can we improve the workflow? Do packages need to be separate (meaning you need to convince people to maintain them, how?) or can the library authors do it? How do you convince library authors to agree to it? Is their investment in this worth the reward?<br>

<br>
It doesn't matter what the technical solutions are until we have a clearer idea of what people want and would be willing to use. All package manager projects are bound to fail until these questions are answered.<br>
<br>
</font></blockquote>
<font face="courier new, monospace"><br></font></div><font face="courier new, monospace">
Really good points. One nice thing about Erlang packages - we're talking about a single language and run-time environment, not upstream code that has to be packaged for every linux distribution under the sun.</font><div class="im HOEnZb">
<font face="courier new, monospace"><br>
<br>
<br>
<br>
-- <br>
In theory, there is no difference between theory and practice.<br>
In practice, there is.  .... Yogi Berra<br>
<br></font></div><div class="HOEnZb"><div class="h5"><font face="courier new, monospace">
______________________________<u></u>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
</font></div></div></blockquote></div><font face="courier new, monospace"><br><br clear="all"></font><div><font face="courier new, monospace"><br></font></div><font face="courier new, monospace">-- <br>---<br>Gordon Guthrie<br>
CEO <a href="http://vixo.com" target="_blank">vixo.com</a><br>@gordonguthrie<br>+44 (0) 7776 251669 (in Bonnie Scotland!)<br><br>vixo is made in Scotland from electrons
</font></div></div>