aaronsteers
07/29/2020, 2:59 AMdiscovery.yml?
Option 1C: And this is in addition to Option 1B - Can Meltano, through platform usage reporting, allow users to opt-in to send back what setting combinations they are running with each plugin? Obviously, we would send back just the name of the settings used and not their values. But essentially, as users debug what combination of settings work for a given tap or target, they are helping improve the platform by providing stats back to us on what setting values are supported and usable for each tap and target.douwe_maan
07/29/2020, 4:13 PMOption 1A: The impactical-but-ideal solution would be that we push something machine readable (similar to discovery.yml but only one tap/target per doc) to each plugin's github repo. Then the metadata becomes scannable and it's supported in a decentralized manner by the owners of each repo.This would be cool, but I think the first step would be to get to a place where all taps and targets actually clearly document their settings in the README. That's something that can be easily contributed to existing taps as well, doesn't require maintainer buy-in into this new (Meltano-specific?) metadata format, and benefits all users of these Singer taps, not just those using smart tools that can detect metadata. If taps document their settings, they'll be easy to copy over into Meltano's plugin definition, and as taps add new settings that Meltano users will want to use, these users can contribute these back to
discovery.yml .
Option 1B: Given that 1A is not practical (at least not immediately so), I wonder if the Meltano platform would tolerate/support some ambiguity and flexibility into users specifying "other settings" - being not-yet-centrally-exposed-settings. Easy example: I'm using a tap and that tap adds "use_ssl" as an optional config. Can I specify that optional config even if it's not inMeltano actually already has full support for custom settings, although I'm realizing now that this isn't documented explicitly. (Issue created: https://gitlab.com/meltano/meltano/-/issues/2201) You can try it for yourself, though: run?discovery.yml
meltano config tap-example set use_ssl true (which sets the setting in meltano.yml ), and then notice it show up in meltano config tap-example and meltano config tap-example list .
Option 1C: And this is in addition to Option 1B - Can Meltano, through platform usage reporting, allow users to opt-in to send back what setting combinations they are running with each plugin? Obviously, we would send back just the name of the settings used and not their values. But essentially, as users debug what combination of settings work for a given tap or target, they are helping improve the platform by providing stats back to us on what setting values are supported and usable for each tap and target.Presumably, if a user figures out what combinations of settings work for a given tap or target, they will have found out either through reading the readme or diving into the source code to figure out how it's using
config.json and what keys it expects to find there.
At that point, they can directly contribute those findings back to the tap README and Meltano's discovery.yml , along with the appropriate settings metadata. While that process could be easier (not everyone is comfortable contributing on GitLab, for example), I don't think usage reporting is the answer, since that moves the responsibility of gathering the data and figuring out the metadata to us Meltano maintainers, instead of the actual user who got it working and would know first-hand what that metadata and updated docs should look like.douwe_maan
07/29/2020, 4:47 PMaaronsteers
07/29/2020, 4:56 PMaaronsteers
07/29/2020, 4:59 PMaaronsteers
07/29/2020, 5:10 PMdouwe_maan
07/29/2020, 5:14 PMdiscovery/<type>/<name>.yml , e.g. discovery/extractors/tap-gitlab.yml ), that could then be compiled into the greater discovery.yml that's for download at https://meltano.com/discovery.yml. That would make it easier for users to contribute new known taps and targets as well, since they wouldn't need to modify the one massive file.
Once that's supported, it wouldn't be much of a stretch to also compile remote plugin-specific definition YMLs into that file.douwe_maan
07/29/2020, 5:16 PMdouwe_maan
07/29/2020, 5:19 PMaaronsteers
07/29/2020, 5:23 PMdouwe_maan
07/29/2020, 5:25 PMaaronsteers
07/29/2020, 5:26 PMdouwe_maan
07/29/2020, 5:27 PMaaronsteers
07/29/2020, 6:03 PMdouwe_maan
07/29/2020, 6:06 PMdouwe_maan
07/29/2020, 6:07 PMaaronsteers
07/29/2020, 6:39 PM