Replies: 1 comment 2 replies
-
I'm still not seeing the light... I see dates as having their own tradeoffs, some are very nice (like being able to release minor & patch changes to existing consumers) Regarding "monolithic PRs":
In this situation:
The issue would be only revealed if I think splitting API and frontend have a few advantages that get lost with monolithic PRs:
And fundamentally the dev experience is not that bad when you get in the habit of clean commits and early, frequent PRs |
Beta Was this translation helpful? Give feedback.
-
TLDR
I'm starting to lean more towards daily releases (https://calver.org/)
Why
I was writing out some guides for release processes and it became clear that semver (maintaining information about major,minor,patch changes) inevitably requires maintaining multiple versions across time.
The main reason is that we are allowing potentially breaking changes (for consumers) in the form of api improvements to be pushed out in releases and then expecting to do a catch up later (potentially with many changes to absorb)
This in combination with forcing change sets with PRs to be split causes a bunch of headaches.
I see 3 possible scenarios for changes to be made to the API source code:
For comparison these are two possible sets of process:
Semver Process
Critical Bug in Production
Changes Required for a Feature
Feature API changes Should ALWAYS be backwards compatible
I havent worked this out yet but it would involve multiple branches and be similar to Critical Bug in Production
API Improvements
Calver Process
Critical Bug in Production
/carbonmark-api
&/carbonmark
carbonmark-api/.package.json
& target version inconstants.ts
Changes Required for a Feature
Same as Critical Bug in Production ^
API Improvements
Same as Critical Bug in Production ^
Essentially we have flipped the effort burden to be from fixing bugs and developing features (which are our most common processes) on to API Improvements which are the least common process.
The key to this process requires that API and App changes (the combined changeset) can be reviewed and delivered simultaneously.
Beta Was this translation helpful? Give feedback.
All reactions