0.8.0 - BREAKING CHANGES RELEASE - Scope, Timeline + Q&A - ETA August 3, 2023 #5374
Replies: 7 comments 11 replies
-
Thanks for this @gerhard 🙌 I agree with the timeline.
Using a different branch seems safer to me. That allows us to push an hotfix release if we need to. Non-breaking?We can do the following in a non-breaking change, but perhaps the best UX would be a breaking one so I need to revisit that soon and I’ll update my opinion on it: Needs feedbackFor clarity, the following two are mutually exclusive. One is for fixing I proposed to deprecate it (rationale is in the issue) however would we skip deprecation for this release and just remove it? Removing is a bigger change for users. Deprecating now is a non-breaking change and we could remove it in the next breaking release. This one has a much better UX on returning lists of objects, but it requires feedback because of an implicit/explicit aspect and how it can affect future changes to the API: More to addI’d like to add this trivial change to Python:
There’s no issue for this yet, but recently with @sipsma, we made changes to codegen to be able to get an instance of a type if you only have the type name and its ID scalar (e.g., We should find a way to standardize this and use this opportunity to possibly make a breaking change here. Deprecations to removeAll current API deprecations are pretty old:
Using the Python SDK without async has been deprecated since v0.6.0 (May 25, latest is v0.6.2). Can we remove it on this release or is it better to wait another 6 months? The motivation for this removal and migration guide are explained in the issue: |
Beta Was this translation helpful? Give feedback.
-
Another issue to add: |
Beta Was this translation helpful? Give feedback.
-
Having talked to @mircubed about the versioning bump, we are thinking bumping 2 minors for all artefacts ( |
Beta Was this translation helpful? Give feedback.
-
Generally speaking I don’t see any benefit to batching breaking changes together in one big “breaking” release.
|
Beta Was this translation helpful? Give feedback.
-
One additional breaking change I think we should consider as part of this is to remove Reasons to remove:
Reasons NOT to remove:
Overall, I think the reasons to remove outweigh the reasons not to and we should thus remove it in this release, but the fact that we haven't deprecated officially yet is not to be discounted; in an ideal world we should strive to always follow the process of marking as deprecated for a while and then removing. This feels like it may be an exceptional case, but certainly highly debatable. Another possibility would be to deprecate it in this release and then, to avoid the problems w/ the re-architecture, we update our SDKs' codegen to just call the language's stdlib to get the env var rather than implement it as a real graphql query? Just thinking out loud as I type this 🙂 |
Beta Was this translation helpful? Give feedback.
-
Now that this has been brought to my attention I realize it's quite a breaking change since it touches some common fields! The cruft of it is that in the Go SDK, when you use However, it touches several other fields that would be turned into pointers as well:
This isn't something we can deprecate, we need to do it now, don't you agree? \cc @sipsma @vito @aluzzardi |
Beta Was this translation helpful? Give feedback.
-
This is now out. Thank you all for a massive effort 🙌 All follow-ups are now in: |
Beta Was this translation helpful? Give feedback.
-
Scope
0.8.0 BREAKING CHANGES RELEASE - 🐙 GitHub Milestone
Why are we doing this?
Since we shipped SDKs in November 2022 - 🐹 sdk/go/v0.4.0, 🐍 sdk/python/v0.1.1 & ⬡ sdk/nodejs/v0.1.0 - we announced numerous deprecations and discussed few breaking changes in 🐙 GitHub issues & 👾 Discord, but strived to not break anything (unless absolutely necessary).
As a rule of thumb, we try to make breaking changes infrequently & batch them together so that all the disruption happens all at once, rather than a little every few weeks.
Six (6) months later, the time has come to remove all those deprecations and introduce a few breaking changes. This is necessary to make a number of upcoming feature easier & implement the hard-earned feedback from our users. These breaking changes will affect the 🚙 Engine + 🚗 CLI & also all SDKs.
The goal of this discussion is to:
There are many moving parts, different opinions & we all have summer holidays to look forward to, so we want to make the best of this period in the year 🏝 ⛰ ⛵️
What is the expected timeline?
We would like to make these breaking changes releases public at the beginning of August, which is in ~4 weeks time. This is what a rough timeline looks like (red line is today):
This gives us enough time to spread the message, have the necessary conversations & start implementing the changes. It also works well with various summer holidays that people have coming up. We want to be around for the next 2 weeks after the breaking changes release to quickly address the aftermath.
Other things that went into considering this timeline:
Questions & Answers
Do we skip a regular release (usually every 2 weeks), or merge in a different branch than
main
?We will merge changes into
main
as we do for all other releases, no need to delay or use a different branch.Will the Engine + CLI & SDKs all have the same version?
Yes. Before this release, all our artefacts had the
v0.6.x
version, except the Go SDK which was atv0.7.x
.Why are we bumping two minor versions, i.e.
0.6.x
->0.8.0
?To signal that this is a breaking changes release. It also gives us the opportunity to sync the minor version across all artefacts: Engine + CLI & all SDKs.
What are all the places that we need to announce this?
Who owns the announcement blog post?
@helderco
What are we missing? Any concerns and/or constructive feedback? Please share it all below 👇
cc @dagger/maintainers
Beta Was this translation helpful? Give feedback.
All reactions