<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 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 class="im">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 href="mailto:watson.timothy@gmail.com" target="_blank">watson.timothy@gmail.<u></u>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 class="im"><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 class="im"><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 href="https://github.com/hyperthunk/appstart" target="_blank">https://github.com/hyperthunk/<u></u>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>