Thanks QP for your feedback. I think the latest release of K8s client
(v17.x.y) is moving in another direction.

On Wed, Mar 31, 2021 at 12:13 AM QP Hou <q...@scribd.com.invalid> wrote:

> Thanks Sumit for kicking off this discussion!
>
> I am in favor of approach #1 as well. Airflow software version can
> change due to none API related changes, but the client should only
> care about the public API contract. I believe this is also the same
> approach that the k8s python client took as well? For example, the k8s
> python client version 12.0.1 targets k8s api version 1.16.15.
>
> I am also with you that clients for different languages should have
> their own release cycles. Other than testing burdens, every client
> could introduce their own bug fixes and breaking changes without
> having to trigger releases for all other clients. It would be a waste
> of work for us to bump the python client version just for a bug fix in
> the go client.
>
> Thanks,
> QP
>
> On Tue, Mar 30, 2021 at 1:56 AM Sumit Maheshwari <msu...@apache.org>
> wrote:
> >
> > Hello Airflow dev community
> >
> > I'm writing this mail in regards to seek feedback on the first release
> of Apache Airflow's Python client. 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 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:
> >
> > 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.
> > 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. 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 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