Hey all! I'd like to clone and make modifications ...
# singer-tap-development
j
Hey all! I'd like to clone and make modifications to
tap-snowflake
. I cloned it locally and followed the instructions to install it
meltano add --custom extractor
and using
-e ../tap-snowflake
but when I go to configure it, there aren't config options like there are if I add it regularly. Am i missing something about how
--custom
works? I'd assume that the configs are defined in the cloned tap already... Thanks for your help!
r
When a plugin is added from Meltano Hub, its definition is stored in a
.lock
file under the plugins directory - this is where you will find its
settings
. Since custom plugins by nature belong to a single project, they have to be fully defined in the
meltano.yml
- including
settings
. What you can do is add a custom plugin from the existing
tap-snowflake
Hub definition using
--from-ref
, modify the
pip_url
in the
meltano.yml
to point at your cloned fork directory, and then install the plugin.
Copy code
meltano add --no-install extractor tap-snowflake --from-ref <https://raw.githubusercontent.com/meltano/hub/main/_data/meltano/extractors/tap-snowflake/meltanolabs.yml>

# pip_url: -e ../tap-snowflake

meltano install --clean extractor tap-snowflake
You are correct about settings being defined in the tap code, but they also have to be defined in your project somewhere so Meltano can independently determine what configuration it should generate ahead of time. without actually invoking the tap. Also, across all the plugins that Meltano supports, there isn't a standard mechanism to retrieve the settings of a plugin, so it becomes Meltano's responsibility to define these in order to manage config for them.
🙌 2
j
Thank you so very much for this explanation. I'll try this out. I appreciate your thoroughness here.
🫡 1
r
No problem 🙂