apache / airflow-client-go

Apache Airflow - OpenApi Client for Go
https://airflow.apache.org/
Apache License 2.0
173 stars 21 forks source link

`go get github.com/apache/airflow-client-go@latest` yields outdated `github.com/apache/airflow-client-go/airflow` subpackage #41

Open bgoldman-videoamp opened 1 year ago

bgoldman-videoamp commented 1 year ago

I want to use the current version (v2.5.0), but using go get github.com/apache/airflow-client-go@latest as of today gives me v0.0.0-20230203175943-7af9875e7d4c. It definitely appears out of sync with the latest version as NewClearTaskInstance() function is missing and in addition the fields for theClearInstance struct appear out of sync with those of the current version.

go version: go1.19.5 darwin/arm64

bgoldman-videoamp commented 1 year ago

So a closer look shows that the version issue is a rather superficial one (see https://github.com/opensearch-project/opensearch-go/issues/73 for a similar issue. All you need to do is set the tag 2.5.0 to v2.5.0.) The real issue at hand is that the subpackage github.com/apache/airflow-client-go/airflow installed is out of date. When go get github.com/apache/airflow-client-go@latest is run, the package version for the subpackage installed is v0.0.0-20200725194829-781c285536c1 when it should be v0.0.0-20230203175943-7af9875e7d4c

pierrejeambrun commented 1 year ago

Hello @bgoldman-videoamp,

Thank you for reporting this. We are currently working on the release process of this package and your feedback is really welcome.

Out of sync submodule

I think the intent of this top level module was to have a way to actually test the client, using client_test.go. As you can see in the go.mod it also depends on testify test library, so this will also add this unnecessary dependency to your project. There is no reason for airflow client to require this extra test dependency for production. (or add test code etc.)

You can install directly the submodule:

go get github.com/apache/airflow-client-go/airflow/@latest

In this testing context, it explains why the top level dependency was almost never updated, the replace directive was enough for it to work as expected.

Nonetheless it is really easy to update it, here is a PR for that, also adding install instructions https://github.com/apache/airflow-client-go/pull/42

II Tags Convention

We followed the same tagging strategy that we use for airflow core and other api clients. Indeed, for Go It looks like tag needs to start with v... to be recognized as version for most tools. For now you can still use the hash commit to install a specific tag if needed (go get github.com/apache/airflow-client-go/airflow/@<hashcommit>), but we might want to change the way we tag release for Go client.

I will open a separate PR to suggest this change.

Thanks

Rick-xuy commented 1 year ago

I ran into a similar issue here. It seems that airflow is a separate module under repo github.com/apache/airflow-client-go. As far as I know, tags for submodule airflow should be like airflow/v2.5.0 to enable downstream to correctly get v2.5.0 of submodule github.com/apache/airflow-client-go/airflow.