airbytehq/PyAirbyte

VenvExecutor fails to install a connector package if it has the wrong executable name

natikgadzhi opened this issue · 0 comments

Problem

In airbytehq/airbyte#40693, we've been fixing source-braintree, and mistakenly set it's script name wrong:

[tool.poetry.scripts]
source-braintree = "source_braintree.run:run"

When pyairbyte tried to validate, it rightfully noticed that source-braintree is not a valid executable in the venv, and attempted reinstalling, but:

Successfully built source-braintree

...

Thank you for using PyAirbyte!
Anonymous usage reporting is currently enabled. For more information, please see https://docs.airbyte.com/telemetry
Creating source and validating spec is returned successfully...
Connector executable not found within the virtual environment at 
/airbyte-integrations/connectors/source-braintree/.venv-source-braintree/bin/sou
rce-braintree.
Reinstalling...
Installing 'source-braintree' into virtual environment 
'/airbyte-integrations/connectors/source-braintree/.venv-source-braintree'.
Running 'pip install airbyte-{connector_name}'...

So what happens here is that self.pip_url of the executor silently becomes connector_name. I see it defaults to self.name, but don't see the problem deeper. A nice puzzle if someone wants to tinker ;)