-
Notifications
You must be signed in to change notification settings - Fork 14.6k
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
Replace old Breeze with Python based implementation #22880
Conversation
cc: @Bowrna @edithturn |
Here it is. Switching to Python based Breeze. FINALLY. Note. I would like to drag your attention to this nicely generated screenshots in our Breeze documentation :) https://github.com/potiuk/airflow/blob/swap-old-breeze-with-new/BREEZE.rst#installation |
@potiuk I ran it on my machine (Linux Ubuntu 20.10), wow works very nice! That part of the comments with a click is fantastic 🤩 I ran some commands like "config" and "start-airflow". My question is if all these options al already implemented.
It is fantastic @potiuk and also is 💯 faster on my computer 👏🏼 🚀 |
Good Point. We should give feedback to the user ! The idea is that when you set python version, next time you get that default python version when you do not specify any python version. I.e. .
The errors are unrelated - they are also with current breeze' start-airflow - I will raise that to others as we are very close to cutting 2.3 branch I think those errors need to be fixed before. |
37d43fc
to
97fd8d7
Compare
97fd8d7
to
ba33a97
Compare
Config now is more "obvious". It also prints summary of the config (@edithturn ): |
d18230f
to
8c9fd0d
Compare
I've also added protection to not add accidentally new top-level imports in breeze.py as they would break auto-complete and self-upgrade. |
268431e
to
77e9da0
Compare
@potiuk this is amazing :) you have made this change very quickly 👍 |
77e9da0
to
9d91960
Compare
ded482c
to
c3cda62
Compare
Looks like Green and ready for Python's Breeze prime time! |
Go ahead @potiuk, let us know! 🚀 💪🏼 |
Over the last few months together with Outreachy interns we rewrote the most important functionality of the old Bash-based Breeze with Python Based implementation. We approached it in systematic way with capturing all our decisions in the ADR format (dev/breeze/docs) and implementing the parts that are used on a daily basis by the users. Breeze2 as it was called is ready for Prime-Time with the users so we are swapping out the old breeze wiht the new one. The old `breeze` has been moved to `breeze-legacy` and we will gradually parts of it that are already migrated to Python and proven while continue rewriting the parts that are missing (mostly the maintainer tools) and replacing the remaining CI shell scripts with the new `breeze` commands. We also need to make sure that there is no accidental top-level import for extra packages added in the future, because people who installed breeze before will not have it - so we have a pre-commit that checks if breeze.py can be parsed and --help executed with just rich and click installed. This PR: * moves `breeze` to `breeze-legacy` * moves `Breeze2` to `breeze` * updates documentation and screenshots where applicable * explains old vs. new breeze in documentation * adds protection so that no accidental top-level import is added to breeze.py and files imported from there Fixes: apache#22827
c3cda62
to
75cc8e8
Compare
Hey @eladkal :). That's IT.. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎉
The PR most likely needs to run full matrix of tests because it modifies parts of the core of Airflow. However, committers might decide to merge it quickly and take the risk. If they don't merge it quickly - please rebase it to the latest main at your convenience, or amend the last commit of the PR, and push it with --force-with-lease. |
Over the last few months together with Outreachy interns
we rewrote the most important functionality of the old Bash-based
Breeze with Python Based implementation.
We approached it in systematic way with capturing all our decisions
in the ADR format (dev/breeze/docs) and implementing the parts
that are used on a daily basis by the users. Breeze2 as it was
called is ready for Prime-Time with the users so we are swapping
out the old breeze wiht the new one.
The old
breeze
has been moved tobreeze-legacy
and we willgradually parts of it that are already migrated to Python and proven
while continue rewriting the parts that are missing (mostly the
maintainer tools) and replacing the remaining CI shell scripts with
the new
breeze
commands.We also need to make sure that there is no accidental top-level
import for extra packages added in the future, because people
who installed breeze before will not have it - so we have
a pre-commit that checks if breeze.py can be parsed and
--help executed with just rich and click installed.
This PR:
breeze
tobreeze-legacy
Breeze2
tobreeze
added to breeze.py and files imported from there
^ 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.