uranusjr commented on code in PR #34714:
URL: https://github.com/apache/airflow/pull/34714#discussion_r1357874912


##########
INSTALL.md:
##########
@@ -0,0 +1,236 @@
+# INSTALL / BUILD instructions for Apache Airflow
+
+This is a generic installation method that requires a number of dependencies 
to be installed.
+
+Depending on your system you might need different prerequisites, but the 
following
+systems/prerequisites are known to work:
+
+Linux (Debian Bullseye and Linux Mint Debbie):
+
+      sudo apt install build-essential python3-dev libsqlite3-dev openssl \
+                 sqlite default-libmysqlclient-dev libmysqlclient-dev 
postgresql
+
+On Ubuntu 20.04 you may get an error of ```mariadb_config not found```
+and mysql_config not found.
+
+Install MariaDB development headers:
+
+      sudo apt-get install libmariadb-dev libmariadbclient-dev
+
+MacOS (Mojave/Catalina):
+
+      brew install sqlite mysql postgresql
+
+- [Optional] Fetch the tarball and untar the source move into the directory 
that was untarred.
+- [Optional] Run Apache RAT (release audit tool) to validate license headers
+- RAT docs here:
+  ```https://creadur.apache.org/rat/.```
+- Requires Java and Apache Rat:
+  
+      java -jar apache-rat.jar -E ./.rat-excludes -d
+- [Required] Instead of fetching and untarring the source tarball, you can use 
`pip` to directly install Apache Airflow with a specified version.
+
+      pip install apache-airflow==<version>
+
+**[optional] Airflow pulls in quite a lot of dependencies in order
+to connect to other services. You might want to test or run Airflow
+from a virtual env to make sure those dependencies are separated
+from your system wide versions**
+
+      python3 -m venv PATH_TO_YOUR_VENV 
+      source PATH_TO_YOUR_VENV/bin/activate
+
+**[Required] Building and installing by pip (preferred)**
+
+      pip install .
+
+
+**You can also install recommended version of the dependencies by using
+constraint- ```python<PYTHON_MAJOR_MINOR_VERSION>.txt``` files as constraint 
file. This is needed in case
+you have problems with installing the current requirements from PyPI.
+There are different constraint files for different python versions. For 
example:**
+
+      pip install . \
+        --constraint 
"https://raw.githubusercontent.com/apache/airflow/constraints-main/constraints-3.8.txt";
+
+
+By default `pip install` in Airflow 2.0 installs only the provider packages 
that are needed by the extras and
+install them as packages from PyPI rather than from local sources:
+
+      pip install .[google,amazon] \
+        --constraint 
"https://raw.githubusercontent.com/apache/airflow/constraints-main/constraints-3.8.txt";
+
+
+You can upgrade just airflow, without paying attention to provider's 
dependencies by using 'constraints-no-providers'
+constraint files. This allows you to keep installed provider packages.
+
+      pip install . --upgrade \
+        --constraint 
"https://raw.githubusercontent.com/apache/airflow/constraints-main/constraints-no-providers-3.8.txt";
+
+
+You can also install airflow in "editable mode" (with `-e`) flag and then 
provider packages are
+available directly from the sources (and the provider packages installed from 
`PyPI` are UNINSTALLED in
+order to avoid having providers in two places. And `provider.yaml` files are 
used to discover capabilities
+of the providers which are part of the airflow source code.
+
+You can read more about `provider.yaml` and community-managed providers in
+`https://airflow.apache.org/docs/apache-airflow-providers/index.html` for 
developing custom providers
+and in ``CONTRIBUTING.rst`` for developing community maintained providers.
+
+This is useful if you want to develop providers:
+
+      pip install -e . \
+        --constraint 
"https://raw.githubusercontent.com/apache/airflow/constraints-main/constraints-3.8.txt";
+
+You can also skip installing provider packages from `PyPI` by setting 
`INSTALL_PROVIDERS_FROM_SOURCE` to "true".
+In this case Airflow will be installed in non-editable mode with all providers 
installed from the sources.
+Additionally `provider.yaml` files will also be copied to providers folders 
which will make the providers
+discoverable by Airflow even if they are not installed from packages in this 
case.
+
+      INSTALL_PROVIDERS_FROM_SOURCES="true" pip install . \
+        --constraint 
"https://raw.githubusercontent.com/apache/airflow/constraints-main/constraints-3.8.txt";
+
+Airflow can be installed with extras to install some additional features (for 
example 'async' or 'doc' or
+to install automatically providers and all dependencies needed by that 
provider:
+
+      pip install .[async,google,amazon] \
+        --constraint 
"https://raw.githubusercontent.com/apache/airflow/constraints-main/constraints-3.8.txt";
+
+The list of available extras:

Review Comment:
   Are extras still recommended for deployment? IIRC they are mostly kept only 
for compatibility, and for an actual production installation it is recommended 
to install the actual providers you want instead, which would pull in the 
dependencies themselves.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@airflow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to