tredoe/osutil

breaking changes

Closed this issue ยท 13 comments

This repo is currently tagged with a stable version, however several breaking changes have been introduced since v1.0.5. Should we expect more such changes in the future, or can you commit to following semver, as go modules require?

I'm also seeing this not able to be built here:

go: github.com/tredoe/osutil@v1.0.5 requires
	github.com/tredoe/fileutil@v1.0.0: reading github.com/tredoe/fileutil/go.mod at revision v1.0.0: unknown revision v1.0.0

I'm faced with same issue. :(

#10 3.604 go: github.com/tredoe/osutil@v1.0.5 requires
#10 3.604 	github.com/tredoe/fileutil@v1.0.0: reading github.com/tredoe/fileutil/go.mod at revision v1.0.0: unknown revision v1.0.0

I will be moving my team off this library, unfortunately. From the opensource community, we appreciate the work you've done @tredoe

Sorry by the breaking changes. The good side is that the biggest changes has been finished.

I've done some changes that have broken the API because I removed the repository fileutil to add it here. I'd seen if my packages were being used by some project of open source and since they weren't I decided to remove fileutil.

Sorry for the inconvenience! The only soliution is try to use the last version and fix the API in your application.

while I respect the desire to improve and clean up the codebase, breaking changes are exceptionally painful with go modules. if you intend to continue to make breaking changes, that should be reflected in semantic version numbers.

can we get a commitment that from here out, this module will follow semver? this would mean further breaking changes must use a new major version.

I'm trying fix it. I've recovered fileutil from a backup and I'm going to create v2 with new changes for osutil.

Is it working now?

Use v1.0.6 or v2.0.0 (although it is not stable)

awesome, I can confirm that v1.0.6 works without any breaking changes; that is awesome. a few comments on stability however:

  • other incompatible versions with the v1 major that contain breaking changes should be retracted, like so.
  • v2.0.0 is a stable version number, if you want an unstable [recte pre-release] version: https://semver.org/#spec-item-9. please use something like v2.0.0-rc, and this will require retracting the current v2.0.0.
  • you should not delete tags or releases, just add new ones and retract broken or problematic things.
  • retract will not break customers consuming incompatible changes, just push them to move to v2.0.0 or v1.0.6. it is advisable to put suggestions and usage in the retraction comments.

@colin-sitehost Thank you very much for the comments about stability.

sorry if it read as annoying or over the top, just trying to be precise, so you are fully informed; feel free to accept what makes the most sense for this project.

EDIT: be aware that even though the old v1.3.5 tag is gone, the "largest" minor release is still the default, and must be retracted to be ignored:

[user@localhost ~]$ go get github.com/tredoe/osutil
go: downloading github.com/tredoe/osutil v1.3.5
go get: added github.com/tredoe/osutil v1.3.5

Thanks for resolving this @tredoe.