Closed mcandre closed 8 months ago
Hi,
Can you please describe your issue in a bit more detail? I don't understand how version numbers help prevent breaking changes from running amok. What is the benefit of a release (in addition to a tag)? And how is this an issue on a project that has had 5 commits in the last 2 years?
When you use lots and lots of tools, it becomes a nightmare tracking the deployed versions of the tools. When no version numbers are tagged and release in git.
Some tools preserve an exception degree of backwards compatibility with older tools. However, as a DevOp I cannot condone assuming that every component is backwards compatible or even semver compliant. Pinning versions represents an efficient, scalable, very low effort way to prevent prod fires.
You can pin versions even when there are no tags/releases. E.g., run
go install github.com/gordonklaus/ineffassign@latest
to install the latest version. If you don't already have the latest version, you will see some output like
go: downloading github.com/gordonklaus/ineffassign v0.0.0-20231029092448-a64629a78249
where v0.0.0-20231029092448-a64629a78249
is the latest version. Later, you can install that exact version by running
go install github.com/gordonklaus/ineffassign@v0.0.0-20231029092448-a64629a78249
You can see which version you have installed by running ineffassign --version
.
I've tagged v0.1.0
now.
Again, a hash is not a DevOps or human friendly way to manage components. It's the opposite of semver. No useful information regarding backwards or forwards compatibility is present in such a kludge. Because it's not any kind of version number.
On Sun, Oct 29, 2023, 4:37 AM Gordon Klaus @.***> wrote:
You can pin versions even when there are no tags/releases. E.g., run
go install @.***
to install the latest version. If you don't already have the latest version, you will see some output like
go: downloading github.com/gordonklaus/ineffassign v0.0.0-20231029092448-a64629a78249
where v0.0.0-20231029092448-a64629a78249 is the latest version. Later, you can install that exact version by running
go install @.***
You can see which version you have installed by running ineffassign --version.
I've tagged v0.1.0 now.
— Reply to this email directly, view it on GitHub https://github.com/gordonklaus/ineffassign/issues/84#issuecomment-1784048210, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAABJRFHYJN2ID3XEMBP44TYBYIURAVCNFSM6AAAAAA3K5LC22VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBUGA2DQMRRGA . You are receiving this because you authored the thread.Message ID: @.***>
Hi,
Can we please get conventional versions tagged and released? Version numbers help DevOps to prevent breaking changes from running amok.
As a workaround, we can probably
go install
... using the raw git hash so that we pin against some immutable VCS ref. Still gross.