-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Configure GenericFlag's Destination type as struct not pointer #1442
Conversation
This is technically a breaking change. From a pragmatic standpoint, it might still be sensible to merge it into v2. (I'm assuming but haven't actually checked that it is possible to get it working, currently, and that it's just a dodgy API) |
It would be helpful if you could share the code example how to do it with the current version. I've been struggling to do it with no success unfortunately. |
@nkuba actually... it seems like you could use the
Mmm I should have phrased that "working with the current (dodgy) API", because it does appear to be missing the actual behavior necessary to make the Line 66 in 341be3b
I'm guessing this is more fallout from when the It appears that with the current state of this PR, If the I'd like it to avoid mutating the I believe the ideal general flow of the
|
@nkuba Can you rebase your changes with latest ? |
flag-spec.yaml
Outdated
@@ -12,35 +12,41 @@ flag_types: | |||
uint: {} | |||
|
|||
string: | |||
destination_pointer: true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instead of defining destination_pointer to true for everything except Generic have a field called no_destination_pointer and set that to true only for Generic. That way all these changes go away and any new type by default will have the pointer unless explicitly specified
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nkuba I've made PR 1488 which cleans up the destination pointer for Generic so that you dont have to worry about fixing conflicts in your branch as it is very tedious and time consuming(I tried, trust me). Once that is approved you can revert your changes for flag spec and keep just the test code. Thank you so much
In this commit I added a DestinationPointer variable that should be set if the `Destination` should be configured as a pointer for a specific flag type. It is expected that Generic type which is an interface will not be a pointer but a struct. Before this change the code compilation was failing with `type *Generic is pointer to interface, not interface`. See urfave#1441
The function was missing destination configuration.
The test checks if Destination provided in GenericFlag is being set as expected.
341be3b
to
a9c758e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed merge issues
[](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [github.com/g-rath/osv-detector](https://togithub.com/g-rath/osv-detector) | require | minor | `v0.7.2` -> `v0.8.0` | | [github.com/urfave/cli/v2](https://togithub.com/urfave/cli) | require | minor | `v2.17.1` -> `v2.19.2` | | [golang.org/x/crypto](https://togithub.com/golang/crypto) | require | digest | `4161e89` -> `56aed06` | | [golang.org/x/exp](https://togithub.com/golang/exp) | require | digest | `b9f4876` -> `4de253d` | --- ### Release Notes <details> <summary>g-rath/osv-detector</summary> ### [`v0.8.0`](https://togithub.com/G-Rath/osv-detector/releases/tag/v0.8.0) [Compare Source](https://togithub.com/g-rath/osv-detector/compare/v0.7.2...v0.8.0) #### What's Changed - support parsing `poetry.lock`, for Python ([https://github.com/G-Rath/osv-detector/pull/156](https://togithub.com/G-Rath/osv-detector/pull/156)) - support parsing `pubspec.lock`, for Dart ([https://github.com/G-Rath/osv-detector/pull/159](https://togithub.com/G-Rath/osv-detector/pull/159)) **Full Changelog**: G-Rath/osv-detector@v0.7.2...v0.8.0 </details> <details> <summary>urfave/cli</summary> ### [`v2.19.2`](https://togithub.com/urfave/cli/releases/tag/v2.19.2) [Compare Source](https://togithub.com/urfave/cli/compare/v2.19.1...v2.19.2) #### What's Changed - fix: stop automatic sorting for --help by [@​FGYFFFF](https://togithub.com/FGYFFFF) in [https://github.com/urfave/cli/pull/1430](https://togithub.com/urfave/cli/pull/1430) #### New Contributors - [@​FGYFFFF](https://togithub.com/FGYFFFF) made their first contribution in [https://github.com/urfave/cli/pull/1430](https://togithub.com/urfave/cli/pull/1430) **Full Changelog**: urfave/cli@v2.19.1...v2.19.2 ### [`v2.19.1`](https://togithub.com/urfave/cli/releases/tag/v2.19.1) [Compare Source](https://togithub.com/urfave/cli/compare/v2.19.0...v2.19.1) #### What's Changed - Fix:(issue\_1500). Fix slice flag value duplication issue by [@​dearchap](https://togithub.com/dearchap) in [https://github.com/urfave/cli/pull/1502](https://togithub.com/urfave/cli/pull/1502) **Full Changelog**: urfave/cli@v2.19.0...v2.19.1 ### [`v2.19.0`](https://togithub.com/urfave/cli/releases/tag/v2.19.0) [Compare Source](https://togithub.com/urfave/cli/compare/v2.18.2...v2.19.0) #### What's Changed - Fix:(issue\_1505) Fix flag alignment in help by [@​dearchap](https://togithub.com/dearchap) in [https://github.com/urfave/cli/pull/1506](https://togithub.com/urfave/cli/pull/1506) **Full Changelog**: urfave/cli@v2.18.2...v2.19.0 ### [`v2.18.2`](https://togithub.com/urfave/cli/releases/tag/v2.18.2) [Compare Source](https://togithub.com/urfave/cli/compare/v2.18.1...v2.18.2) #### What's Changed - Configure GenericFlag's Destination type as struct not pointer by [@​nkuba](https://togithub.com/nkuba) in [https://github.com/urfave/cli/pull/1442](https://togithub.com/urfave/cli/pull/1442) #### New Contributors - [@​nkuba](https://togithub.com/nkuba) made their first contribution in [https://github.com/urfave/cli/pull/1442](https://togithub.com/urfave/cli/pull/1442) **Full Changelog**: urfave/cli@v2.18.1...v2.18.2 ### [`v2.18.1`](https://togithub.com/urfave/cli/releases/tag/v2.18.1) [Compare Source](https://togithub.com/urfave/cli/compare/v2.18.0...v2.18.1) #### What's Changed - Ensure "generate" step runs in CI prior to diff check by [@​meatballhat](https://togithub.com/meatballhat) in [https://github.com/urfave/cli/pull/1504](https://togithub.com/urfave/cli/pull/1504) **Full Changelog**: urfave/cli@v2.18.0...v2.18.1 ### [`v2.18.0`](https://togithub.com/urfave/cli/releases/tag/v2.18.0) [Compare Source](https://togithub.com/urfave/cli/compare/v2.17.2...v2.18.0) #### What's Changed - Call FlagStringer in String() method of slice flags by [@​fjl](https://togithub.com/fjl) in [https://github.com/urfave/cli/pull/1508](https://togithub.com/urfave/cli/pull/1508) #### New Contributors - [@​fjl](https://togithub.com/fjl) made their first contribution in [https://github.com/urfave/cli/pull/1508](https://togithub.com/urfave/cli/pull/1508) **Full Changelog**: urfave/cli@v2.17.2...v2.18.0 ### [`v2.17.2`](https://togithub.com/urfave/cli/releases/tag/v2.17.2) [Compare Source](https://togithub.com/urfave/cli/compare/v2.17.1...v2.17.2) #### What's Changed - Remove nonexistent phony targets by [@​meatballhat](https://togithub.com/meatballhat) in [https://github.com/urfave/cli/pull/1503](https://togithub.com/urfave/cli/pull/1503) - wrap: Avoid trailing whitespace for empty lines by [@​abitrolly](https://togithub.com/abitrolly) in [https://github.com/urfave/cli/pull/1513](https://togithub.com/urfave/cli/pull/1513) #### New Contributors - [@​abitrolly](https://togithub.com/abitrolly) made their first contribution in [https://github.com/urfave/cli/pull/1513](https://togithub.com/urfave/cli/pull/1513) **Full Changelog**: urfave/cli@v2.17.1...v2.17.2 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 6am on monday" in timezone Australia/Sydney, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/google/osv.dev). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4yMjIuMyIsInVwZGF0ZWRJblZlciI6IjMyLjIzNC4yIn0=--> Co-authored-by: Rex P <106129829+another-rex@users.noreply.github.com>
What type of PR is this?
What this PR does / why we need it:
This PR implements support for
Destination
property inGenericFlag
. Previously setting a Destination was causing code compilation failures described in #1441. The type ofDestination
property was removed with the pointer so it works correctly with aGeneric
interface now.Which issue(s) this PR fixes:
Fixes #1441
Special notes for your reviewer:
I had problems with running the code generator on my local machine. Please run code generation and verify its result.
Testing
I added a unit test covering destination setting for GenericFlag.
Release Notes