VenvExecutor fails to install a connector package if it has the wrong executable name
natikgadzhi opened this issue · 0 comments
natikgadzhi commented
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 ;)