Emit STATE values to stdout instead of the whole state message#142
Conversation
This fixes datamill-co#141 and should improve https://gitlab.com/meltano/meltano/issues/884. Before this change, target-postgres worked slightly differently than the other taps out there and wrote incoming STATE messages to stdout as the full content of the mesage, including the `{"value": ...}` wrapper around the opaque STATE JSON. Other taps, including the official s`inger-target-template`, don't write out that `value` wrapper, and just write the JSON blob contained in it. This brings target-postgres inline with the other targets and the defacto rule.
|
Also of note is that this is a breaking change and I think merits a new version. Sorry about that! |
|
@awm33 curious as to your thoughts on whether we should bump the major, minor, or patch for this change? |
|
Sounds like it would break existing versions so major bump https://semver.org/. Unless you put it behind a flag, then minor bump. Then in the next major release you could remove the flag and make it the default behavior |
|
@AlexanderMann @airhorns @aroder I don't really have a strong release opinion, but it seems the options are:
I just grab the latest version by default for most of my ad-hoc work, then lock in for client prod pipelines, so it all works fine for our work. |
|
My guess is that the major version bump would cause more pain for users who have to dive in and figure out what the breaking change was, which in most cases would be for a brand new feature they didn't use before, so I'd say a minor change would be the pragmatic approach. Definitely violates the letter of the semver spec but the spec also talks about how major version 0 is special and different and should allow big changes and less of an expectation of stability. |
|
I'm voting for putting this into a new minor release as this isn't really a patch, and I think anyone who is leveraging this functionality...is already finding it "broken". I'll wait till end of week to release in case others have strong opinions, but in my mind this would end up in |
This fixes #141 and should improve https://gitlab.com/meltano/meltano/issues/884.
Before this change, target-postgres worked slightly differently than the other taps out there and wrote incoming STATE messages to stdout as the full content of the mesage, including the
{"value": ...}wrapper around the opaque STATE JSON. Other taps, including the officialsinger-target-template, don't write out thatvaluewrapper, and just write the JSON blob contained in it.This brings target-postgres inline with the other targets and the defacto rule.