question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[Proposal] Feature branch development

See original GitHub issue

Feature branch development for long running features seems to be the preferred way for collaboration between different contributors. It also raises some concerns about code quality and PR size (when merging to main). While our initial attempt at this development model realized these concerns and halted further feature branch development, this proposal aims to address those concerns with an alternate workflow.

We can use a hybrid of the feature branch development model and the Continuous integration development model [1]. We reintroduce feature branch development with the following safeguards:

  1. High frequency integration: We raise PR’s to main not once the feature is complete, but whenever we reach the closest integration point during development. e.g. once the plugin is bootstrapped, or a core feature is complete. we also frequently rebase changes from main back into the feature branch (Thanks @kavilla for calling this out) a. This makes the integration frequency much higher allowing us to catch integration issues much quicker. b. This still lets collaboratively develop on a big feature that is not ready for main
  2. Treat feature branch PR’s the same as PR’s to main. i.e. CI is run on all PR’s, no incomplete work should be merged, Tests are necessary for all PR’s etc. a. This maintains the code quality going into each feature making the integration to main PR’s much easier and quicker b. More visibility during development since it gives reviewers the necessary time to review each PR.
  3. Feature specific labels: This helps identify feature related issues and PR’s. (Thanks @joshuarrrr)

This should address the main concerns raised during the initial few features that were developed using this flow. We can experiment with this model for a few features before committing to it too since development without it seems to be difficult at the moment.

[1]Ref: https://martinfowler.com/articles/branching-patterns.html

Issue Analytics

  • State:open
  • Created 10 months ago
  • Reactions:2
  • Comments:9 (9 by maintainers)

github_iconTop GitHub Comments

1reaction
kavillacommented, Nov 17, 2022

I like it! For the feature branch we can also call out that merge PRs from main can be made into the feature branch to keep it up to date as possible. Also, enforces the tests as a requirement instead of tests as an after thought. Thanks @ashwin-pc for making this.

0reactions
ashwin-pccommented, Dec 13, 2022

yeah, that’s a tradeoff that we are experimenting with. The hope is that the initial tradeoff will result in much smoother development as the feature progresses and save time when the merges to main needs to occur. It will also help guide some of the foundational changes made for the feature w.r.t how it integrates with dashboards since that’s where it most likely that less than ideal decisions might be made due to gaps in our documentation.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Develop on a feature branch - GitLab Docs
Propose functionality by submitting a feature request. Join First Look to help shape new features. Feature availability and product trials. View pricing to...
Read more >
A Modest Git Branching Proposal - LinkedIn
I've seen a development lead merge in a feature by first branching from it (why?), then branching from that, and again, and again, ......
Read more >
Your Branching Strategy for Multiple Releases - Perforce
Learn about feature branching, merge strategies, and tips to improve ... Branching code helps software development teams work in parallel.
Read more >
Git Feature Branch Workflow | Atlassian Git Tutorial
A feature branch is a temporary branch used for development or testing purposes. Learn about the best way to manage them using this...
Read more >
A Method Proposal for Formulating a Branching Strategy - Helda
In software configuration management, branching is a common practice, which can enable efficient parallel development between developers and ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found