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

Remove Tableau from Salesforce provider #23747

Merged
merged 3 commits into from
Jul 3, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions airflow/providers/salesforce/CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,17 @@
Changelog
---------

5.0.0
.....

Breaking changes
~~~~~~~~~~~~~~~~

* ``Remove Tableau from Salesforce provider (#23747)``

.. warning:: Due to tableau extra removal, ``pip install apache-airflow-providers-salesforce[tableau]``
will not work. You can install Tableau provider directly via ``pip install apache-airflow-providers-tableau``.

4.0.0
.....

Expand Down
26 changes: 0 additions & 26 deletions airflow/providers/salesforce/hooks/tableau.py

This file was deleted.

28 changes: 0 additions & 28 deletions airflow/providers/salesforce/operators/tableau_refresh_workbook.py

This file was deleted.

10 changes: 0 additions & 10 deletions airflow/providers/salesforce/provider.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ versions:
dependencies:
- apache-airflow>=2.2.0
- simple-salesforce>=1.0.0
- tableauserverclient
- pandas>=0.17.1

integrations:
Expand All @@ -54,17 +53,8 @@ operators:
- integration-name: Salesforce
python-modules:
- airflow.providers.salesforce.operators.salesforce_apex_rest
- airflow.providers.salesforce.operators.tableau_refresh_workbook

sensors:
- integration-name: Salesforce
python-modules:
- airflow.providers.salesforce.sensors.tableau_job_status

hooks:
- integration-name: Tableau
python-modules:
- airflow.providers.salesforce.hooks.tableau
- integration-name: Salesforce
python-modules:
- airflow.providers.salesforce.hooks.salesforce
Expand Down
16 changes: 0 additions & 16 deletions airflow/providers/salesforce/sensors/__init__.py

This file was deleted.

29 changes: 0 additions & 29 deletions airflow/providers/salesforce/sensors/tableau_job_status.py

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@


warnings.warn(
"""This operator is deprecated. Please use `airflow.providers.tableau.operators.tableau`.""",
"This module is deprecated. Please use `airflow.providers.tableau.operators.tableau`.",
DeprecationWarning,
stacklevel=2,
)
Expand Down
20 changes: 0 additions & 20 deletions docs/apache-airflow-providers-salesforce/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -89,28 +89,8 @@ PIP package Version required
``apache-airflow`` ``>=2.2.0``
``pandas`` ``>=0.17.1``
``simple-salesforce`` ``>=1.0.0``
``tableauserverclient``
======================= ==================

Cross provider package dependencies
Copy link
Member

Choose a reason for hiding this comment

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

Is it worth keeping a note here saying "want tableu? It's moved"?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That is covered by the change log of the provider :)

  1. If someone is currently using Tableau via Salesforce - the user is aware it's deprecated by warnings and will know it's removed by reading the change log.
  2. If someone never used Tableau before and searches for tableau provider I want him/her to land in Tableau docs rather than Salesforce docs only to be referred to Tableau provider.

Copy link
Member

@potiuk potiuk Jun 30, 2022

Choose a reason for hiding this comment

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

This is all good in general (but needs a note in CHANGELOG). We have "addional extra" - if somoene wants tableau they should install salesforce provider with ["tableau"] extra (or install [tableau]' extra in airflow or install apache-airflow-providers-extra'. But I agree we should add a note in the chanelog of salesforce. And answering the question of @ashb below - this is described actually in changelog.rst of each provider (kind of preparation to make them fully independent and splittable):

https://raw.githubusercontent.com/apache/airflow/main/airflow/providers/salesforce/CHANGELOG.rst

.. NOTE TO CONTRIBUTORS:
   Please, only add notes to the Changelog just below the "Changelog" header when there are some breaking changes
   and you want to add an explanation to the users on how they are supposed to deal with them.
   The changelog is updated and maintained semi-automatically by release manager.

Copy link
Member

Choose a reason for hiding this comment

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

Hmm. Looking at the build image failure in the PR. looks strange.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

added note 19f6ace

-----------------------------------

Those are dependencies that might be needed in order to use all the features of the package.
You need to install the specified provider packages in order to use them.

You can install such cross-provider dependencies when installing from PyPI. For example:

.. code-block:: bash

pip install apache-airflow-providers-salesforce[tableau]


====================================================================================================== ===========
Dependent package Extra
====================================================================================================== ===========
`apache-airflow-providers-tableau <https://airflow.apache.org/docs/apache-airflow-providers-tableau>`_ ``tableau``
====================================================================================================== ===========

Downloading official packages
-----------------------------

Expand Down
7 changes: 2 additions & 5 deletions generated/provider_dependencies.json
Original file line number Diff line number Diff line change
Expand Up @@ -551,12 +551,9 @@
"deps": [
"apache-airflow>=2.2.0",
"pandas>=0.17.1",
"simple-salesforce>=1.0.0",
"tableauserverclient"
"simple-salesforce>=1.0.0"
],
"cross-providers-deps": [
"tableau"
]
"cross-providers-deps": []
},
"samba": {
"deps": [
Expand Down
5 changes: 1 addition & 4 deletions scripts/in_container/verify_providers.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,6 @@ class ProviderPackageDetails(NamedTuple):
" for alternative uses",
"hdfs",
),
("This operator is deprecated. Please use `airflow.providers.tableau.operators.tableau`.", "salesforce"),
(
"You have an incompatible version of 'pyarrow' installed (4.0.1), please install a version that"
" adheres to: 'pyarrow<3.1.0,>=3.0.0; extra == \"pandas\"'",
Expand Down Expand Up @@ -211,9 +210,7 @@ class ProviderPackageDetails(NamedTuple):
"This module is deprecated. Please use `airflow.providers.microsoft.azure.sensors.cosmos`.",
"This module is deprecated. Please use `airflow.providers.amazon.aws.hooks.dynamodb`.",
"This module is deprecated. Please use `airflow.providers.microsoft.azure.transfers.local_to_wasb`.",
"This module is deprecated. Please use `airflow.providers.tableau.operators.tableau_refresh_workbook`.",
"This module is deprecated. Please use `airflow.providers.tableau.sensors.tableau_job_status`.",
"This module is deprecated. Please use `airflow.providers.tableau.hooks.tableau`.",
"This module is deprecated. Please use `airflow.providers.tableau.operators.tableau`.",
"This module is deprecated. Please use `kubernetes.client.models.V1Volume`.",
"This module is deprecated. Please use `kubernetes.client.models.V1VolumeMount`.",
(
Expand Down