florian-meyrueis-al opened a new issue, #59576: URL: https://github.com/apache/airflow/issues/59576
### Apache Airflow version Other Airflow 3 version (please specify below) ### If "Other Airflow 3 version" selected, which one? 3.1.3 ### What happened? Hi, When creating a private custom provider in airflow 3, the providers pages have a non existing documentation link associated with this provider : <img width="1375" height="44" alt="Image" src="https://github.com/user-attachments/assets/c9e6270f-e26d-462c-89a9-f3bf37935902" /> Here the link is : https://apache.airflow.com/docs/custom-provider/0.0.0 The provider doc specify that : If you want Airflow to link to documentation of your Provider in the providers page, make sure to add “project-url/documentation” [metadata](https://peps.python.org/pep-0621/#example) to your package. This will also add link to your documentation in PyPI. My pyproject has : [project.urls] documentation = "https://your-documentation-url.com" homepage = "https://your-homepage.com" repository = "https://github.com/your/repo" But i didn't change anything, the link is still the apache-airflow-doc url above. ### What you think should happen instead? We should be able to specify a custom url for this . It looks like that in provider-info.schema, nothing is ready for that : https://airflow.apache.org/docs/apache-airflow-providers/howto/create-custom-providers.html ### How to reproduce use this get_provider_info : ``` import importlib.metadata __version__ = importlib.metadata.version("custom-provider") def get_provider_info(): return { "package-name": "custom-provider", # Required "name": "custom-provider", # Required "description": "custom-provider", # Required "versions": [__version__], # Required "dependencies": ["apache-airflow>=3.1.3"], "config": { "custom-section": { "description": "Custom settings", "options": { "just-for-test": { "description": ( "Just for test setting" ), "type": "string", "version_added": "0.0.0", "example": "none", "default": "all", }, } } } } ``` And a package pyproject like : ``` [project] name = "custom-provider" version = "0.0.0" description = "custom provider" authors = [{name = "GDO Core platform", email = "[email protected]"}] classifiers = [ "Framework :: Apache Airflow", "Framework :: Apache Airflow :: Provider", ] requires-python = ">=3.12,<3.13" readme = "README.md" [project.urls] documentation = "https://your-documentation-url.com" homepage = "https://your-homepage.com" repository = "https://github.com/your/repo" [tool.poetry] requires-poetry = ">=2.0" packages = [{ include = "custom_provider"}] [build-system] requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning"] build-backend = "poetry.core.masonry.api" [tool.poetry-dynamic-versioning] enable = true bump = true pattern-prefix = "custom-provider-" pattern = "default-unprefixed" [project.entry-points."apache_airflow_provider"] _ = "custom_provider.provider:get_provider_info" [tool.black] line-length = 120 ``` ### Operating System Linux ### Versions of Apache Airflow Providers _No response_ ### Deployment Official Apache Airflow Helm Chart ### Deployment details _No response_ ### Anything else? I guess the problem lies in the code : airlfow-core/src/ui/src/pages/Providers.tsx Where i can see something like : ``` { accessorKey: "package_name", cell: ({ row: { original } }) => ( <Link aria-label={original.package_name} color="fg.info" href={`https://airflow.apache.org/docs/${original.package_name}/${original.version}/`} rel="noopener noreferrer" target="_blank" > {original.package_name} </Link> ), enableSorting: false, header: translate("providers.columns.packageName"), }, ``` ### Are you willing to submit PR? - [ ] Yes I am willing to submit a PR! ### Code of Conduct - [x] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md) -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
