[erlang-questions] Erlang package managers?

Olav Frengstad olav@REDACTED
Thu May 30 00:35:23 CEST 2013


> Well this is hard to find the solution that fits all possible work flows.

I agree, there is no such thing as one-size-fits-all and speaking for
myself I have, at least for my work, a very tailored development
environment .

> The one thing which is solvable in nice manner is the ability to maintain different set of dependencies for different environments.

As i said, most things can be scripted, but i prefer to let the tool
to it for me. I'v used that approach earlier to maintain separate
configs, and your approach is a great example of handling dynamic
dependencies.

Olav

2013/5/29 Dmitry Kolesnikov <dmkolesnikov@REDACTED>
>
> Hello Olav,
>
> Well this is hard to find the solution that fits all possible work flows.
> The one thing which is solvable in nice manner is the ability to maintain different set of dependencies for different environments.
>
> I do have a dedicated file to maintain environment specific dependencies (e.g. dev.config, prod.config, etc). The file contains deps declaration same as "deps" section from rebar.config. The I am using rebar.config.script to inject those dependencies depends on env variable. The file is simple see below. The same techniques can be used to swap branches, tags etc.
>
> -- CLIP --
> DEPS = fun(File, Config) ->
>    case file:consult(File) of
>       {ok, DEPS} ->
>          {deps, List} = lists:keyfind(deps, 1, Config),
>          lists:keystore(deps, 1, Config, {deps, List ++ DEPS});
>       _ ->
>          Config
>    end
> end,
> Fdeps = fun(Config) -> DEPS("deps.config", Config) end,
>
> lists:foldl(
>    fun(X, Acc) -> X(Acc) end,
>    CONFIG,
>    [Fdeps]
> ).
> -- CLIP --
>
> - Dmitry
>
> On May 29, 2013, at 1:45 PM, Olav Frengstad <olav@REDACTED> wrote:
>
> @Andre: Didn't find that when searching, a rename is required from my part
>
> @Dmitry:
> I would call that the beauty of git, having a ./deps.sh doing the same thing would be same amount of lines.
>
> My issues with Rebar are minor things related to git, but this forces me every now and then to do manual work which interrupts my workflow.
>
> 1) updating git remotes does not work
> 2) tags that has been forcefully updated does not work
> 3) If Rebar was interrupted while fetching deps it will refuse restart the fetch because of a missing .app file
> 4) the little trick of calling get-deps before update-deps
>
> Ideally I want a build env where i can pick different refs for a dependency based on the environment, i.e. dev can use a different branch than  dev/stage/prod/test. Rebar does not give me an easy way of doing this.
>
> All of the problems above could off course all be scripted around, but I found using other tools removed the complexity of my previous development cycle (at the cost of a Makefile and epm + relx)
>
> All in all I think Rebar is a good tool for simplifying the Erlang development cycle, but I have found it difficult to find good workflow.
>
> Olav
>
>
>
> 2013/5/29 André Graf <andre.graf@REDACTED>
>>
>> Hello Olav
>>
>> I am confused now, are you talking of 'epm' by Jacob Vorreuter
>> (https://github.com/JacobVorreuter/epm) or is your 'EPM' something
>> different?
>>
>> Cheers,
>> Andre
>>
>> On 29 May 2013 11:11, Olav Frengstad <olav@REDACTED> wrote:
>> > I'v previously been using Rebar to handle source dependencies, but recently
>> > started working on an alternative solution called EPM [1] which fixes some
>> > of the issues I had with Rebar's dependency management.
>> >
>> > [1] https://github.com/lafka/epm
>> >
>> >
>> > 2013/5/29 Dominic Williams <mail@REDACTED>
>> >>
>> >> Le 28 mai 2013 à 23:42, Michael Truog a écrit :
>> >>
>> >> > QuickCheck is commercial, so you won't find a package for free, unless
>> >> > you try to get the Haskell version (Haskell is the free version, but Erlang
>> >> > is the commercial version).
>> >>
>> >> QuickCheck mini, which contains all the basic features, is free and can be
>> >> downloaded from QuviQ's web site.
>> >>
>> >> Regards,
>> >> Dominic Williams
>> >> http://dominicwilliams.net
>> >>
>> >> _______________________________________________
>> >> erlang-questions mailing list
>> >> erlang-questions@REDACTED
>> >> http://erlang.org/mailman/listinfo/erlang-questions
>> >
>> >
>> >
>> >
>> > --
>> > Med Vennlig Hilsen
>> > Olav Frengstad
>> >
>> > Systemutvikler // FWT
>> > +47 920 42 090
>> >
>> > _______________________________________________
>> > erlang-questions mailing list
>> > erlang-questions@REDACTED
>> > http://erlang.org/mailman/listinfo/erlang-questions
>> >
>
>
>
>
> --
> Med Vennlig Hilsen
> Olav Frengstad
>
> Systemutvikler // FWT
> +47 920 42 090
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
>



--
Med Vennlig Hilsen
Olav Frengstad

Systemutvikler // FWT
+47 920 42 090



More information about the erlang-questions mailing list