Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement provider versioning tools #13767

Merged
merged 2 commits into from
Feb 1, 2021

Conversation

potiuk
Copy link
Member

@potiuk potiuk commented Jan 19, 2021

This change implements per-provider versioning tools. Version of the
providers is retrieved from provider.yaml file (top-level verion).
Documentation is generated in the documentation folder rather than
in sources and embedded in provider's index. Backport providers
remain as they were until we delete all the backport references in
April 2021 nd then the code can be simplified and the
backport functionality can be removed then.

When generating multiple providers, only those that have version
that has no corresponding providers-<PROVIDER>/<VERSION> are
generated. Other providers are skipped with warnings.

Fixes: #13272, #13271, #13274, #13276, #13277, #13275, #13273


^ Add meaningful description above

Read the Pull Request Guidelines for more information.
In case of fundamental code change, Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in UPDATING.md.

@potiuk
Copy link
Member Author

potiuk commented Jan 19, 2021

Hey - especially @kaxil and @ashb - you've been waiting for this one and I think it is finally ready for review.

I've refactored the original code of 'prepare_provider_packages.py" to simplify it a bit and to prepare for removal of backports in a few month's time. It should still work fine for backports (we will see it soon in CI) - but I mainly focused on getting the workflow agreed before in #11425 (comment)

I separated it out into two ommits:

  • First commit smply reshufles the generated documentation - it removes the old one generated and replaces them with just CHANGELOG.rst that will be kept per-provider.
  • The second one implements the logic that allows to prepare and release the providers in bulk.

I described all the process in the dev/readme\s as usual, but this time iI also explained how you can easily debug the process step by step by manually running all the scripts. You do not have to use breeze to prepare provider's documentation you can simply follow the "debugging" steps explained in dev/README.md:

  1. import check - to check if all provider classes can be imported
  2. verification if all provider classes are properly named
  3. preparing the documentation - either for selected or for all providers that are ready for it
  4. generating setup/manifest/provider_info fikes - either for selected or for all providers that are ready for it
  5. preparing the packages

Breeze encapsulates all of that in two commands, and has support for "bulk" operations on multiple providers. So for the "release" process breeze should be rather useful.

More about how the process looks like from the release manager perspective:

  1. Preparing the release documentation and reviewing providers to release

First, you can quickly see which packages should be released. When running ./breeze prepare-provider-documentation without any parameters, it will loop through all providers and prints changes vs. the last release. Additio
naly, if already there is a new version set for a package in 'provider.yaml' it will update the documentation for that provider and update the index.rst of the provider with the appropriate information:

This is what you will see for packages that do not have a new version set in provider.yaml :

Screenshot from 2021-01-19 18-35-49

This way you will see the summary of all those changes and providers that might be candidates for releases. The summary of changes has all the links to commits - you can click through from the terminal directly.

Additionally, you will see information if all the provider classes are properly named (the step will fail here and tell you if they are not):

Screenshot from 2021-01-19 19-02-49

For packages that already have a new version in provider.yaml (in our case I set 2.0.0 for the upcoming release of Google provider) you will see the information that the index has been updated and "diff" of the index.rst vs. the last time it was generated:

Screenshot from 2021-01-19 18-36-59

As a release manager, you can re-run this after merging new commits and it will be correctly updated (and you will see the incremental diffs every time you update). it's safe to commit those updated index.rst files.

At the end of such run, you will see a summary showing for which packages documentation was generated and for which it was skipped (or errors). Skipped is when no newer version was added to provider.yaml vs. the already released and tagged one:

Screenshot from 2021-01-19 18-43-16

The documentation generated is added to index.rst in the "doc" folder, so when we release the docs, we can simply point to it from the README (rather than add the changelog to the package README). The documentation in the provider's index contains both - High Level CHANGELOG.rst content and detailed per-commit changelog.

You can see example Google Provider 2.0 docs generated this way: http://gabby-cough.surge.sh/

Once you (as release manager) update versions of the providers in other provider.yaml files this
./breeze prepare-provider-documentation command can be rerun and documentation for all the providers ready to
released will be updated automatically in-bulk (and only for those). All the providers that have the same version as already released tags, will be skipped.

  1. Generating the providers

Similar to generating documentation, provider packages can be generated in-bulk:

./breeze prepare-provider-packages --package-format both

The above will go through all providers and generate the providers which are ready to be released (i.e those that have updated version in provider.yaml (and hopefully documentation generated and committed in the previous step). You will see the information about skipped packages (and why they are skipped) and green confirmation for those packages that are generated:

Google one:
Screenshot from 2021-01-19 19-05-37

and neo4j (it has never been generated so this is the first time it is generated):

Screenshot from 2021-01-19 19-08-57

At the end you will see the summary showing the generated/skipped/errored packages:

Screenshot from 2021-01-19 19-09-19

I think it is quite robust already, and the same code is run in the CI, so I hope it will be green soon, in the meantime - that's quite a lot of code, so probably good time to start reviewing.

Unfortunately the change is significant and it's hard to split it , the best split I could do is to separate out the "docs" from the code (which I did - in separate commits). But I am also open if you have other suggestions on how to split it (but i think it ain't easy).

@potiuk
Copy link
Member Author

potiuk commented Jan 19, 2021

Also - here is the content of README.md file generated for Google 2.0.0 package (this is what will be available in PyPI).

As discussed in #11425 the content is much shorter - it contains only the most important information and link to detailed release notes (basically to this page: http://gabby-cough.surge.sh/) . Note that those pages eventually will contain changelogss for all the previous versions as well (we will incrementally add new versions to the changelo - latest at the top).

# Package apache-airflow-providers-google

Release: 2.0.0

**Table of contents**

- [Provider package](#provider-package)
- [Installation](#installation)
- [PIP requirements](#pip-requirements)
- [Cross provider package dependencies](#cross-provider-package-dependencies)

## Provider package

This is a provider package for `google` provider. All classes for this provider package
are in `airflow.providers.google` python package.

You can find detailed changelog for the provider
in the [documentation](https://airflow.apache.org/docs/apache-airflow-providers-google/stable/index.html)

## 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 apache-airflow-providers-google`

## PIP requirements

| PIP package                          | Version required   |
|:-------------------------------------|:-------------------|
| `PyOpenSSL`                          |                    |
| `google-ads`                         | `>=4.0.0,<8.0.0`   |
| `google-api-python-client`           | `>=1.6.0,<2.0.0`   |
| `google-auth-httplib2`               | `>=0.0.1`          |
| `google-auth`                        | `>=1.0.0,<2.0.0`   |
| `google-cloud-automl`                | `>=2.1.0,<3.0.0`   |
| `google-cloud-bigquery-datatransfer` | `>=3.0.0,<4.0.0`   |
| `google-cloud-bigtable`              | `>=1.0.0,<2.0.0`   |
| `google-cloud-container`             | `>=0.1.1,<2.0.0`   |
| `google-cloud-datacatalog`           | `>=3.0.0,<4.0.0`   |
| `google-cloud-dataproc`              | `>=2.2.0,<3.0.0`   |
| `google-cloud-dlp`                   | `>=0.11.0,<2.0.0`  |
| `google-cloud-kms`                   | `>=2.0.0,<3.0.0`   |
| `google-cloud-language`              | `>=1.1.1,<2.0.0`   |
| `google-cloud-logging`               | `>=1.14.0,<2.0.0`  |
| `google-cloud-memcache`              | `>=0.2.0`          |
| `google-cloud-monitoring`            | `>=0.34.0,<2.0.0`  |
| `google-cloud-os-login`              | `>=2.0.0,<3.0.0`   |
| `google-cloud-pubsub`                | `>=2.0.0,<3.0.0`   |
| `google-cloud-redis`                 | `>=2.0.0,<3.0.0`   |
| `google-cloud-secret-manager`        | `>=0.2.0,<2.0.0`   |
| `google-cloud-spanner`               | `>=1.10.0,<2.0.0`  |
| `google-cloud-speech`                | `>=0.36.3,<2.0.0`  |
| `google-cloud-storage`               | `>=1.30,<2.0.0`    |
| `google-cloud-tasks`                 | `>=2.0.0,<3.0.0`   |
| `google-cloud-texttospeech`          | `>=0.4.0,<2.0.0`   |
| `google-cloud-translate`             | `>=1.5.0,<2.0.0`   |
| `google-cloud-videointelligence`     | `>=1.7.0,<2.0.0`   |
| `google-cloud-vision`                | `>=0.35.2,<2.0.0`  |
| `grpcio-gcp`                         | `>=0.2.2`          |
| `json-merge-patch`                   | `~=0.2`            |
| `pandas-gbq`                         |                    |

## 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:

pip install apache-airflow-providers-google[amazon]


| Dependent package                                                                             | Extra              |
|:----------------------------------------------------------------------------------------------|:-------------------|
| [apache-airflow-providers-amazon](https://airflow.apache.org/docs/amazon)                     | `amazon`           |
| [apache-airflow-providers-apache-cassandra](https://airflow.apache.org/docs/apache-cassandra) | `apache.cassandra` |
| [apache-airflow-providers-cncf-kubernetes](https://airflow.apache.org/docs/cncf-kubernetes)   | `cncf.kubernetes`  |
| [apache-airflow-providers-facebook](https://airflow.apache.org/docs/facebook)                 | `facebook`         |
| [apache-airflow-providers-microsoft-azure](https://airflow.apache.org/docs/microsoft-azure)   | `microsoft.azure`  |
| [apache-airflow-providers-microsoft-mssql](https://airflow.apache.org/docs/microsoft-mssql)   | `microsoft.mssql`  |
| [apache-airflow-providers-mysql](https://airflow.apache.org/docs/mysql)                       | `mysql`            |
| [apache-airflow-providers-oracle](https://airflow.apache.org/docs/oracle)                     | `oracle`           |
| [apache-airflow-providers-postgres](https://airflow.apache.org/docs/postgres)                 | `postgres`         |
| [apache-airflow-providers-presto](https://airflow.apache.org/docs/presto)                     | `presto`           |
| [apache-airflow-providers-salesforce](https://airflow.apache.org/docs/salesforce)             | `salesforce`       |
| [apache-airflow-providers-sftp](https://airflow.apache.org/docs/sftp)                         | `sftp`             |
| [apache-airflow-providers-ssh](https://airflow.apache.org/docs/ssh)                           | `ssh`              |

@github-actions
Copy link

The Workflow run is cancelling this PR. It has some failed jobs matching ^Pylint$,^Static checks,^Build docs$,^Spell check docs$,^Backport packages$,^Provider packages,^Checks: Helm tests$,^Test OpenAPI*.

@github-actions
Copy link

The Workflow run is cancelling this PR. Building image for the PR has been cancelled

@github-actions
Copy link

The Workflow run is cancelling this PR. Building images for the PR has failed. Follow the the workflow link to check the reason.

@potiuk potiuk force-pushed the version-per-provider branch from af27fbf to 8cef255 Compare January 19, 2021 20:08
@github-actions
Copy link

The Workflow run is cancelling this PR. Building images for the PR has failed. Follow the the workflow link to check the reason.

@kaxil
Copy link
Member

kaxil commented Jan 19, 2021

will take a look tomorrow


{{ CROSS_PROVIDERS_DEPENDENCIES_TABLE_RST | safe }}

{%- endif %}
Copy link
Member

@mik-laj mik-laj Jan 20, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In my opinion, this page has too much content and some are missing (but the missing ones do not need to be added now). I like the README files. which is available in the documentation of Google libraries. https://googleapis.dev/python/firestore/latest/index.html
It is standardized too, but contains all the information you need.

  1. Starting at the top. So I think it's worth adding a description of the package itself. This information is available in the provider.yaml file, although so far the descriptions are not very. precise.h ttps://github.com/apache/airflow/blob/1602ec97c8d5bc7a7a8b42e850ac6c7a7030e47d/airflow/provider.yaml.schema.json#L13-L16
    I hope that we will be able to prepare descriptions in the future gradually, but so far I have made a minimum step and added a link to the product page for each provider.

  2. The next step is to link to the documentation, if we want to use the same file in setup.py and in the documentation. This will make it easier to find the documentation when you are in pypi.

We have these links in the side menu, but this is quite a new feature and not everyone uses this menu. Especially on mobile devices, I start reading from the package description, not the side menu.
Screenshot 2021-01-20 at 03 10 13

  1. The division into a detailed changelog and a normal changelog is strange for me. As for me, the contents of the ADDITIONAL_INFO.rst file should be a normal documentation page and have the title "Migration guide" because this is exactly what this file contains. As this file is fully human written, I don't think other scripts need to process it as well.

  2. I think the detailed changelog and migration guides worth moving to new subpages, because it is not important for the new user. This then will look similar to the Google documentation
    Screenshot 2021-01-20 at 03 16 53.
    When we move the guides to new pages, we will also be able to easily prepare the migration guide from Airflow 1.10, because we already have a table that facilitates these migrations.

Screenshot 2021-01-20 at 03 21 33

  1. The links in the table use markdown syntax instead of rst.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In my opinion, this page has too much content and some are missing (but the missing ones do not need to be added now). I like the README files. which is available in the documentation of Google libraries. https://googleapis.dev/python/firestore/latest/index.html
It is standardized too, but contains all the information you need.

  1. Starting at the top. So I think it's worth adding a description of the package itself. This information is available in the provider.yaml file, although so far the descriptions are not very. precise.h ttps://github.com/apache/airflow/blob/1602ec97c8d5bc7a7a8b42e850ac6c7a7030e47d/airflow/provider.yaml.schema.json#L13-L16

Sure. Happy to add it. This will be easy to incorporate.

  1. The next step is to link to the documentation, if we want to use the same file in setup.py and in the documentation. This will make it easier to find the documentation when you are in pypi.

I thiink the PyPI and documentation should be different than documentation. PyPI should be more focused on how to install packages and what are the limitations/requirements, but the "full" documentation" should be reached (including the ChangeLog which I think should not be part of README as it will grow over tim). This is how I approached it and I think this is a better idea than to keep the same documentation index and README.

We have these links in the side menu, but this is quite a new feature and not everyone uses this menu. Especially on mobile devices, I start reading from the package description, not the side menu.

Yeah. I will modify setup.cfg to include few more links (Documentation especially).

  1. The division into a detailed changelog and a normal changelog is strange for me. As for me, the contents of the ADDITIONAL_INFO.rst file should be a normal documentation page and have the title "Migration guide" because this is exactly what this file contains. As this file is fully human written, I don't think other scripts need to process it as well.

ADDITIONAL_INFO is for backport providers. IMHO this README is something that will evolve evertime. ADDITIONAL_INFO was more about migrating from 1.0 to backports. Effectively CHANGELOG should be written by human as a summary of changes in each version. The assumption is that there will be very rare "migration needed" for those. Google provider is a bit different than the others, because we migrate python APIs. But in most other packages this will not be a migration guide but human description on what changed in each version. Which I think CHANGELOG is a great name for.

  1. I think the detailed changelog and migration guides worth moving to new subpages, because it is not important for the new user. This then will look similar to the Google documentation

Sure. The Detailed guide can be added as a separate page in the docs and linked to. I thought about it as well. Happy to hear why others think but I think we should have this:

  • README.md in PyPI describing gerneral "what it is about" + all things important to installing PyPI + link to the Provider "index" documentation

  • Provider's index documentation with the same information added + link to detailed commit changelog. It might contain more information (but each Provider is free to add it in the index.rst above the automatically generated part). I do not want to discuss "standard" for this documentation here - we can discuss it separately. In this change I only want to focus on automatically generated part.

  • Detailed changelog - this might be separate page (happy to name it differently if someone has a good proposal).

When we move the guides to new pages, we will also be able to easily prepare the migration guide from Airflow 1.10, because we already have a table that facilitates these migrations.

We already have it in Backport providers. I think Provider's documentation should be more "forward" looking rather than focuing in the migration from 1.10.
We might instead point out to backport's PYPI readme and mention that for migration from 1.10 people

  1. The links in the table use markdown syntax instead of rst.

I think I fixed that, but I can take a look.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

human description on what changed in each version. Which I think CHANGELOG is a great name for.

I am afraid nobody will write it by hand. Google automatically generates CHANGELOG.md files. Everyone has similar references to Github.
https://github.com/googleapis/python-bigquery/blob/master/CHANGELOG.md
googleapis/python-bigquery@b0e074f
To generate the changelog, they use thegoogleapis/release-please tool, which analyzes the message and generates a changelog based on it.

Release Please assumes you are using Conventional Commit messages.

The most important prefixes you should have in mind are:

fix: which represents bug fixes, and correlates to a SemVer patch.
feat: which represents a new feature, and correlates to a SemVer minor.
feat!:, or fix!:, refactor!:, etc., which represent a breaking change (indicated by the !) and will result in a SemVer major.

In the first version, I think that we don't need the changes to be divided into several categories, although that would be super functional, we can limit ourselves to listing the changes. If we publish these packages regularly, each release will not have a very long list of changes.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like what you have suggested here Jarek.

  • Concise README
  • Link to commit changelog
  • detailed changelog is the Updating guide right?

Copy link
Member

@mik-laj mik-laj Jan 21, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kaxil For now, I can see that we have two changelogs, one with only a list of breaking changes and the detailed changelog with a list of all commits.
http://gabby-cough.surge.sh/#changelog
We don't have any updating guide yet.

I only suggest changing the name from "Changelog" to "Upgrading guide" and from "Detailed changelog" to "Changelog", because I am concerned that we will be able to maintain the changelog if we have as many contributions as we do now. After time, I suspect we'll be creating a handwritten changelog by copying only the titles of a few changes.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also one small comment here.

Looking at https://apache-airflow.slack.com/archives/CCR6P6JRL/p1611225089006700 - this is why I think we should have the detailed commit log (as a separate document linked from the index). Users are sometimes aware of the PRs they are interested in and want to know in which version they were included. And it's not very easy to find it out. We will have a separate set of tags for each provider, so for some people, it would be great to have it in this nicely formatted document rather than having to run some complex git commands to find out.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh we should definitely have a Changelog which contains the commit log whether it is automated or done manually

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will make it separate page then next to index.rst and link to it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will also add a few hyperlinks here and there, so that we will be able to freely jump between those different pages -

  • README in PyPI,
  • index.rst in docs
  • commit changes in docs

Those will be interlinked with version numbers so that we will be able to jump from PYPI 2.0.0 package straight to detailed commit log for 2.0.0 and 2.0.0 Changelog (and all the cross-links between those).

airflow/providers/res.txt Outdated Show resolved Hide resolved
BREEZE.rst Show resolved Hide resolved
BREEZE.rst Outdated Show resolved Hide resolved
-->


# Package apache-airflow-providers-amazon
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't want this Readme, but I thought we will generate the new readme -- is that only during release ? Would be good to have it here

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah. Only during release. We do not really need them here. There is very little value in keeping them in the repo, they will be available in PyPI. But If you really think they are needed, I can add them back. I just thought - since we already have the information there in setup.py, dependencies.json , the value of having it in the repo is very little. But I can be convince otherwise..

@@ -0,0 +1,61 @@
./salesforce
./celery
./amazon
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah not sure what this file is about

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Debug file :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file needs to be removed right?

@github-actions
Copy link

The Workflow run is cancelling this PR. Building images for the PR has failed. Follow the the workflow link to check the reason.

BREEZE.rst Outdated Show resolved Hide resolved
breeze Outdated Show resolved Hide resolved
This change implements per-provider versioning tools. Version of the
providers is retrieved from provider.yaml file (top-level verion).
Documentation is generated in the documentation folder rather than
in sources and embedded in provider's index. Backport providers
remain as they were until we delete all the backport references in
April 2021 nd then the code can be simplified and the
backport functionality can be removed then.

When generating multiple providers, only those that have version
that has no corresponding `providers-<PROVIDER>/<VERSION>` are
generated. Other providers are skipped with warnings.

Old documentation is removed and new CHANGELOG.rst have been
prepared for all providers to accomodate to the new process
(which is comming as a follow-up commit)

Fixes: apache#13272, apache#13271, apache#13274, apache#13276, apache#13277, apache#13275, apache#13273
@potiuk potiuk force-pushed the version-per-provider branch from 9461fb0 to f79cf30 Compare February 1, 2021 12:11
@potiuk
Copy link
Member Author

potiuk commented Feb 1, 2021

Fixed comments @turbaszek and rebased to latest master: I also run it in my fork's master to verify no typos etc. https://github.com/potiuk/airflow/actions/runs/527627362

@potiuk
Copy link
Member Author

potiuk commented Feb 1, 2021

@github-actions
Copy link

github-actions bot commented Feb 1, 2021

The Workflow run is cancelling this PR. Building images for the PR has failed. Follow the the workflow link to check the reason.

airflow/providers/res.txt Outdated Show resolved Hide resolved
@potiuk potiuk force-pushed the version-per-provider branch from f79cf30 to 28c96ee Compare February 1, 2021 15:04
@potiuk potiuk merged commit ac2f72c into apache:master Feb 1, 2021
@potiuk potiuk deleted the version-per-provider branch February 1, 2021 15:46
potiuk added a commit that referenced this pull request Mar 3, 2021
This change implements per-provider versioning tools. Version of the
providers is retrieved from provider.yaml file (top-level verion).
Documentation is generated in the documentation folder rather than
in sources and embedded in provider's index. Backport providers
remain as they were until we delete all the backport references in
April 2021 nd then the code can be simplified and the
backport functionality can be removed then.

When generating multiple providers, only those that have version
that has no corresponding `providers-<PROVIDER>/<VERSION>` are
generated. Other providers are skipped with warnings.

Old documentation is removed and new CHANGELOG.rst have been
prepared for all providers to accomodate to the new process
(which is comming as a follow-up commit)

Fixes: #13272, #13271, #13274, #13276, #13277, #13275, #13273
(cherry picked from commit ac2f72c)
potiuk added a commit that referenced this pull request Mar 3, 2021
This change implements per-provider versioning tools. Version of the
providers is retrieved from provider.yaml file (top-level verion).
Documentation is generated in the documentation folder rather than
in sources and embedded in provider's index. Backport providers
remain as they were until we delete all the backport references in
April 2021 nd then the code can be simplified and the
backport functionality can be removed then.

When generating multiple providers, only those that have version
that has no corresponding `providers-<PROVIDER>/<VERSION>` are
generated. Other providers are skipped with warnings.

Old documentation is removed and new CHANGELOG.rst have been
prepared for all providers to accomodate to the new process
(which is comming as a follow-up commit)

Fixes: #13272, #13271, #13274, #13276, #13277, #13275, #13273
(cherry picked from commit ac2f72c)
potiuk added a commit that referenced this pull request Mar 3, 2021
This change implements per-provider versioning tools. Version of the
providers is retrieved from provider.yaml file (top-level verion).
Documentation is generated in the documentation folder rather than
in sources and embedded in provider's index. Backport providers
remain as they were until we delete all the backport references in
April 2021 nd then the code can be simplified and the
backport functionality can be removed then.

When generating multiple providers, only those that have version
that has no corresponding `providers-<PROVIDER>/<VERSION>` are
generated. Other providers are skipped with warnings.

Old documentation is removed and new CHANGELOG.rst have been
prepared for all providers to accomodate to the new process
(which is comming as a follow-up commit)

Fixes: #13272, #13271, #13274, #13276, #13277, #13275, #13273
(cherry picked from commit ac2f72c)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add tags for every provider
5 participants