top | item 30558723

(no title)

dilatedmind | 4 years ago

Thoughts on a couple of your points:

- we don’t need any kind of backwards compatibility, we just update everything.

if you don't care about backwards compatibility, then you can stay on v1 forever. Have you considered a monorepo? That would simplify updating packages and give you the behavior you want.

- For the client to update, it’s not a simple path change in go.mod

if a package moves from v1 to v2, there are breaking changes in either api or behavior. I think this implies more than a simple change to go.mod. This also allows importing both versions of a package if necessary.

discuss

order

dmitriid|4 years ago

> there are breaking changes in either api or behavior.

So instead off focusing on those changes I have to first fix potential dozens of files for no reason at all.

paskozdilar|4 years ago

> So instead off focusing on those changes I have to first fix potential dozens of files for no reason at all.

You don't have to, if you don't want to upgrade to a new major version.

If you do want to upgrade to a major version, which means that there are breaking changes in a package's API or behavior - you sure as hell want to check the correctness of every single line of code written using that package. Since every file that uses that package must contain an import statement, the import statements are an easily greppable indicator of which files you have to check and potentially fix.