Hello here,

As part of the packaging work - I merged the
https://github.com/apache/airflow/pull/48223

*TL;DR; Rebase all PRS, rebuild images and uv sync - and
hopefully everything should work as before even if a lot of things moved.
Hopefully the move will be largely transparent (except changing *include:
in open PRs in docs). *

*NOTE! UV is now mandatory and a lot of code is gone thanks to that. Breeze
will also refuse to work if uv is not installed.*

It took a bit of time, but we are in a much more standard and better shape
now - and as a side effect (which was intended but I had to implement it as
part of that monster PR to fix documentation) we now have a much simpler
(more guidelines are coming) way to iterate on doc building.

*Few important things first: *

1) Make sure to rebase your PRs, Run `breeze image build`, Rnu `uv sync`.
Due to the way git handles things - you ** might **  have some dangling
generated directories in your repo and they might cause some problems. Run
"git status" after rebase and see you have some files you need to delete
(manually)

2) If you are brave enough - you might want to run `breeze doctor` and
cleanup git repo - it should clean all files that should be removed, but
also it might remove some of your custom configurations and files you
created,

3) Generally everything should work as it worked before with breeze (for
example `breeze build-docs` command works as before. But a number of
folders/distributions/code (not airflow nore providers directly) were
moved/updated. For now you can just continue to build docs as before - with
breeze. But simpler/faster ways are coming as follow up.

4) If you have some new examples or documentation included in your PRs the
doc build might start falling for you - but this is because `include::` or
`exampleinclude:`  might need to be updated - look at other examples - I
fixed the includes in all providers. More explanation in follow-up doc
build improvement PR - in the meantime, feel free to ask on slack or PR for
help.

*Generated provider_dependencies.json do not need to be updated*

The "generated/provider_dependencies.json" is no longer committed to the
repo - it is .gitignored. We are generating it as-needed on the flight. It
should be automatically regenerated when you run pre-commits locally and
when you build the breeze image.

There might be some cases when we add dependencies and you will need to
regenerate it but that should happen automatically as needed.

*New, updated folders*

The change are mostly with these:

./dev/pyproject.toml
./devel-common/pyproject.toml
./doc
./docker-stack-docs
./providers-summary-docs

*More explanation for distributions/folder changes*

The dev is now a separate distribution with its own pyproject.toml
dependencies that are used for all the release management and general dev
housekeeping. This is different from "devel-common" which is a common
package with a lot of common code reused for tests and builds (including
doc builds scripts are using).

We might want to change names later, as they are confusing but I will leave
that discussion for later when we complete all the isolation work - with
those changes I implemented it will be very easy (as opposed to how it was)
to move those distributions around - and if we will want to restructure it
again, that will be a very simple move.

*Improved doc structure*

This is because we finally made the last step - where the "doc" code is
moved to "devel-common" and we are importing it from there, also each
distribution has it's own "conf.py" and that makes modifying docs building
and our sphinx building scripts MUCH more readable ana mangeable. The "doc"
code now contains just spelling wordlist and README.md explaining where to
look for the documentation.

Those new top-level folders ("docker-stack-docs" and
"providers-summary-docs") - contain the two independent pieces of our
documentation ("docker-stack" and "apache-airflow-providers" package names
from "breeze build-docs" command.

The REALLY nice thing now is that the doc files are not copied between
places and each of the docs folder (including each of the 90 providers docs
folder) has it's own "conf.py", which makes the "docs" folder for them
"isolated" and "fully self-contained" - which will open up the ways on much
more friendly sphinx workflows. Wait for it ! Coming **just in time** when
we most need it - when we want to start updating the docs for Airflow 3.

J.

Reply via email to