josephburnett / jd

JSON diff and patch
MIT License
826 stars 38 forks source link

1.5.1 release and assets gone #41

Closed andreineculau closed 2 years ago

andreineculau commented 2 years ago

I understand from https://github.com/josephburnett/jd/issues/40#issuecomment-1032662800 that there is no change from 1.5.0 to 1.5.1 but it is still NOT OK to delete a git tag, a release and its assets. They should be ephemeral.

All of us developing OSS have zero responsibility for keeping things around, so I don't want to be misunderstood - I only have great appreciation for you having developed and let jd in the wild -, but if this is more than just a miss, it would be great to be clear about it. It's a miss on my side to include a dependency to my builds, only to have them fail less than a week after.

🙇

josephburnett commented 2 years ago

This was my mistake. I've created a new v1.5.1 release so your broken links should work now.

I would like to understand more about how this broke you. Are you downloading the binaries from the release URL? It seems people get jd in many different ways (go get, download binaries, compile from source, import as library). I've implemented mechanisms to make sure I didn't break any of them (twice), e.g. https://github.com/josephburnett/jd/issues/28#issuecomment-779435956. And I want to make sure I don't break anyone in this way again.

Here is what I did:

  1. built the v1.5.0 binaries
  2. tagged v1.5.0 (but didn't create a release)
  3. removed docker from the build process because it was failing
  4. tagged v1.5.1 without the docker build
  5. created a v1.5.1 release, but forgot to update the binaries to have the 1.5.1 version number, so the artifacts didn't match the release number (confusing)
  6. rather than rebuild all the binaries, I renamed the release from v1.5.1 to v1.5.0 (MISTAKE)

I didn't change any tags or commits, or remove any artifacts. However the release URL changed which I didn't anticipate would break anyone.

Anyway, sorry about the inconvenience. Can you confirm the mechanism of breakage? And then I'll add some validation to the Makefile.

andreineculau commented 2 years ago

Hi Joseph. Thanks 🙏

Indeed I'm downloading the binaries from the release url. Why would I want to do that? one might ask. (un)fortunately we live in a world of json/yaml but also low-level containers, which means you need standalone tools to properly interact with various configurations stored in json/yaml at an early stage, before you even get to download a programming language with a json/yaml library. For future readers, do know that there are some bash-based solutions like

but some containers don't even have bash installed, let alone tools to aid in diffing.

So this is where jq and now jd come at play (for me), and that is why I cannot efficiently do anything but download the binaries, and expect there's no dynamic linking.

Glad to read this was a miss. People underestimate how important it is to diff semantically, not just diff text, so thanks for creating jd. Happy camper right here 🙇 🙋