PyPI package installation should be safe with regards to Airflow, i.e. it should respect its constraints and not break it in anyway. Typically, this would involve:
Applying Airflow's constraints file using the --constraint command argument.
Prefixing the installation with Airflow package each time, e.g.
The reason for repeatedly specifying Airflow packages even though they are already install is to make pip break if the required package has conflicting dependencies.
Acceptance Criteria
Implementation of safe-pip-install command that meets the requirements mentioned in the Overview section.
Replace all use of pip3 with safe-pip-install.
Automatically flag use of pip install else where and fail the build.
Overview
PyPI package installation should be safe with regards to Airflow, i.e. it should respect its constraints and not break it in anyway. Typically, this would involve:
--constraint
command argument.The reason for repeatedly specifying Airflow packages even though they are already install is to make
pip
break if the required package has conflicting dependencies.Acceptance Criteria
safe-pip-install
command that meets the requirements mentioned in the Overview section.pip3
withsafe-pip-install
.pip install
else where and fail the build.