Hello, fellow Airflowers! I wanted to start this discussion in hopes of "kicking the tires" and agreeing on a timeline for the Airflow 2.0 release.
It seems to me that our 1.10 branch is straying farther and farther from master, and with that, there are two significant consequences. Releases become harder as we are rewriting PRs for the release branch, and we are delaying releasing of already-merged features and upgrades. But I want to add _____ feature which would be so awesome in a 2.0 press release! Our community has a lot of REALLY cool projects and efforts, and yes, it would be awesome to have a shiny 2.0 release fully packed with amazing features. Still, we are sacrificing two things with this mindset: timeliness and stability. The longer we wait on releasing many of the already added features of our master branch (e.g., a more stable typing system, the ability to submit K8sExecutor pods as YAML files, etc.) the more we risk falling behind to other projects in this field. We should also consider that the 2.0 release is ALREADY going to take a monumental testing effort, and adding more features will only make that worse. With Apache Spark, some of the most significant recent features released were the native Kubernetes integrations <https://spark.apache.org/docs/2.3.0/running-on-kubernetes.html>. This major paradigm shift was a crucial feature for Spark to remain competitive in the data processing space, and the community released it in the innocuous-sounding 2.3 release. Had they waited for spark 3.0, this feature would still be unreleased. The release process for 2.0 will take a lot of work/I'm not sure we have time for it. This reason is why it is ALL the more crucial that we start this process now. This will only get harder, and we risk more bugs as master diverges farther from 1.10. So what should we do now? Spring Cleaning of Necessary 2.0 tasks A while back, we created a spring cleaning list of 2.0 necessary fixes. Let's review, triage the tickets no longer relevant, and give the highest priority to the remaining tickets. Determine Breaking Changes Of all of the significant efforts in play right now, let's determine which of those efforts are breaking. A major version bump is the only time we can reasonably expect users to accept modifying DAGs, so let's categorize those issues and prioritize them. Release API and Scheduler HA Of the remaining efforts that could potentially cause breaking changes, I believe that the new API, which replaces the “Experimental API”, and the Scheduler HA have the most potential upside for users. Let's make sure to include these in our planning for releasing 2.0. Set a Timeline for 1.10 releases One question users will ask when this release comes out is, "how long will the 1.10.x release stream continue to be enhanced?" In creating a timeline, we want to ensure that customers are not left high and dry while also preventing any form of Python 2/3 issue where users feel no urgency to update. I propose a 2 month window where the 1.10.x release stream will continue getting critical bug fixes, but not any additional features. Enhance Tests to Avoid Regressions Let’s make sure that any new commits have tests suitable for both streams while we get ready for 2.0. Let's continue our work on writing system tests. Let’s all contribute scenarios so that we can ensure that these are covered before we launch 2.0. I'm ecstatic for the next year in Apache Airflow. Everything is speeding up, and by cutting a 2.0 release, I think we can ensure that we keep up with the pace of our growing community and demand.