Hi, I'm a little bit confused about how to keep my...
# ktor
w
Hi, I'm a little bit confused about how to keep my PR ready for merge. https://github.com/ktorio/ktor/pull/4421 The base got switched to 3.1.0-eap but that causes merge conflicts in the .api files. I fixed them via a merge, but now the 3.1.0-eap branch got force-pushed, so that branch is a moving target and the merge commit doesn't make sense. So, I force-pushed my single commit again (relative to main) without the merge commit. Am I supposed to even re-generate the .api files or should I just not touch them and let the CI fail? How should conflicts with 3.1.0-eap be handled if it's a moving target? Will someone from the Ktor team just cherry-pick my commit onto 3.1.0-eap and solve the conflicts? The CONTRIBUTING.md file only talks about opening the PR against main. Why was my PR's base switched away from main?
a
Am I supposed to even re-generate the .api files or should I just not touch them and let the CI fail?
You should regenerate them.
Why was my PR's base switched away from main?
Because your PR introduces a new API that can be included only in the minor and major releases.
now the 3.1.0-eap branch got force-pushed
This shouldn't have happened, in my opinion.
w
OK, so I should just rebase on the eap branch? And if a force-push happens again for whatever reason I'll rebase onto the new eap.
👌 1
Is it a problem that some of the CI checks seem to always turn red due to connection timeouts and other flakiness?
e
Hey! Sorry for the delay with the review. Please make sure that all API changes are committed. I will rebase your branch on 3.1.0-eap after the review, before merging 🙂
w
No problem. 🙂 I've just pushed a rebase, on the latest eap.
e
Thanks! The eap branch is usually rebased on the main and force-pushed once a week to have fewer conflicts
w
Alright. It would be nice to have this documented. BTW, I'm wondering if Jujutsu would be able to track these rebases and thus make the workflow easier. Rebasing with --onto for a moving target is something that I always have to look up again and it's not possible within the JetBrains IDEs as far as I can see.
More importantly, should the Serializable helper API better become part of some other library like kotlinx.serialization or kotlinx-io or even the Kotlin stdlib? It's quite universally useful and Ktor feels like the wrong place for it.