This is great. I have been thinking of building something similar to track how many cars are speeding on my street so I have data for discussing changes with the neighborhood and local government.
This is just an all around better concept than mine. Love all the extra data it can gather. Especially living near schools having the data of cyclists and pedestrians will make a much better data set around safety and methods to tamp down on speeding and cut through traffic.
The develop/main split for us is not costly I'm not sure what overhead others are incurring there. We run deploys on demand throughout each day. We don't have the same sign off process or block other deploys. We just send develop to staging and once it is confirmed good we merge it to main and then out to production.
> IMO you don't gain a lot by merging something that doesn't have a user-facing deliverable (how can you be sure the code you're merging is right or not?).
I disagree but to each his own. I think you can release small parts with testing around it. I often release half of a back end feature, then the other half, then the front end all in separate branches and releases. All I really need is to have the parts broken down into logical testable chunks.
We really only have staging/production so it works great for us, we don't have to support multiple releases at the same time. I agree it gets more difficult if that is a concern.
Sorry, I didn't mean to imply that the branch is named for the JIRA ticket. I personally like to have the ticket number in the branch name along with a description though. It was more that each ticket branch is for a small chunk of work that can be merged and deployed when a single ticket is complete not when the whole feature is complete.
I agree with the middle ground comment. That is how we tend to do things where I work.
We have a modified GitFlow:
main: is the source of truth and is what is in production.
develop: is the constantly moving branch we make PRs against. You can commit directly here which is discouraged but it isn't a hard rule.
ticket: is a branch for each JIRA ticket not each feature.
release: We don't make these and just use tags on main. Each "release" is a merge from develop to main and that gets deployed.
hot fix: These are made against main and merged back to develop when they are used. It is rare enough I have to look up our "official" procedure.
With that we can easily use PRs, release code in small hidden chunks, do code reviews, etc.
Seems like the big win they got was releasing small hidden chunks of a feature and deploying it to staging. They also gave up some nice things as well like code review before merging.
This is just an all around better concept than mine. Love all the extra data it can gather. Especially living near schools having the data of cyclists and pedestrians will make a much better data set around safety and methods to tamp down on speeding and cut through traffic.