I already have a POC: :-)

Available at: http://level-can.surge.sh/html/autoapi/index.html

I would like to point out that in addition to class documentation, you can
also document modules.
http://level-can.surge.sh/html/autoapi/airflow/executors/local_executor/index.html
Currently, the `howto/operators.rst` file is used for this (Related link:
https://airflow.readthedocs.io/en/latest/howto/operator.html#cloudsqlqueryoperator
)


On Tue, Feb 5, 2019 at 5:18 PM Ash Berlin-Taylor <a...@apache.org> wrote:

> > We want to rewrite the `integration.rst` file so that it does not contain
> > duplicates from `code.rst ' (API Reference). In the next step, introduce
> > the reference API generation based on the source code that will replace
> the
> > `code.rst` file.
>
> :100: Yes please!
>
>
> Given a number of integrations are across multiple files (n operators, and
> m hooks) my first thought is that something in integration.rst, or a file
> elsewhere in the docs/ tree is the place to put this.
>
> On epydoc vs a sphinx extension I lean very heavily towards the sphinx
> extension, as we are already using much of sphinx.
>
> Can you create a _small_ example of what you'd propse for no.4 (I don't
> want you to do a lot of work that might be wasted)
>
> -ash
>
>
> > On 5 Feb 2019, at 15:55, Kamil Breguła <kamil.breg...@polidea.com>
> wrote:
> >
> > Hello community,
> >
> > While working on the documentation for the GCP operators, my team at
> > Polidea encountered some confusion related to the structure of the
> > documentation.
> >
> > Short story:
> >
> > We want to rewrite the `integration.rst` file so that it does not contain
> > duplicates from `code.rst ' (API Reference). In the next step, introduce
> > the reference API generation based on the source code that will replace
> the
> > `code.rst` file.
> >
> > Long story:
> >
> > Currently, the documentation contains two places where the description of
> > classes related to operators is included. They are `code.rst` and
> > `integration.rst` files.
> >
> > The `integration.rst` file contains information about integration, in
> > particular for Azure: Microsoft Azure, AWS: Amazon Web Services,
> > Databricks, GCP: Google Cloud Platform, Qubole. Other integrations,
> > however, do not have descriptions.
> >
> > The `code.rst` file contains “API Reference” which contains information
> > about *all* classes including those included in the file
> `integration.rst`.
> >
> > Such duplication, however, is problematic for several reasons:
> >
> >   1.
> >
> >   Users may feel lost and may not know which section they should look
> into.
> >   2.
> >
> >   Changes must be made in many places which leads to desynchronization.
> >   Most often, changes are made only in the source code, so they do not
> appear
> >   in the generated documentation.
> >   3.
> >
> >   Linking to classes using the `class` directive for Sphinx is
> >   inconclusive - if the code is embedded both in `integration.rst` and
> >   `code.rst` using the `autoclass` directive, we’re not sure where the
> user
> >   will be navigated.
> >
> >
> > There are several solutions::
> >
> >   1.
> >
> >   Leave it as is. Then we need to agree on which `autoclass` directive
> >   should have the `no-index` flags.
> >   2.
> >
> >   Delete duplicates from the `code.rst` file and add a note about the
> >   `integration.rst` file in the `code.rst` file.
> >   3.
> >
> >   Delete duplicates from the `integration.rst` file and add a note about
> >   the `code.rst` file in the `integration.rst` file.
> >   4.
> >
> >   Delete information from both files and generate the API documentation
> >   always based only on the source code. This solution means that we would
> >   have to write less documentation.
> >   There are ready tools that we can use:
> >   1.
> >
> >      epydoc - http://epydoc.sourceforge.net/ ;
> >      2.
> >
> >      autoapi extension for Sphinx -
> https://github.com/rtfd/sphinx-autoapi
> >      ;
> >      3.
> >
> >      other - https://wiki.python.org/moin/DocumentationTools
> >
> >
> > The first, second, third solution does not solve all problems. In
> > particular, we still need to complete the `code.rst` and
> `integration.rst`
> > files. The fourth solution solves all problems, but is the most complex.
> It
> > is worth noting that mixing solutions is possible. For example, we can
> > delete information from the file `integration.rst` as short term solution
> > and start working on creating another form of documentation as a long
> term
> > solution. This is the best option in our opinion.
> >
> > I’ve recently done a few activities related to this topic.
> >
> > First, I added the noindex flag to autoclass directives for all operators
> > in `integration.rst` file. In rare cases (If any), this caused links that
> > were previously directed to the file `integration.rst` to be redirected
> to
> > the `code.rst` file. Elements had to be linked using `:class:` instead
> of a
> > section link. Each operator is included in the new section in this file.
> >
> > PR: https://github.com/apache/airflow/pull/4585
> > <https://github.com/apache/airflow/pull/4585/files>
> >
> > Second, I completed the `code.rst` file with the missing classes.
> >
> > PR: https://github.com/apache/airflow/pull/4644
> >
> > I would like to ask which solution is the best in your opinion? What
> steps
> > should we take to make the documentation more enjoyable?
> >
> > Greetings
> >
> > Kamil Breguła
>
>

-- 

Kamil Breguła
Polidea <https://www.polidea.com/> | Software Engineer

M: +48 505 458 451 <+48505458451>
E: kamil.breg...@polidea.com
[image: Polidea] <https://www.polidea.com/>

We create human & business stories through technology.
Check out our projects! <https://www.polidea.com/our-work>
[image: Github] <https://github.com/Polidea> [image: Facebook]
<https://www.facebook.com/Polidea.Software> [image: Twitter]
<https://twitter.com/polidea> [image: Linkedin]
<https://www.linkedin.com/company/polidea> [image: Instagram]
<https://instagram.com/polidea> [image: Behance]
<https://www.behance.net/polidea>

Reply via email to