Skip to content
This repository has been archived by the owner on Jan 8, 2019. It is now read-only.

Extend dennis to help with managing feature branches #41

Open
chrisui opened this issue Jan 13, 2016 · 1 comment
Open

Extend dennis to help with managing feature branches #41

chrisui opened this issue Jan 13, 2016 · 1 comment

Comments

@chrisui
Copy link

chrisui commented Jan 13, 2016

In a quest to automate and speed things up (avoiding vital need for knowledge of process/implementation details) putting this out there for thoughts.

  • dennis release *
    • IF pending pull requests into release branch [1]
      • bail
  • dennis start feature <BRANCH_NAME> [2]
  • dennis start fix <BRANCH_NAME> [3]
  • dennis finish [4]
    • ask for details from QA.md [4]
    • automate things like a jira link from branch name
    • IF type="fix":
      • IF no hotfix release branch exists: [5]
        • rename branch to "release/0.0.x"
        • run prepare
      • IF hotfix release branch exists: [6]
        • create pull request into existing release branch
    • IF type="feature": [7]
      • create pull request into develop

[1] Extending the current script if there is ever a pending pull request into a release branch we should have to address that first before releasing.
[2] This currently would just be a glorified git checkout develop && git checkout -b <BRANCH_NAME>
[3] Again, just a glorified git checkout master && git checkout -b <BRANCH_NAME> but also distinguishes itself as a "fix" which allows us to do some clever stuff later. Here you "just want to get a fix out as quickly as possible" so you're thinking about it in an isolated box.
[4] This command, dependant on the type, can prompt for more details or open favoured text editor with QA.md to edit in the same spirit of git commit.
[5] Fix: If no existing hotfix release (0.0.x) branch exists then we will create it with prepare and push our changes to that
[6] Fix: If there is a hotfix already about to go out we may as well jump onboard and bundle our fix with it rather than have to wait (remember the fix was developed in an isolated branch from master anyway so it should be good to go by the time it hits a release branch)
[7] Feature: Opted not to provide the "get shit out quick so allow hopping straight onto a feature release" here as we should encourage everything hitting develop in a stable state. This simply creates a pull request into develop like we usually do with features and sets up correct tagging.

This is all, of course, used in conjunction with the standard prepare and release commands.

@yannispanousis
Copy link

Really useful thanks for taking the time!

I'm all for bundling commands and practices into shorter and more memorable steps definitely.

My only argument would be, in general, to avoid unnecessary abstraction over simple tasks, because people then lose visibility of the real work being done.

Clearly achieving the above is what we do for a living, but when it becomes an issue is when something goes wrong in your git flow and you're too uncertain about what this 'dennis' tool has done to your branches that you don't want to touch anything in case it all goes boom :p

I don't mean this as a reason not to move forward by embracing our manual steps and building automation around them, I just think we should keep in mind to avoid magic where it is not needed.

Of course this could all be solved by verbose logging on dennis potentially!

@yannispanousis yannispanousis changed the title Extend dennis to help with managing branches Extend dennis to help with managing feature branches Feb 19, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants