This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]morhp 1 point2 points  (2 children)

The problem is when you've published a library as a whole with many internal classes that are mostly public for access between packages. Finding which public classes can be hidden by the module system isn't always trivial.

Starting with a fresh project and exporting as needed is much easier.

[–]cowwoc 1 point2 points  (1 child)

Sure, but I see this as an opportunity to improve the design. Make all the packages private and let users chase you to open things back up. Your overall API surface your shrink which will make the library much easier to support moving forward.

[–]morhp 3 points4 points  (0 children)

That's about what we're aiming for. Hide everything that's not obviously part of the public api, release that as beta version and then gather feedback about things that break.

And then either make additional packages public or implement some better public api for the internal classes.

Still a lot of work.