Cool, I'll see if I can jot a proposal on a PR with a possible implementation. On Monday, July 12, 2021 at 2:25:52 PM UTC+1 José Valim wrote:
> I think this would be welcome but would we need special flags to control > the deps? And again, there is a huge disclaimer that this won't work for > rebar3 dependencies and similar. It may also be not very straightforward to > implement. > > > On Mon, Jul 12, 2021 at 3:12 PM Guilherme Duarte <gjsd...@gmail.com> > wrote: > >> No worries. Thanks for detailing it better. >> >> The benefit for the users would be the possibility to know where exactly >> the compilation errors are coming from. This would be especially useful >> when users use path dependencies. >> Perhaps it could be even be implemented as a path dependency-only >> feature. Although, I do think that *--return-errors *should never exit, >> but instead return a list of errors, as the documentation suggests. >> >> What do you think? >> >> On Monday, July 12, 2021 at 1:34:49 PM UTC+1 José Valim wrote: >> >>> Gabriel, sorry my question was not clear enough. What is the benefit for >>> users in this case? Why should an IDE should warnings from their deps in a >>> way that capturing stderr is not enough? >>> >>> On Mon, Jul 12, 2021 at 13:43 Guilherme Duarte <gjsd...@gmail.com> >>> wrote: >>> >>>> Hey José, >>>> >>>> Thanks for the quick response. >>>> The *mix deps.compile* diagnostic errors could be reported similarly >>>> to the *mix compile* ones. I believe the logic needed to decide if the >>>> location of the file where the error is being reported belongs to *deps >>>> *or to the developer's current source code could easily be handled by >>>> either *elixir-ls* or the editor. >>>> >>>> The fact that the task current eagerly exits is what makes removes all >>>> flexibility from being able to decide what to do with the errors at a >>>> later >>>> stage. >>>> >>>> On Monday, July 12, 2021 at 9:18:20 AM UTC+1 José Valim wrote: >>>> >>>>> Quick question: how would the errors in mix deps.compile be used in >>>>> the editor? How could that be useful? >>>>> >>>>> Also note that we won't be able to do this for all dependencies... so >>>>> for dependencies the best choice may be to capture stderr. >>>>> >>>>> On Sat, Jul 10, 2021 at 3:16 PM Guilherme Duarte <gjsd...@gmail.com> >>>>> wrote: >>>>> >>>>>> Hello, >>>>>> >>>>>> *Proposal:* >>>>>> >>>>>> In order to facilitate the implementation of development tooling, >>>>>> such as *elixir-ls*, I propose the propagation of the *--return-errors >>>>>> *flag from Mix.Tasks.Compile to Mix.Tasks.Deps.Compile. >>>>>> >>>>>> With this, it would be possible to report diagnostic errors during >>>>>> dependency compilation. >>>>>> With the current behavior, the *mix compile --return-errors *task does >>>>>> an early exit when dependency compilation fails, making it extremely >>>>>> hard >>>>>> to report error reasons. >>>>>> >>>>>> This behavior change would be especially helpful when path >>>>>> dependencies exist. >>>>>> >>>>>> *Proposed Implementation:* >>>>>> >>>>>> In order to achieve this, the flag should be passed down from >>>>>> Mix.Tasks.Compile -> Mix.Tasks.Loadpaths -> Mix.Tasks.Deps.Loadpaths -> >>>>>> Mix.Tasks.Deps.Compile. >>>>>> Mix.Tasks.Deps.Compile.compile should then accumulate the diagnostics >>>>>> messages returned by Mix.Tasks.Compile for each compiled dependency, and >>>>>> the returned values propagated back up call tree to be reported by the >>>>>> original task invocation (mix compile --return-errors) >>>>>> >>>>>> Thanks for considering 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 elixir-lang-co...@googlegroups.com. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/elixir-lang-core/03daf960-dc81-4d76-b9b5-015d2e47e72bn%40googlegroups.com >>>>>> >>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/03daf960-dc81-4d76-b9b5-015d2e47e72bn%40googlegroups.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-co...@googlegroups.com. >>>> >>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/elixir-lang-core/cac47a1c-c153-4cec-9dbb-bc43a6bb2192n%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/elixir-lang-core/cac47a1c-c153-4cec-9dbb-bc43a6bb2192n%40googlegroups.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-co...@googlegroups.com. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-core/92d78373-6c4c-468c-a30b-869d1b1825fcn%40googlegroups.com >> >> <https://groups.google.com/d/msgid/elixir-lang-core/92d78373-6c4c-468c-a30b-869d1b1825fcn%40googlegroups.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/765528ed-71ab-43ec-90b6-23a77cc7452cn%40googlegroups.com.