Hello Airflow dev community

I'm writing this mail in regards to seek feedback on the first release of
Apache Airflow's Python client
<https://github.com/apache/airflow-client-python>. This is an icebreaker
email only and we will follow the Apache process of releasing the version
later on. As of now, I've raised a small PR
<https://github.com/apache/airflow-client-python/pull/6> to add the missing
files in the repo, which are required to do the release of the client lib.

The main question I've in mind about the versioning. I see that there are
mainly two theories related to maintain the release versions of clients:

   1. The first is about following the semantic release of the clients on
   its own. The release version of the client doesn't include the version of
   the software itself. Something like we are doing with Airflow's provider
   packages. However, in each release, we mention the release version of the
   main software (Airflow in this case). This is the simple most way of
   maintaining releases and followed majorly.
   2. The second way is to include the software's version as well in its
   client's versioning, something like it's been done in the K8s Python
   client
   <https://github.com/kubernetes-client/python/blob/master/CHANGELOG.md>.
   In this approach, the client version provides more implicit knowledge about
   the compatible software, however it creates an extra burden of releasing
   the client with every minor release of the software, otherwise the
   versioning would fall apart. Also, there is a good chance that most of
   these minor or even a major release has no changes in the APIs, but the
   client would be needed to re-released nevertheless, just to keep the
   versioning in check.

Personally, I'm in favour of the 1st way, as it's simple to manage and
doesn't tightly couple client with its software.

Another unrelated question I have is about the release of different client
libraries. As of now, Airflow has Python and Go
<https://github.com/apache/airflow-client-go> clients, so should we try to
release them together or they should follow their own paths? In general,
I'm against batching them together, cause the person who is releasing them
may not be able to test all the different clients in the future.

Let me know your thoughts on these 2 points.

Thanks,
Sumit Maheshwari
PMC Apache Airflow

Reply via email to