<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
<br>
On 04/05/2012 09:32, Tim Watson wrote:
<blockquote
cite="mid:A1C2C7DE-ADD2-4E17-8EA9-71BEAF450C95@gmail.com"
type="cite">
<div>
<div>Is Columbo somehow different from what rebar already does
in this space?<br>
</div>
</div>
</blockquote>
One major difference is that Colombo tries to adhere to the version
numbering scheme of OTP and avoids using the source area for
generating releases.<br>
<br>
What does that mean?<br>
<br>
It means that after building in ./gproc the compiled version will be
installed in ./lib/gproc-0.4.3<br>
<br>
This allows a more strict separation of managing dependencies and
the actual building of the app you are working on.<br>
<br>
I tried to get rebar to do the same, but it was too painful for me
to get that to work, so I decided to do an experiment of my own to
see if I could create something that could help me out.<br>
<br>
Another reason for doing this was to create a set-up so that I could
use sinan as my build tool and since sinan does not deal with
dependencies I had to come up with a solutions for my needs.<br>
<br>
I will try to write a blog post and create a Readme for Colombo so
that other can see what I am trying to do more clearly.<br>
<br>
In my dreams Colombo functionality is rolled into the major tools
once we agree on the steps in the process, but that is not really up
to me to decide.<br>
<br>
Cheers,<br>
Torben<br>
<br>
<blockquote
cite="mid:A1C2C7DE-ADD2-4E17-8EA9-71BEAF450C95@gmail.com"
type="cite">
<div>
<div><br>
<br>
</div>
<div><br>
On 4 May 2012, at 03:06, Tristan Sloughter <<a
moz-do-not-send="true"
href="mailto:tristan.sloughter@gmail.com">tristan.sloughter@gmail.com</a>>
wrote:<br>
<br>
</div>
<div><span></span></div>
<blockquote type="cite">
<div>Ah yes, I briefly looked at colombo when you mentioned it
on the erlware list. I'll give that a deeper look to see how
much of what I need is covered by it and possibly simply
start extending it.
<div><br>
</div>
<div>Tristan<br>
<br>
<div class="gmail_quote">On Thu, May 3, 2012 at 4:52 PM,
Torben Hoffmann <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:torben.lehoff@gmail.com"
target="_blank">torben.lehoff@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF">
<div>That actually sounds like a good step forward -
it almost, but only almost makes me sad that I
have created my own dependency management tool
called colombo (alpha vers. is on github/lehoff).</div>
<div><br>
</div>
<div>I haven't spent much time on it, but it can
fetch apps from git repos as well as their
dependencies, one can specify a tag or a branch
to check out, a simple build can be done and you
can get a version tagged version installed in the
subdir lib of the dir where you you colombo (vers
is taken from the app file or a default is
choosen).</div>
<div><br>
</div>
<div>very much alpha quality, but it shows that
small dedicated tools aren't that hard to create
for the Erlang eco system.</div>
<div><br>
</div>
<div>I will continue improving colombo since it
helps me solve my own problem, but it would be
nice to have "real" users as well that could help
form the functionality of the tool. Or tools since
I might already have added too much functionality
to colombo.</div>
<div><br>
</div>
<div>Cheers,</div>
<div>Torben<br>
<br>
Sent from my iPad</div>
<div>
<div class="h5">
<div><br>
On 03/05/2012, at 15.30, Tristan Sloughter
<<a moz-do-not-send="true"
href="mailto:tristan.sloughter@gmail.com"
target="_blank">tristan.sloughter@gmail.com</a>>
wrote:<br>
<br>
</div>
<div><span></span></div>
<blockquote type="cite">
<div>
<div>I feel like someone said Travis-CI
wasn't the answer... But I am now having
the thought it is, at least to make
something I'd like to see without me
having to do it.</div>
<div><br>
</div>
<div>The question is would the community be
interested in this if I implement it. Here
is what I'm talking about:</div>
<div><br>
</div>
<div>1) A github hook that informs X that an
update to a branch or tag is pushed. </div>
<div>2) This hook does not only ensure tests
pass but also that the version numbers are
correct. If you tag a project as 0.1.0 and
the .app file has {vsn, 0.1.0} it fails</div>
<div>3) Assuming these criteria are met the
agner repo for the project is either
updated or created. Instead of @master it
would use a piece of the git hash for the
branch pointer (using a moving target -- a
branch name -- as the version of an app
doesn't make sense), for a tag it would
use the tag name.</div>
<div><br>
</div>
<div>Now, this is only part of the large
solution people want, and I agree with
them we should do. </div>
<div><br>
</div>
<div>But, I think it is a start and
something that can be done in small enough
amount of effort to be done soon.</div>
<div><br>
</div>
<div>Tristan</div>
<div><br>
<div class="gmail_quote">On Wed, May 2,
2012 at 7:18 PM, Tim Watson <span
dir="ltr"><<a
moz-do-not-send="true"
href="mailto:watson.timothy@gmail.com"
target="_blank">watson.timothy@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div>On 02/05/2012 21:13, Ciprian
Dorin Craciun wrote:<br>
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
On Wed, May 2, 2012 at 11:03 PMv,
Tim Watson<<a
moz-do-not-send="true"
href="mailto:watson.timothy@gmail.com"
target="_blank">watson.timothy@gmail.com</a>>
wrote:</blockquote>
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
Eric Merit and I have had some
lengthy discussions about this
on the Erlware mailing list and
have some ideas that I think are
pretty solid.<br>
</blockquote>
I'm glad to hear this. (I'll
give it a look.)<br>
</blockquote>
</div>
Cool thanks - please do leave any
feedback you feel is relevant.
<div><br>
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
The thing is though, you don't
just need tools - you also need
people to package their stuff up
using the tools.<br>
</blockquote>
I agree about this. In fact I
think currently there are a lot of<br>
tools with diverging solutions.<br>
<br>
Also I don't think that one
"blessed" tool would be the final<br>
answer. I would have taken a
somehow different road, similar
maybe to<br>
how Go is going (although they do
have the "one" tool): i.e. strict<br>
conventions.<br>
</blockquote>
</div>
Yes I agree that '1 tool to rule them
all' isn't going to work. Eric and I
have discussed building a unix-y
pipeline of tools to deal with
local/remote package and repository
management, dependency resolution,
installing and/or generating a code
path (or some other structure) for
bootstrapping either ERL_LIBS or a
call to code:path, etc.<br>
<br>
The assumption we have is that various
parts can be dealt with be different
tools providing they respect the APIs,
so you can build with rebar or sinan
or make or whatever. We are also
planning on using reltool (or some
alternative/replica of sorts) to deal
with the packaging bits, as well as a
set of tools for publication,
code/package signing and the like.<br>
<br>
We would also like to support
different release types (e.g.,
embedded vs. non), distinguish between
applications and library applications
and so on.
<div><br>
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
<br>
What do I mean is this:<br>
a) it would be nice to have a
standardized way to specify
"extra"<br>
options to compile an Erlang
module. (We have the module
attributes<br>
that we could use.) (the same for
C sources);<br>
b) we already have a standard
project layout; (i.e. `./src`,<br>
`./include`, etc.)<br>
c) we already have a standard
project dependencies (i.e. the
`app` file);<br>
<br>
All we need to do is be
consistent in this convention, and
then<br>
all the various build and
packaging systems could adapt.<br>
</blockquote>
</div>
Packaging wise, I don't see how any of
this really helps so much, although I
completely agree that sticking to this
consistent layout is a good thing.<br>
<br>
Using the app file for dependencies is
fine at runtime - I do this in <a
moz-do-not-send="true"
href="https://github.com/hyperthunk/appstart"
target="_blank">https://github.com/hyperthunk/appstart</a>
- but if you're connecting to a
(possibly remote) artefact repository
and fetching stuff, then you need to
specify the publisher/signer (because
2 OTP applications could be written
with the same name, and of course with
FOSS project forking this happens all
the time), the application name, and
the version. You can't whack all of
that into your .app file without
breaking various things.<br>
<br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
</div>
</div>
<div class="im">
<blockquote type="cite">
<div><span>_______________________________________________</span><br>
<span>erlang-questions mailing list</span><br>
<span><a moz-do-not-send="true"
href="mailto:erlang-questions@erlang.org"
target="_blank">erlang-questions@erlang.org</a></span><br>
<span><a moz-do-not-send="true"
href="http://erlang.org/mailman/listinfo/erlang-questions"
target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a></span><br>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
</div>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
<a class="moz-txt-link-freetext" href="http://www.linkedin.com/in/torbenhoffmann">http://www.linkedin.com/in/torbenhoffmann</a></pre>
</body>
</html>