Closed rtfeldman closed 8 years ago
Thanks for the issue! Make sure it satisfies this checklist. My human colleagues will appreciate it!
Here is what to expect next, and if anyone wants to comment, keep these things in mind.
Duplicate of https://github.com/elm-lang/elm-make/issues/61 ;)
Although
elm-package
disallows breaking API changes in Minor and Patch versions, it is still possible to publish a Minor version which breaks other packages. Suppose I publish this:If I publish this and
Foo
exposesdoSomething
, butBar
does not, nothing bad happens.If
Bar
then publishes its owndoSomething
, suddenly it has broken my module (and anyone who depends on my module) becausedoSomething
has become ambiguous.Modules which explicitly enumerate all their
exposing
imports cannot go from unambiguous to ambiguous simply because another package published a new Minor version. This suggests a solution: disallow the use ofimport
withexposing (..)
in exposed modules (and their dependencies). This is a bit inconvenient to package authors, but the increased ecosystem reliability seems worth it.This would only affect exposed modules, so application authors could still break their own builds by upgrading to a new Minor version of a package. However, since that does not disrupt the rest of the ecosystem, that seems like a fine thing to leave up to them. They can resolve it on their own without harming others.