Opened 9 years ago
Closed 9 years ago
#1025 closed defect (fixed)
Patchmanager support for new branching system
Reported by: | Alex Dumitru | Owned by: | George Merticariu |
---|---|---|---|
Priority: | major | Milestone: | 9.2 |
Component: | patch_manager | Version: | development |
Keywords: | Cc: | Dimitar Misev, Vlad Merticariu, Peter Baumann, George Merticariu | |
Complexity: | Medium |
Description
Based on discussions among rasdaman developers we are thinking of having the following branching mechanism in rasdaman
Branches:
- master - contains always the latest release of rasdaman. It's updated each x (1 or 2 should be a good number, for example on Wednesdays) weeks to include the latest fixes and based on developer agreement selected features from experimental.
- fixes - this branch contains latest fixes based on the bug reports on the rasdaman wiki.
- experimental - this branch contains all the patches in fixes + experimental features that are planned for next releases.
This means that the patchmanager has to be modified to allow submission of patches for the new system. The following features have to be added:
- The branch select dropdown should contain only two values: experimental and fixes
- Once a patch is submitted to fixes and is accepted, it is automatically committed to fixes and experimental branches. This should be done in a transactional way, meaning if the patch fails to apply to either of the two branches it is applied to neither.
- Patches to experimental are committed to the experimental branch once accepted.
@Aulon: The sources for the patchmanager can be found here: http://rasdaman.org/browser/patch_manager Look over them, install it locally and report back once you are ready to implement the changes.
@all: Please check that the system makes sense, I believe this is the one we agree to.
Change History (12)
comment:1 by , 9 years ago
comment:2 by , 9 years ago
Cc: | added |
---|
How are experimental and fixes merged to master? Any chance to do this via the patchmanager as well?
@Aulon: The sources for the patchmanager can be found here: http://rasdaman.org/browser/patch_manager Look over them, install it locally and report back once you are ready to implement the changes.
To make it clearer: you should install trac locally, and then the patchmanager as a plugin. I'd suggest to do this in a Debian 8.1 VM and install trac 0.12.5 with apt-get, in order to match the server environment of rasdaman.org. Maybe George already has such a VM btw, as he has worked on the patchmanager earlier.
comment:3 by , 9 years ago
yes, hope we can integrate with patchmgr. Say, with a column mentioning the current branch (experimental, fixes) and a dropdown menu for the target branch (fixes, master).
All notification on incoming patches should go to a separate mailing list to which we can subscribe whomever we want.
comment:4 by , 9 years ago
Not sure how easy that(apply patches from other branches to master) would be, as patches tend to depend one on the other and the correct sequence is needed.
Maybe a button "Sync Experimental with Master" might make more sense and be a bit easier to do?
comment:5 by , 9 years ago
I see; OTOH, syncing all might overdo it (eg, one feature experimental, another to be released). Maybe then we should give up patchmgr support for this step and rely on commandline?
comment:6 by , 9 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:7 by , 9 years ago
Also, add link to CR for each patch in a different column, you can parse it from the body of the git log.
comment:8 by , 9 years ago
Component: | undecided → patch_manager |
---|---|
Milestone: | → 9.2 |
comment:9 by , 9 years ago
I implemented the requirements mentioned in the ticket and there is an issue with the proposed solution.
Problem:
- Send patch to fixes → "create file <test> with 1 line"
- Click on "Apply patch" ⇒ patch is applied to both branch fixes and experimental. File <test>, with 1 line is created on both branches.
- Sent patch "add new line to <test>" to experimental and apply it ⇒ branch fixes has file <test> with 1 line and branch experimental has file <test> with 2 lines
- Sent patch "add new line to <test>" to fixes and apply it ⇒ patch fails to apply to experimental since <test> on experimental is not the same as the one on fixes ⇒ patch fails to apply
Solution 1:
Apply the patch on fixes and then merge the changes automatically on experimental. If the merge fails then don't apply the patch at all.
Solution 2:
Apply the fixes patch on "fixes" and experimental patches on "experimental". Merge fixes into experimental on a weekly basis.
follow-up: 11 comment:10 by , 9 years ago
I like a modified (1):
- patch gets submitted against experimental
- after inspection & verification it is decided to forward the patch to either fixes (for urgent fixes to the current release) or to master (contributing to the next release) or remaining on experimental (if "nice to have" or "still to be investigated).
Note: this does not mean that any patches get inhibited, it is rather a decision on _where_ they go.
comment:11 by , 9 years ago
Replying to pbaumann:
I like a modified (1):
- patch gets submitted against experimental
- after inspection & verification it is decided to forward the patch to either fixes (for urgent fixes to the current release) or to master (contributing to the next release) or remaining on experimental (if "nice to have" or "still to be investigated).
Note: this does not mean that any patches get inhibited, it is rather a decision on _where_ they go.
This implies that any patch sent to experimental can be also send to fixes ar master. This will be accomplished anyway by the manual merge of the experimental branch into master. The problem that I am confronting with is how to apply patches meant for the fixes branch to experimental.
comment:12 by , 9 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
friendly amendment:
As recent incidents show we need this asap!