Elixir master already supports installing packages globally but only as escripts. You won't be able to use them directly in your Mix projects.
On Wednesday, July 13, 2016, Pedro Medeiros <[email protected]> wrote: > I also dislike handling with this kind of problem. I work mostly with ruby > and python . We had these kind in the past a lot, but in the end prohibit > to install global dependencies is not the best solution IMO. Is cool to > install and just test a library, show something for someone at work, make a > small POC... etc. > > On other languages like ruby or python they started putting everything > globally, then moved to local solutions (virtualenv or bundler). In Elixir > we started with local dependencies then people are discussing if there's > the necessity to move to global. I don't believe this kind of problem will > occur constantly that way. but that's my 2 cents > > On Wed, Jul 13, 2016 at 12:46 PM, Ben Wilson <[email protected] > <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote: > >> Global dependencies available in a mix project is gonna send us back to >> the world of needing some equivalent of `bundle exec blah` when we want to >> run our project with ONLY the mix deps. Dependencies via mix "just work" at >> the moment and it's awesome. If there's gonna be globally available >> dependencies at all I'd much prefer if they weren't usable in a mix project >> at all. Use cases would mostly be to let you do `Poison.decode!` inside a >> normal `iex` session or something. Global dependencies intermingled with >> local dependencies is a recipe for problems that plague dependency >> management in python and the other languages mentioned as models here. >> >> On Wednesday, July 13, 2016 at 10:59:50 AM UTC-4, Pedro Medeiros wrote: >>> >>> I currently like the approach of descriptive dependencies at a mix.exs >>> file or maintain a mix.lock. In the end of day I think this is the best >>> practice to run your project anywhere in a more descriptive way. >>> >>> But I can also see the need for people that want to test or debug >>> something or another inside a project by not necessary having to install >>> the deps inside the mix.exs. I find useful to have a way to install >>> globally libs but I believe it can brings problems with dependency versions >>> more frequently. >>> >>> >>> On Wed, Jul 13, 2016 at 8:23 AM, derek <[email protected]> wrote: >>> >>>> On Sat, Jul 9, 2016 at 11:29 AM, Ben Wilson <[email protected]> >>>> wrote: >>>> > Global package installation is also a constant source of problems >>>> when they >>>> > conflict. That isn't to say that there aren't scenarios where it's >>>> handy. >>>> > However great care needs to be taken when it comes to make code >>>> globally >>>> > available as we don't want to end up in dependency hell. >>>> > >>>> > It's also worth pointing out that as a compiled language Elixir is >>>> simply a >>>> > different beast than Python. To my knowledge it is not possible to >>>> > consolidate protocols outside of a mix project, and without such >>>> > consolidation there is literally no point in benchmarking anything. >>>> If you >>>> > have a mix project to consolidate protocols, then you may as well >>>> just add >>>> > your benchmarking library as a dev dependency. >>>> >>>> In the company I'm working for there are still lots of components in >>>> pure Erlang, and those Erlang packages are installed globally under >>>> /usr/lib/erlang/lib/... by a Linux package manager like yum; Managing >>>> packages dependencies is not a big deal here I would say, even without >>>> yum; With switching to Elixir doesn't mean we have to rewrite all >>>> components in Elixir, a consensus here is only when rewriting is >>>> proven to have superior benefits; so here why not give user freedom to >>>> manage global packages? not restricting user have to make a fake >>>> project to evaluate something; here benchee is used as a global >>>> package and doesn't belong to any particular project, don't even want >>>> to add into mix.exs >>>> >>>> The current requirement of mix to install a package within a project >>>> is just odd to people with different language background >>>> >>>> This is the proposal: >>>> >>>> $ mix install benchee --save # install the package to >>>> current project, `--save` option is optinal, inspired from `npm >>>> install`, which does add the new dependency to its package.json; for >>>> mix this can be added into mix.exs >>>> $ mix install benchee --user # install into a hidden >>>> directory under user's home, this works for a user with ERL_LIBS >>>> properly set; this is pip's behavior >>>> $ sudo mix install benchee --global # install globally to where >>>> Elixir or Erlang's system libs (that is /usr/lib/erlang/lib to Erlang >>>> usually) >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "elixir-lang-talk" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/elixir-lang-talk/CAJctwx42m%2B%2BmzJVV1F0c1ok7WVaO9iGs5PKVT9uxH%2BYqqKCvgQ%40mail.gmail.com >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >>> >>> -- >>> Pedro Henrique de Souza Medeiros >>> ---------------------------------- >>> Cel: +55 (61) 9197-0993 >>> Email: [email protected] >>> >>> Beautiful is better than ugly, >>> Explicit is better than implicit, >>> Simple is better than complex, >>> Complex is better than complicated. >>> >>> The Zen of Python, by Tim Peters >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "elixir-lang-talk" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] >> <javascript:_e(%7B%7D,'cvml','elixir-lang-talk%[email protected]');> >> . >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-talk/1e9f934a-d4ce-469e-8030-14b466f8f9b9%40googlegroups.com >> <https://groups.google.com/d/msgid/elixir-lang-talk/1e9f934a-d4ce-469e-8030-14b466f8f9b9%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Pedro Henrique de Souza Medeiros > ---------------------------------- > Cel: +55 (61) 9197-0993 > Email: [email protected] > <javascript:_e(%7B%7D,'cvml','[email protected]');> > > Beautiful is better than ugly, > Explicit is better than implicit, > Simple is better than complex, > Complex is better than complicated. > > The Zen of Python, by Tim Peters > > -- > You received this message because you are subscribed to the Google Groups > "elixir-lang-talk" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <javascript:_e(%7B%7D,'cvml','elixir-lang-talk%[email protected]');> > . > To view this discussion on the web visit > https://groups.google.com/d/msgid/elixir-lang-talk/CAJbPmJNvOrus_qhFrVuF2qgDBKYE678e6c%2Bk8iKTATey46kwsg%40mail.gmail.com > <https://groups.google.com/d/msgid/elixir-lang-talk/CAJbPmJNvOrus_qhFrVuF2qgDBKYE678e6c%2Bk8iKTATey46kwsg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- *José Valim* www.plataformatec.com.br Skype: jv.ptec Founder and Director of R&D -- You received this message because you are subscribed to the Google Groups "elixir-lang-talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-talk/CAGnRm4Kp%3DtC3oZQeAvfKba_S5cooiYu07PmnLw6eYU%2BK3AwtGA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
