-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Branches naming scheme #2
Comments
@ddnomad It's complex question, I'm thinking about branch merging policy. We need to have decentralized structure because centralized policy slows down the development process and destroys flexibility. Version which you propose is decentralized, but features aggregation in single developer branch can cause problems of fixing branch related bugs. |
@ddnomad Only problem which I have right now is hot fixes. I suppose hot fixes should be added as pull request to development branch or be implemented in separated branch like hf-. |
@Neketek I was thinking that anyway features tend to be merged into master. So workflow is more or less linear. This approach may cripple though if certain developer would suddenly start working on 3 or more features simultaneously (which is an uncommon scenario in my opinion). If developer works on 2 features in the same time they can be localized to The issue is that GitHub do not support setting access policy for glob branches (like developer Anyway other suggestions are welcomed as always. |
OK, hotfixes. We could throw three more branches for each developer named Then the issue is solved I presume. |
|
Description:
|
@ddnomad Sure, we can add some prefixes for better understanding of branches purpose, It could be something like |
@Neketek it seems like you have a typo in the name of dev collaboration branch. Or do you want to name it as a backquote "`"? :) |
Well, overall it looks nice. I would add prefixes for features (to be discussed) and additional branch for each dev where experimental stuff can be stored and showcased. |
@ddnomad Considering pattern of the development almost everything in the developers branches will be experimental :). For real experiments we can( should) create epics with a description of that experiments. Epics have custom names and probably should have primary prefix |
@Neketek what is |
@Neketek Any updates? (see my previous question) |
@ddnomad No updates yet, but I'm going to push one soon: prefixes list and some naming changes. |
Nice |
List of the branch prefixes. Positions in the list represent ordering of the prefixes in the branch name:
Example of usage:
Translation:
If branch has no |
@ddnomad So, you'll reduce your branches to |
@Neketek ok so far so good. I'll cleanup my branches. |
@Neketek if I'll have time to spare I can setup git hooks for our project that would ban creation of a branches that do not follow the convention described above. Do we need such a feature? |
@ddnomad Yes, it will be useful, but generally this hook should track only order of static prefixes. |
Ok, I'll look into it at some point in the future. |
Tomorrow I'll create document which contains all useful information from this issue. |
I propose to introduce a fixed git branches naming scheme. It would make merging and overall developer interaction a little bit more intuitive. Moreover it would allow us to maintain more gradual access control across the whole repository (each developer has access only to
<developer>-*
branches of his own). Branches would be named like the following:<developer>-exp
- experimental features and proves of concept. Should not be merged into master or other upstream branches. Mostly serves as a stash for concept sketches and "maybe_implement" type of code.<developer>-nightly
- WIP branch where an actual development would take place. Should not be merged into master or other upstream branches.<developer>-testing
- testing branch where release candidate code is polished and prepared for merge with master or upstream branch.<developer>-rc
- release candidate branch. Could be reviewed by other developers to give feedback or help with a development (fork). Should not be merged into master or other upstream branches.<developer>-stable
- stable branch. Features that can be merged into master or upstream. The code is tested and is ready for merging into upstream.In addition at least two "master" branches should exist:
testing
- branch where merged across all<developer>-stable
branches features are tested to make sure they work all together.master
- main branch where only tested, production grade code reside.Each developer will go through at least
<developer>-nightly -> <developer>-stable
branches and then submit a pull request totesting
. @Neketek then merge all stable branches intotesting
(or reject if needed) and all developer team makes suretesting
branch behave as expected. If everything is working @Neketek then mergetesting
intomaster
.As a rare exception developers might create other branches though they must start with
<developer>-
prefix and developers themselves are responsible for deleting these branches afterwards. Generally, such behaviour is discouraged.Thoughts?
The text was updated successfully, but these errors were encountered: