-
Notifications
You must be signed in to change notification settings - Fork 623
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
Moving the repository to github.com/apache/cassandra-gocql-driver #1776
Comments
@martin-sucha, would it be possible to delete the non-master branches now ? (do we have a fork we can keep that work archived in?) |
Sure, I can delete the non-master branches. I don't have permissions to create a fork under the gocql organization. @Zariel could you please create gocql/archive fork before I delete the branches here? |
Another option to look into is keeping a stub package with type aliases and exported functions at github.com/gocql/gocql that would import the new package from github.com/apache/cassandra-gocql-driver and forward the calls there. The question is if that would work with gocql forks that use the replace directive, as users of those would probably need to replace both the old and the new module in their |
The IP Clearance vote has passed. @martin-sucha, can you use any fork for now ? (you can push everything from it to a gocql/gocql-archive fork later) This is the only thing the transfer+rename is waiting on. Also, once the extra branches are deleted, we will like to rename |
I would suggest setting up a vanity url so that we only ever need to change the import path once, something like |
We were hoping to transfer and rename this gh repo to apache/cassadra-gocql-driver That would result in github.com/gocql/gocql requests automatically redirecting to github.com/apache/cassadra-gocql-driver Hence the request for a separate repo as the archive. WRT a vanity url, if such a thing existed it would need to be |
I've deleted the The main concern I have at this point is whether it is safe to do the repo rename (redirect) from the Go compatibility point of view (whether the |
Thanks!
I don't know 🤷 |
I would prefer a more conservative approach. Github says there are 7000 dependent packages in about 4400 repositories, so breaking the imports could do a lot of damage until we fix the issue. It seems that go-redis project did something similar, although they released a new major version at the same time. |
This looks like what we want to do too. If we transfer+rename the repo, change the project coordinates, and bump to v2, are there any objections or concerns remaining ? The only thing I can think of is if we want to do a patch release off an older version. |
ping @martin-sucha , any answers/opinions on this^? |
Hi @michaelsembwever , sorry for the late reply.
I have created a testing repository and confirm that renaming the repository should work as expected. Renaming the Go module is a backwards-incompatible change, so best would be to do it at the same time as bumping to v2. It seems to me that in addition to changing the module path to the new location, bump to v2 should provide users also some benefits as it will force the ecosystem to upgrade — all the libraries like gocqlx will need to be updated to support v2 as they use interfaces like A decision needs to be made as to where the v2 code will live (see https://go.dev/blog/v2-go-modules) cc @joao-r-reis @jfleming-ic :
The go-redis repository has latest v9 code in the default branch and some older v9 code in v9 branch. I haven't looked at how other projects do it. This needs to be done in a way that will keep the old v1 import paths working, which would also allow you to release minor v1 versions if needed. |
Thanks for following up @martin-sucha
This has my vote. |
Same here. It looks like this is the approach that go-redis is using as @martin-sucha mentioned. I found another example that is using this approach: pgx. We do have to keep in mind that tools that are not "version aware" may not work correctly but I don't think it's a big deal. Quoting the go.dev blog post:
|
If there's no further comments or objections then I will initiate the request to ASF Infra to transfer and rename the repo. |
Does it make sense to do that right away? Don't we want to address some of the issues that Martin mentioned that require breaking changes to the API? We could keep using the old module name until we decide to release a v2 and at that point we can rename the module? |
@martin-sucha , can and will you create the |
Sorry I meant to suggest that we don't want to create the |
oh, my bad. Ok then. Moving ahead with requesting ASF Infra to do the transfer+rename. |
@martin-sucha , @Zariel , see Drew's request for what he needs to do the transfer+rename
|
Done |
done: https://github.com/apache/cassandra-gocql-driver Immediate actions:
|
Thanks! One of the first steps should be updating the |
ticket for master to trunk rename: https://issues.apache.org/jira/browse/INFRA-25998 |
Hi @michaelsembwever,
I've opened this issue to track discussion about moving the repository that we briefly touched at #1772 (comment):
It is not clear to me if it is possible to do it in a backwards-compatible way and if so, how exactly.
We can't change the import path without breaking compatibility as third-party libraries depend on gocql,
but it might be possible to just rename the repository without changing the module name.
We should probably do some tests and research how such moves of other projects written in Go went.
cc @Zariel
The text was updated successfully, but these errors were encountered: