sasa1977 / boundary

Manage and restrain cross-module dependencies in Elixir projects
MIT License
818 stars 21 forks source link

Version 0.10.1 warns about not exported protocol implementations #58

Closed ribanez7 closed 1 year ago

ribanez7 commented 1 year ago

I get compile time warnings with the new version for modules implementing the String.Chars protocol, and also for modules implementing the Jason.Encoder protocol via @derive Jason.Encoder.

Is this something expected? I think those implementations are not part of the atoms to be exported. For example, inside a boundary I have MyApp.Something and the warning says String.Chars.MyApp.Something is not included in any boundary.

sasa1977 commented 1 year ago

Protocol impls shouldn't be reported by default. One possible reason is that you updated to 0.10.1 on a previously compiled project. In this case you might get false positives because not all modules are recompiled. The fix would be to run mix compile --force once (if you're on umbrella you might need to clean the builds for all your apps using boundary). Could you give it a try?

ribanez7 commented 1 year ago

Hi @sasa1977 , I have tried with mix compile --force but it still happens. It's not an umbrella, and also I detected the problem in CI, where I always recompile the whole project.

I'm going to do further checks, just in case I find something related to my code. But with the previous version it does not happen.

ribanez7 commented 1 year ago

@sasa1977 , disregard, it is indeed related with the compiled image. I was under a cached image.