5.0 incompatible changes plan
-
[ ] CHANGELOG for all the new merged stuff since 4.x.
-
[x] changed
under_scorealgorithm https://github.com/abonas/kubeclient/pull/355 -
[x] document watch #436
-
[ ] change watch exceptions behavior https://github.com/abonas/kubeclient/pull/275#issuecomment-591928097
-
[x] support ruby 3.0 #500
-
[ ] drop EOL ruby versions ≤2.4
-
[ ] I'm thinking about making all methods not documented in README
private?- Specifically
get_entities,patch_entityetc? These are used in the wild a bit. Should I keep them until alternative #332? But.public_send("get_#{...}", ...)while clumsy is workable,.sendand a major release is perfect time to make people aware they're using undocumented functionality. - [x]
.rest_clienttoo. UPDATE: replaced by.faraday_client, intentionally public.- [ ] TODO document
- header manipulation hacks like samson did for #358 ?
I don't want these to hold up 5.0, or block people from migrating. OTOH, private methods are still available with
.send(...), just people will be more aware it's unsupported. - Specifically
-
[x] several tests disabled due to expired TLS certs #483
-
[x] truffleruby failing on master with "ArgumentError: unknown keyword: status" e.g. https://github.com/abonas/kubeclient/pull/495/checks?check_run_id=2044157037 UPDATE: now passes e.g. https://github.com/abonas/kubeclient/runs/2535621628 :man_shrugging:
- What about Remove deprecated
KubeException#293? => Not now. As explained there,HttpErroris not sufficient, we need some top-level exception. Should probably introduce aKubeclient::Errorbut that's a compatible change, and should give users time to adopt it before droppingKubeException.
Apologies for delays. Working from home with kids has been... challenging. I hope to get a lot done next week.
I'd propose:
- get rid of most of the api:
User has to set the api version and resource anyway, so much more efficient and simple to call
client.get("nodes")without doing the extra api discovery 🤷 - remove struct and return hashes ... it's an expensive crutch :D
get rid of most of the api
That will be an entirely different gem :smile: There is a non-breaking road though: first implement #332, then much later see how well people adopted new style and how people feel about dropping existing API.
remove struct and return hashes
Now that it's simple matter of ``as: :parsed/as: :parsed_symbolized, I don't see a large enough payoff to justify breaking compatibility. We could do small nudges like make as:required inClientcontructor to stop encouraging a bad choice. Or even make people require and inject recursive-open-struct and stop depending on it? But _forcing_ people with lots of working.foo.barcode to rewrite everything to[:foo][:bar]` form would be a disservice IMHO.
If you care about this, start by changing README to prominently explain why the new modes are recommended.
In short, both of these points sound more "8.0" (and maybe never) then "5.0" to me :)
- [ ]
.rest_clientis definitely going private (or away) to unblock #466.
#332 sounds like a good step forward
... requiring as also sounds good (with or without removing struct
runtime dependency)
On Tue, Nov 3, 2020 at 9:48 AM Beni Cherniavsky-Paskin < [email protected]> wrote:
- .rest_client is definitely going private (or away) to unblock #466 https://github.com/abonas/kubeclient/pull/466.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/abonas/kubeclient/issues/435#issuecomment-721281891, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAACYZY35UYNXZRLEGUQSNDSOA665ANCNFSM4LFBW3GA .
stumbled into the whole url parsing mess again 😞 so add to the list:
- make version required
- make version
apps/v1instead of mashing up host/apis/apps and v1 - dynamically set
apiorapisdepending on version == v1 ... and remove all the old glue/parsing code to have a single interface
plz start a v5 branch so I can make PRs against that
master is already v5, recent releases were from backports to v4.y branch
Paternity leave ended :baby:, sleeplessness continues, I didn't make progress I hoped for :-(
- If someone wants to help, one simple but important step is update changelog with everything unreleased we've merged on master.