gordonklaus / ineffassign

Detect ineffectual assignments in Go code.
MIT License
390 stars 22 forks source link

Publish tags and releases #84

Closed mcandre closed 8 months ago

mcandre commented 11 months ago

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.

gordonklaus commented 11 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?

mcandre commented 8 months ago

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.

gordonklaus commented 8 months ago

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.

mcandre commented 8 months ago

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: @.***>