+1 to the proposal

+1 to add Elixir/Erlang versions as part of the cache dir structure

Another suggestion: I would explain in the documentation how to pass
configuration to the dependencies :)

On Thu, 21 Jan 2021 at 15:49, José Valim <jose.va...@dashbit.co> wrote:

> > The latter solution could most easily be solved by using /tmp and making
> a new folder each iex instance that calls mix install (possibly also
> respecting the cache dir flag options)
>
> Good points.
>
> That's kind of how the current implementation works. The cache is in tmp
> and the cache key is the MD5 of the deps given to install. This means that
> the cache is most likely to be used only by the current script. So it
> reduces the odds of interference between scripts. Otherwise you will have
> to fetch and compile dependencies every time the script runs, which would
> be too slow.
>
> Issues like Elixir version and Erlang version can be solved in two ways:
> 1. don't do anything because Mix already solves those or 2. add those to
> the cache key - either as part of the directory structure (my vote) or as
> part of the MD5 computation.
>
> We could also support explicit naming for better control over the cache -
> but I would wait for those until people effectively run into cache issues,
> if ever. :)
>
>
>
> On Thu, Jan 21, 2021 at 3:35 PM Jonathan Arnett <jonarnet...@gmail.com>
> wrote:
>
>> I am also a fan of the proposal. One addendum that I would like to
>> suggest is adding a flag to IEx such that a library can be "installed" when
>> the shell starts.
>>
>> e.g.
>> iex --install :decimal
>> On 1/21/21 9:01 AM, Anil Kulkarni wrote:
>>
>> I love the general idea. I think it's a great solution for copy/paste/run
>> needs that a scripting language should have.
>>
>> I do have a question about the caching packages across runs. What is the
>> motivation? Is it to increase performance, or are there other reasons?
>>
>> My concern is that inevitably there will be issues with the cache. It
>> reminds me of global pip requirements, global npm installs etc.
>>
>> Some issues I have personally run into with these solutions ( python and
>> js) include:
>>
>> 1) the cache size increasing and needing to manually trim it. Consider
>> popping a shell into a production environment to fix an issue. You
>> wouldn'twant to leave stuff behind.
>>
>> 2) Managing dependencies across language upgrades (e.g. updating node to
>> 15.5, what happens to the dependencies? What happens for sxs (side by side)
>>
>> 3. Inconsistencies due to caching, especially with node. E.g. Needing to
>> blow away the cache and download fresh to fix an issue
>>
>> 4. Fire corruption due to other programs needing to nuke the cache
>>
>> 5. Issues that arise when backing up and then trying to restore to a
>> different home folder (I had a python dependency hard code the path an
>> install)
>>
>> 6. File permission changes, especially when switching between different
>> users on chroot'd terminals
>>
>> Some of these issues are going to be a problem anyways, but I think that
>> caching provides another avenue  for things go wrong.
>>
>> My suggestion would be to either add explicit cache management
>> functionality to elixir - including which path it lives, and blowing away
>> the cache or to not use one for now.
>>
>> The former could look like this:
>> ELIXIR_CACHE_DIR=/foo iex
>> (eg set an environment var then call iex) or with parameters passed in
>> iex --cache-dir
>> iex --clear-cache
>>
>> The latter solution could most easily be solved by using /tmp and making
>> a new folder each iex instance that calls mix install (possibly also
>> respecting the cache dir flag options)
>>
>> -Anil
>>
>> On Jan 21, 2021, at 05:02, Felipe Stival <v0id...@gmail.com>
>> <v0id...@gmail.com> wrote:
>>
>> 
>> +1 for this proposal.
>>
>> On Thu, Jan 21, 2021, 09:54 Jon Rowe <m...@jonrowe.co.uk> wrote:
>>
>>> I plus one this proposal, it’s similar (for scripts at least) to what
>>> Ruby has with bundler inline mode, I like this because such techniques
>>> allow you to create single file reproductions of issues, which are great
>>> for bug reports in PRs.
>>>
>>> Cheers
>>> Jon
>>> ----------------
>>> m...@jonrowe.co.uk
>>> https://jonrowe.co.uk
>>>
>>> On 21 January 2021 at 12:18, eksperimental wrote:
>>>
>>> `Mix.install(:decimal)` should also work out of the box IMO.
>>>
>>> On Thu, 21 Jan 2021 03:18:44 -0800 (PST)
>>> "woj...@wojtekmach.pl" <woj...@wojtekmach.pl> wrote:
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "elixir-lang-core" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to elixir-lang-core+unsubscr...@googlegroups.com.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/elixir-lang-core/dejalu-217-a7302266-156c-46d8-86f9-089e2065af2b%40jonrowe.co.uk
>>> <https://groups.google.com/d/msgid/elixir-lang-core/dejalu-217-a7302266-156c-46d8-86f9-089e2065af2b%40jonrowe.co.uk?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "elixir-lang-core" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to elixir-lang-core+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/elixir-lang-core/CAKC64%2ByRtG-XGWkSADPXHzOLZ8AJ4g73DxEjC_8Jp1b3-sHKAg%40mail.gmail.com
>> <https://groups.google.com/d/msgid/elixir-lang-core/CAKC64%2ByRtG-XGWkSADPXHzOLZ8AJ4g73DxEjC_8Jp1b3-sHKAg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "elixir-lang-core" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to elixir-lang-core+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/elixir-lang-core/0100017725401617-8cdc5c5f-8434-42d6-a3b5-0272cbf65824-000000%40email.amazonses.com
>> <https://groups.google.com/d/msgid/elixir-lang-core/0100017725401617-8cdc5c5f-8434-42d6-a3b5-0272cbf65824-000000%40email.amazonses.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "elixir-lang-core" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to elixir-lang-core+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/elixir-lang-core/62020d79-4f44-38d5-65e7-a786808da633%40gmail.com
>> <https://groups.google.com/d/msgid/elixir-lang-core/62020d79-4f44-38d5-65e7-a786808da633%40gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> You received this message because you are subscribed to the Google Groups
> "elixir-lang-core" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to elixir-lang-core+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4JFHs6stz5sHvFabZXP%2BS3HXMLN8PKd%2BVNJ%3DmwbF8-J_A%40mail.gmail.com
> <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4JFHs6stz5sHvFabZXP%2BS3HXMLN8PKd%2BVNJ%3DmwbF8-J_A%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/CA%2Bm6x%3DRASn5PRT0nXz_VNVCQTSVAQvPhPjvn%3Df4qyf-055ww1w%40mail.gmail.com.

Reply via email to