If you wait for the next Hex release we have added the hex_metadata.config
file so you can read metadata of all fetched Hex packages, including Erlang
projects, without having to read mix.exs.

This is the PR that adds it: https://github.com/hexpm/hex/pull/433.

Here is an example of the contents of the hex_metadata.config file:

{<<"app">>,<<"cowlib">>}.
{<<"build_tools">>,[<<"make">>]}.
{<<"description">>,<<"Support library for manipulating Web protocols.">>}.
{<<"files">>,
 [<<"src/cow_cookie.erl">>,<<"src/cow_date.erl">>,<<"src/cow_http.erl">>,
  <<"src/cow_http_hd.erl">>,<<"src/cow_http_te.erl">>,
  <<"src/cow_mimetypes.erl">>,<<"src/cow_mimetypes.erl.src">>,
  <<"src/cow_multipart.erl">>,<<"src/cow_qs.erl">>,<<"src/cow_spdy.erl">>,
  <<"src/cow_spdy.hrl">>,<<"src/cowlib.app.src">>,
  <<"include/cow_inline.hrl">>,<<"README.md">>,<<"LICENSE">>,<<"Makefile">>,
  <<"erlang.mk">>]}.
{<<"licenses">>,[<<"ISC">>]}.
{<<"links">>,[{<<"GitHub">>,<<"https://github.com/ninenines/cowlib";>>}]}.
{<<"maintainers">>,[<<"Loïc Hoguin"/utf8>>]}.
{<<"name">>,<<"cowlib">>}.
{<<"requirements">>,[]}.
{<<"version">>,<<"1.0.2">>}.

On Fri, Nov 10, 2017 at 9:06 AM, Unnawut Leepaisalsuwanna <
[email protected]> wrote:

> Sure thing. Thanks!
>
> On Fri, Nov 10, 2017 at 2:00 PM, José Valim <[email protected]> wrote:
>
>> Hi, I agree such a Mix task can be useful but I don't see a reason for it
>> to be included as part of Elixir. So please do release it as a separate
>> project that folks can bring into their application as necessary. Thank you!
>>
>>
>>
>> *José Valimwww.plataformatec.com.br
>> <http://www.plataformatec.com.br/>Founder and Director of R&D*
>>
>> On Fri, Nov 10, 2017 at 4:37 AM, <[email protected]> wrote:
>>
>>> TLDR: Proposal of `mix deps.licenses` to list all depedencies' licenses
>>> for review, which can be very manually tedious but very important to do to
>>> stay legally safe.
>>>
>>> -----
>>>
>>> Often times when developing an app, some new dependencies may be
>>> added/removed over time, some dependencies change their licenses throughout
>>> their lives.
>>>
>>> Especially in a team setting where multiple people may add/remove
>>> dependencies from the project, we need to periodically review the licenses
>>> used by our dependencies to make sure we are not violating them. Currently
>>> this can be tedious work as the licenses are specified in their respective
>>> Mixfile, and one project may have dozens of dependencies. (Worse is that a
>>> lot of packages don't define their `Mix.Project.config.package.licenses`,
>>> but that's a separate concern).
>>>
>>> So I would like to propose a `mix deps.licenses` task that extract `
>>> Mix.Project.config.package.licenses` from each dependencies and output
>>> it on command line. This would be similar to `composer licenses` in PHP
>>> <https://getcomposer.org/doc/03-cli.md#licenses>.
>>>
>>> I tinkered a little with creating a simple mix task. This is the result
>>> I can extract using the `licenses` attribute:
>>>
>>> ```
>>> $ mix deps.licenses
>>>
>>> poolboy: license undefined
>>> decimal: Apache 2.0
>>> warning: String.strip/1 is deprecated, use String.trim/1
>>>   /path/to/project/deps/poison/mix.exs:4
>>>
>>> poison: CC0-1.0
>>> elixir_make: Apache 2
>>> bcrypt_elixir: BSD
>>> db_connection: Apache 2.0
>>> postgrex: Apache 2.0
>>> ecto: Apache 2.0
>>> ex_machina: MIT
>>> connection: Apache 2.0
>>> poolboy: license undefined
>>> decimal: Apache 2.0
>>> poison: CC0-1.0
>>> elixir_make: Apache 2
>>> bcrypt_elixir: BSD
>>> db_connection: Apache 2.0
>>> rabbit_common: license undefined
>>> postgrex: Apache 2.0
>>> ecto: Apache 2.0
>>> connection: Apache 2.0
>>> poolboy: license undefined
>>> meck: license undefined
>>> mock: MIT
>>> decimal: Apache 2.0
>>> poison: CC0-1.0
>>> elixir_make: Apache 2
>>> db_connection: Apache 2.0
>>> postgrex: Apache 2.0
>>> ecto: Apache 2.0
>>> connection: Apache 2.0
>>> ranch: license undefined
>>> poolboy: license undefined
>>> decimal: Apache 2.0
>>> poison: CC0-1.0
>>> elixir_make: Apache 2
>>> db_connection: Apache 2.0
>>> phoenix_pubsub: MIT
>>> cowlib: license undefined
>>> cowboy: license undefined
>>> amqp_client: license undefined
>>> amqp: MIT
>>> mime: Apache 2
>>> plug: Apache 2
>>> phoenix: MIT
>>> postgrex: Apache 2.0
>>> ecto: Apache 2.0
>>> ```
>>>
>>> Obviously there is more work to do: duplicate packages (packages having
>>> same dependencies), warnings as a result of `Mix.Dep.in_dependency`. But
>>> let me know this is worth adding (I think so!), would be happy to continue
>>> working and submit a PR for this.
>>>
>>> --
>>> 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 [email protected].
>>> To view this discussion on the web visit https://groups.google.com/d/ms
>>> gid/elixir-lang-core/401033dd-db2f-4e5f-8935-4df9cee196e9%40
>>> googlegroups.com
>>> <https://groups.google.com/d/msgid/elixir-lang-core/401033dd-db2f-4e5f-8935-4df9cee196e9%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "elixir-lang-core" group.
>> To unsubscribe from this topic, visit https://groups.google.com/d/to
>> pic/elixir-lang-core/UHqv3ngKeEc/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>> To view this discussion on the web visit https://groups.google.com/d/ms
>> gid/elixir-lang-core/CAGnRm4Kjf_FaJzi6PBy1awDdmUVJxqQqNkzkZR
>> C%3DP2wj_zLFHQ%40mail.gmail.com
>> <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4Kjf_FaJzi6PBy1awDdmUVJxqQqNkzkZRC%3DP2wj_zLFHQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> 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 [email protected].
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/elixir-lang-core/CAB%3DEmQSMsWVXc8jOKQqjoH_tN-
> 0pcTZHaef0V-6ZXHisAjwERg%40mail.gmail.com
> <https://groups.google.com/d/msgid/elixir-lang-core/CAB%3DEmQSMsWVXc8jOKQqjoH_tN-0pcTZHaef0V-6ZXHisAjwERg%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Eric Meadows-Jönsson

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/CAM_eapiWmwVcAsuvxE%3D__Ka9ec_-qnXPuSH4eYSELGpNyB3PkQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to