Hello!

A slightly exotic use-case, but I would like to have your opinion :-)

While doing maintenance work, I often leverage the fact that Mix.lock 
content is "valid Elixir" to implement useful stuff.

Two examples are:
- 
https://github.com/etalab/transport-site/blob/master/generate_deps_changelogs.exs
 
to automatically generate "diff" sections on maintenance PR (see 
"Changelogs" sections at https://github.com/etalab/transport-site/pull/3814)
- other tooling to verify that unwanted dependencies have not been replaced 
unwillingly (example 
at https://github.com/etalab/transport-site/issues/3820, there is code in 
addition to French!)

The point I want to bring is that this call (at least on Elixir 1.15):

Code.eval_string(File.read!("mix.lock"))


raises warnings such as:

warning: found quoted keyword "mox" but the quotes are not required. Note 
that keywords are always atoms, even when quoted. Similar to atoms, 
keywords made exclusively of ASCII letters, numbers, and underscores and 
not beginning with a number do not require quotes

  nofile:78:4



This is not a super blocking point at this stage, but I wonder if ensuring 
that Mix.lock is formatted in a way that does not lead to warning would be 
a possibility here?

Alternatively, what would be better ways to get the same value (maybe 
leveraging Mix internals), without having to "migrate" the format?

The tooling I use is here to stay, and worst case I can either ignore the 
warnings, or "pre-process" the file to remove them, if needed.

Thanks!

-- Thibaut

-- 
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/c7d279b7-0b8a-4a8f-8225-2d4cd99ffdfdn%40googlegroups.com.

Reply via email to