potiuk commented on a change in pull request #13767:
URL: https://github.com/apache/airflow/pull/13767#discussion_r561720939



##########
File path: dev/provider_packages/PROVIDER_INDEX_TEMPLATE.rst.jinja2
##########
@@ -0,0 +1,84 @@
+{#
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+ NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+ OVERWRITTEN WHEN PREPARING PACKAGES.
+
+ IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+ `PROVIDER_INDEX_TEMPLATE.rst.jinja2` IN the `provider_packages` DIRECTORY
+
+#}
+
+Package {{ PACKAGE_PIP_NAME }}
+------------------------------------------------------
+
+Release: {{ RELEASE }}{{ VERSION_SUFFIX }}
+
+Provider package
+----------------
+
+This is a provider package for ``{{PROVIDER_PACKAGE_ID}}`` provider. All 
classes for this provider package
+are in ``{{FULL_PACKAGE_NAME}}`` python package.
+
+Installation
+------------
+
+.. note::
+
+    On November 2020, new version of PIP (20.3) has been released with a new, 
2020 resolver. This resolver
+    does not yet work with Apache Airflow and might lead to errors in 
installation - depends on your choice
+    of extras. In order to install Airflow you need to either downgrade pip to 
version 20.2.4
+    ``pip install --upgrade pip==20.2.4`` or, in case you use Pip 20.3, you 
need to add option
+    ``--use-deprecated legacy-resolver`` to your pip install command.
+
+
+You can install this package on top of an existing airflow 2.* installation via
+``pip install {{PACKAGE_PIP_NAME}}``
+{%- if PIP_REQUIREMENTS %}
+
+PIP requirements
+----------------
+
+{{  PIP_REQUIREMENTS_TABLE_RST | safe}}
+{%- endif %}
+{%- if CROSS_PROVIDERS_DEPENDENCIES %}
+
+Cross provider package dependencies
+-----------------------------------
+
+Those are dependencies that might be needed in order to use all the features 
of the package.
+You need to install the specified backport providers package in order to use 
them.
+
+You can install such cross-provider dependencies when installing from PyPI. 
For example:
+
+.. code-block:: bash
+
+    pip install {{ PACKAGE_PIP_NAME }}[{{ CROSS_PROVIDERS_DEPENDENCIES[0] }}]
+
+
+{{ CROSS_PROVIDERS_DEPENDENCIES_TABLE_RST | safe }}
+
+{%- endif %}

Review comment:
       Just one comment here @kaxil @mik-laj about the naming/change process.
   
   I am not totally against naming it UPDATING.md, but I think we are confusing 
a bit airflow and providers release cycle.  I think we should get the naming 
right and content of this "manually written" parts.
   
   I believe  most of provider releases will be incremental updates - new 
hooks/operators added basically or new (backwards-compatible) changes in the 
operators. The changes that we have now in Google Providers are exception 
rather than rule. We only need to add the "upgrading" guide because we make 
backwards-incompatible changes due to 2.0 APIs. In vast majority of cases 
people should be able to do 'pip install --upgrade 
`apache-airflow-providers-<NN>` and there should be no need to follow any 
"updating" guide. This is the main premise of semver, which communicates 
breaking changes. The only time where we need to add "updating" information is 
when we go 1.0.0 -> 2.0.0 etc.
   
   
   Now - this means that vast majority of changes will be simply "new operator 
"xxx" added". That's why I think CHANGELOG.rst is a good name, and this is also 
a good name for the Heading in the docs.
   
   While idally indeed we should be able to automaticaly get it from semantic 
commits (and I am more and more convinced that we should switch to those), this 
is a decision that will time to discuss and vote and apply and it will take 
some time for people to adjust to, and we can do it as a follow-up. For now I 
think this will be very little overhead if we just agree between committers, 
that every time a new stuff is added to  provider, we ask the PR author to add 
entry in the CHANELOG.md and provider.yaml:
   
   1) Add new version in provider.yaml patchelevel number (for bugfixes) or 
minor version (for features)
   2) Add a line in CHANGELOG.txt to describe the change added.
   
   I think this makes it nicely distributed among the PR authors, and decreases 
a lot the work needed by release manager (@kaxil :) - then PR authors and 
commiters will take care about updating the versions and the role of release 
manager will be just to review whether everything was included. Remember that 
release manager will have to sometimes release 10-20 providers at a time and 
mostly providers that the release manager knows very little about, so the less 
work is put on the shoulders of that person, the better. 
   
   Let me know WDYT @kaxil @mik-laj and @ashb (I am mentioning @ashb here for 
the release management part mainly).
   
   




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to