-
Notifications
You must be signed in to change notification settings - Fork 932
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
[v8] upgrade module to v8 standard go version workflow #3256
base: v8
Are you sure you want to change the base?
Conversation
Hi, would like to know what's the status with reviewing these prs, the longer it takes the harder it will be to maintain it. I was updating it with the repository updates, until it started breaking the tests and I noticed that PRs were approved that themselves were breaking the tests. The V2 api is getting phased out, and we have been testing that (disabling the v2 api) which ends up failing pretty much all plugins. These PRs became urgent, I would say, if you want to keep on supporting plugins... either that or we all have to start developing plugins without go modules... which is also not acceptable I don't think I need to refer you to the v2 phasing out, but just in case https://github.com/cloudfoundry/community/blob/main/toc/rfc/rfc-0032-cfapiv2-eol.md I will later try to resync the PRs with the head of the branches, but would still like to know what's the ETA for an approval here, as I also won't be fixing tests broken at the head of the branches, which will have the PR ending up with failed checks. |
# Conflicts: # cf/commands/application/apps.go # command/v7/create_app_command.go # command/v7/create_app_command_test.go # command/v7/create_user_provided_service_command.go # command/v7/create_user_provided_service_command_test.go # command/v7/push_command.go # go.mod # integration/v7/isolated/app_command_test.go # integration/v7/isolated/create_app_command_test.go
Following comment applies to all PR's related to updating the project to follow the standard go versioning workflow The initial hack based on using the previous non-module cli version that the cfnetworking project (archived) was using, was expected to break sooner or later. It broke sooner for the main and v8 branches as some projects had updates with non-backward compatible versions which basically broke the builds. I have now copied (and made some small updates) the cfnetworking project into the api package. It was already followin pretty much the same implementation of the other api packages, so even though I don't exactly agree with the approach, I kept it to keep it coherent. Apparently there was also another merged PR that broke the cf restage timeout test with rolling strategy after adding the --max-in-flight. I split it it two tests, one with the flag and one without, as the end result is different. I basically fixed it so that I could have the PR's green with the integration tests. I would like to reiterate my plea for a review, as while the pr's are not complex they do touch a lot of files and consequentially will almost always end up having a conflicted status for every other merged PR. I do try to maintain the forked branches with upstream updates, but that also takes time and effort to do so, when the PR's are non-trivial. |
# Conflicts: # actor/v7action/revisions_test.go # api/cloudcontroller/ccv3/revisions_test.go # command/v7/revision_command.go # command/v7/revision_command_test.go # integration/v7/isolated/revision_command_test.go
Thank you for contributing to the CF CLI! Please read the following:
If your contribution falls under a company CLA but your membership is not public, expect delays while we confirm.
Note: Please create separate PR for every branch (main, v8 and v7) as needed.
Description of the Change
This change upgrades the module name according to the new go version workflow as described in https://go.dev/doc/modules/release-workflow
It also has a small fix in the app_summary_displayer_test.go date regex so that it supports up to 4 character time zone abbreviations
The fix is presented as a transitional one, the cli has dependency to the archived project https://github.com/cloudfoundry-incubator/cfnetworking-cli-api which doesn't use go modules and has a recursive dependency back to the cli. This makes it difficult to smoothly upgrade it in the future. The project now has a dependency of the latest vli version without modules (v7.1.0) which is used by the UAAClient to also create a legacy connection and then use it when creating the cf networking client. It's less than optimal.
The way forward is to remove the recursive dependency by either unarchiving the cfnetworking project (and removing the recursive dependency), creating a new library or adding the cf networking client directly to the cli code base. This workaround is a quick fix to move forward with standard versioning.
Why Is This PR Valuable?
At the moment the development of plugins with go modules is dependent on cli v7.1.0 (which is still not a module). This implies that plugins cannot be updated with any security and version updates that may come from newer versions.
The PR will allow plugins to be updated to the latest cli version.
Applicable Issues
#2291
How Urgent Is The Change?
It has a relative urgency, if you consider the need to update plugins as well as making this change as soon as possible for further progress of the cli
Other Relevant Parties
To my knowledge this only affects plugins (and their maintainers/developers).