[erlang-questions] Building, Packaging and Installing

Tuncer Ayaz tuncer.ayaz@REDACTED
Thu May 3 00:14:57 CEST 2012

On Sat, Apr 28, 2012 at 3:36 PM, Tristan Sloughter wrote:
> I started with this problem as something to simply discuss with the
> maintainers of certain build and package management projects --
> sinan and agner specifically. But it seems to be more broad and
> cover how all of us who keep apps on github handle versioning and
> dependencies.
> The basic issue is app versions within .app files on branches in
> github, the resultant directory from a agner install and the
> discrepancies this causes.
> For an example take an app like Cowboy that its .app files in the
> master branch has {vsn, "0.5.0"} but this is not really 0.5.0. That
> is a tagged version. What is in master is a version beyond 0.5.0.
> An agner install of this results in lib/cowboy-@REDACTED with the .app
> file still being vsn 0.5.0, of course.
> Rebar has a partial work around for these where you can put {vsn
> git} in your .app.src file and it will populate it on build with
> part of the git hash for the repo at that time. This I think could
> be part of the ultimate solution. Though another problem arises for
> cut versions put into tags, like if you simply download
> https://github.com/boundary/folsom/zipball/0.6 you can not build it
> by default because it is not a git repo. And if you pull the tag and
> build it (as Agner does for when you do a 'agner install folsom -v
> 0.6' the version is not 0.6 in the .app as you'd expect, but instead
> 0.6-<git sha>. Thus I had to create an agner package for the tag
> 0.6-51-gdaa75cb that points to the 0.6 tag of folsom -- other wise
> the dir name and the actual app version would not match.
> So I've been doing many work arounds for this for my needs, none of
> them yet satisfying.
> For real development of an Erlang project on a team its important to
> keep versions of dependencies in sync AND accurate. I've not found a
> good flow for this with the current environment of Erlang apps from
> their main source, github.
> Am I the only one going crazy with this? haha Does anyone have
> suggestions/examples of what they do for production projects on
> teams to ease these annoyances?
> I mostly just create my own packages and repos of dependencies, or
> package third party deps with the project.

Maybe Hackage for Erlang with delta index download and using a mirror

Maybe use xref and typespec tools to implement advanced search
(not same but inspired by Hoogle)?

More information about the erlang-questions mailing list