Comments (3)
Oddly enough, I came the same issue a few days ago because one of the instances of Gerrit that I manage uses several custom labels (which of course don't work with this struct).
I think using a map makes the most sense and would certainly be the route I would have taken if I had written the first implementation of Labels. But this is an existing struct so changing the implementation rather than say adding to it or changing how it's built, while not removing fields, would probably cause issues for consumers of go-gerrit.
I'm not certain what the best approach to fix and need to do some research but I'm certainly open to other suggestions. For now the ideas I have are:
- Create a new field on Labels to hold non-standard labels.
- Update the labels struct with functions to query non-standard labels
- Dynamically construct all fields on the struct (last I checked there are a few libraries out there that might be able to do this for us).
from go-gerrit.
At the point of implementation i didn`t know that custom labels are possible.
This is, of course, a bug (or a missing feature, depends on the point of view).
I like the first two options.
But i want to mention a third option:
- Tag the current version
- Do the breaking change by changing this to a map
I know this is not beautiful, but if we mark this as a new tag + write down the change in the ChangeLog this should be fine (i hope that all consumers are using vendoring).
What do you think @opalmer and @perolausson?
from go-gerrit.
Yeah that's kind of the direction I was thinking actually. I can't really see any other better way in terms of implementation complexity or ease of use. Good thing we can tag releases now haha.
Once #22 lands we can tag 0.1.1.
from go-gerrit.
Related Issues (20)
- Update CHANGELOG.md
- Craft a new release HOT 2
- Where to get the revisionID for the GetComment API ? HOT 2
- Projects.SetConfig endpoint fails with 400 Bad Request due to ConfigInput.MaxObjectSizeLimit zero value not being omitted HOT 5
- Contexts HOT 1
- Can't get the library working for repo names containing slashes HOT 1
- `ProjectBaseOptions` improper uri tag for `Skip` field
- API-Methods: Return map/slice directly, rather than a pointer to one
- Proposal: Use Timestamp type for all time fields. HOT 3
- Simpler fix for credentials with characters such as '/'. HOT 2
- Optimize Error-Handling-Code of read body
- Only 500 changes are being pulled HOT 8
- labels should not be pre-escaped HOT 3
- All DELETE api calls returns error 400 (Bad request) HOT 5
- Function DeleteDraftChange should be renamed as DeleteChange HOT 1
- Hello? <crickets> HOT 6
- SetReview support for --project option HOT 2
- Document missing OpenAPI/Swagger-Defintion/API-Spec HOT 2
- Error in Projects.CreateProject: PUT a/projects/{name} invalid JSON in request HOT 6
- Add support for context package HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from go-gerrit.