Download - 7 Source Control and Release Management
![Page 1: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/1.jpg)
BEXIS Tech Talk Series
#7: Configuration and Change Management
Javad ChamanaraOctober 2016Jena, Germany
![Page 2: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/2.jpg)
2BEXIS Tech Talk #7: Configuration and Change Management
Reminder: The CM
DataMetadata
Data StructureMetadata Structure Semantics Geo
Administration Security
«use»
«use»
«use» «use»
«use»
![Page 3: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/3.jpg)
3BEXIS Tech Talk #7: Configuration and Change Management
Reminder: The Architecture
DB2 PgS
Data Access
Security
Core Functions
UI
UI Framework
...
Modularity
Integration
Synthesis Work
Semantic Search
Analytics
User Defined
Spatial Querying
External Tools
Web Services
Archiving
Import/ Export
Publishing
![Page 4: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/4.jpg)
4BEXIS Tech Talk #7: Configuration and Change Management
The Application’s Elements
• Core• Modules• Contributions• 3rd Party Libraries
![Page 5: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/5.jpg)
5BEXIS Tech Talk #7: Configuration and Change Management
Configuration and Change Management
• Change Management• Source Control• Release Management
![Page 6: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/6.jpg)
6BEXIS Tech Talk #7: Configuration and Change Management
Change Management
• Agile– Scrum
• MS TFS– Backlogs– Tasks– Change Requests– Sprints
![Page 7: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/7.jpg)
7
Change Management
• Product backlog• Release backlog• Sprint backlog• Work Item assignment
BEXIS Tech Talk #7: Configuration and Change Management
![Page 8: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/8.jpg)
8BEXIS Tech Talk #7: Configuration and Change Management
Source Control
With a source control system:• Changes to the artifacts are preserved• Changes can be done in isolation• Changes are eventually integrated
![Page 9: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/9.jpg)
9BEXIS Tech Talk #7: Configuration and Change Management
Source Control
• Isolation– Bug fixes– Releases– New Features– Developer work
![Page 10: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/10.jpg)
10BEXIS Tech Talk #7: Configuration and Change Management
Source Control
• Integration– Merging isolated work– Propagating fixes and features– Promoting quality
![Page 11: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/11.jpg)
11BEXIS Tech Talk #7: Configuration and Change Management
Source Control
• Use commits for change preservation• Use branches for isolation• Use merging for integration
![Page 12: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/12.jpg)
12BEXIS Tech Talk #7: Configuration and Change Management
Branching Approach
• Branch for Team Members• Branch for Features• Branch for Architectural elements• Branch for Releases• Branch for Safekeeping• Ad-hoc Branching– Risky features– Complex bugs during releases– Temporary work: refactoring, framework upgrades
![Page 13: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/13.jpg)
13
Branches
BEXIS Tech Talk #7: Configuration and Change Management
Master
DEV
Modules/DCM Modules/RPM
Components/DLM Components/EXT
Components/DLM
_Data
![Page 14: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/14.jpg)
14BEXIS Tech Talk #7: Configuration and Change Management
The Master Branch
• Is used for safe keeping• No coding, no changes• All test cases pass!
![Page 15: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/15.jpg)
15BEXIS Tech Talk #7: Configuration and Change Management
The DEV Branch
• Integration Branch• Always for the next release• No coding here• Code always compiles!• Integration tests pass!• Occasional changes for conflict resolution:– Configuration– Merge
![Page 16: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/16.jpg)
16BEXIS Tech Talk #7: Configuration and Change Management
The Module Branches
• Adding new features to next releases• Unit tests pass!• Branch name: modules/<moduleID>• Forked from the DEV branch• Get merged from DEV first• Merge into DEV• May be locked during releases
![Page 17: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/17.jpg)
17BEXIS Tech Talk #7: Configuration and Change Management
The Component Branches
• Adding new features to next releases• Unit tests pass!• Branch name: components/<componentID>• Forked from the DEV branch• Get merged from DEV first• Merge into DEV• May be locked during releases
![Page 18: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/18.jpg)
18BEXIS Tech Talk #7: Configuration and Change Management
Tooling
• GIT• TFS VC– GIT integration
• Github• Visual Studio
![Page 19: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/19.jpg)
19BEXIS Tech Talk #7: Configuration and Change Management
Policies & Practices
• Branches can be used by more than one developer
• Developers may work on more than one branch
• Branches may have ad-hoc/temporary sub-branches
![Page 20: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/20.jpg)
20BEXIS Tech Talk #7: Configuration and Change Management
Policies & Practices
• Work in isolation• Get upper changes ASAP• Pull before Push• Fix issues on deepest (or isolated) branch• Maintain target branch’s quality after merging
![Page 21: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/21.jpg)
21BEXIS Tech Talk #7: Configuration and Change Management
Releases
• To publish a coherent set of working artifacts– A set of chosen features– From the release backlog– Every 3-4 months
![Page 22: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/22.jpg)
22BEXIS Tech Talk #7: Configuration and Change Management
Release Materials
• Binary code• Source code• Documentation• Sample Demo Site• Initial Data/Workspace• DB Scripts
![Page 23: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/23.jpg)
23BEXIS Tech Talk #7: Configuration and Change Management
Builds under Control, too!
• Bundling Scripts– Compilation– DB change scripts– Document/Manual Formatting (PDF, HTML)– Branding Information– Commands– Packaging
![Page 24: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/24.jpg)
24BEXIS Tech Talk #7: Configuration and Change Management
Branching for Release
• Release branch is:– forked from DEV• Name: /releases/<x>.<y>
– Used for stabilizing the designated feature set– Used by all the release team members– Is built daily– Is staged daily (for testing)– Is tagged, bundled, and published
![Page 25: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/25.jpg)
25
Branching for Release
BEXIS Tech Talk #7: Configuration and Change Management
Master
DEV
R1
Released V1.0 Released V1.1
R2
Released V2.1Released V2.0
![Page 26: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/26.jpg)
26BEXIS Tech Talk #7: Configuration and Change Management
Release Branching
• Is used to isolate other branches, releases, and the development from the changes.
• Supports multiple alive releases– Previously released ones– The current one
• Allows previous releases reproduction• Permits exact version bug assignment, fixing,
and promotion.
![Page 27: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/27.jpg)
27
Release Integration
• Merge all module and component branches to DEV
• Create the release branch from DEV• Do not merge again from DEV during release– Necessary cases can be handled with care!– Merge to DEV is safe
BEXIS Tech Talk #7: Configuration and Change Management
![Page 28: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/28.jpg)
28BEXIS Tech Talk #7: Configuration and Change Management
Release Integration
• Promote the release code– Realases/<x.y> DEV– DEV module branches– DEV component branches– DEV master
• Tag branches accordingly
![Page 29: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/29.jpg)
29
The Github Repository
• https://github.com/BEXIS2• Updated after major releases
BEXIS Tech Talk #7: Configuration and Change Management
![Page 30: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/30.jpg)
30BEXIS Tech Talk #7: Configuration and Change Management
Public Repository
Master
DEV
R1
Released V1.0 Released V1.1
R2
Released V2.1Released V2.0
Github Repo: master
V1.0
V1.1
V2.0
V2.1
![Page 31: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/31.jpg)
31
The Public Repository
• Open Source• Fork• Pull Request• Feature Request• Bug Reporting
BEXIS Tech Talk #7: Configuration and Change Management
https://github.com/BEXIS2
1: <Mailto: [email protected]> <Subscribe to: https://lserv.uni-jena.de/mailman/listinfo/bexis2-dev>
1
1
![Page 32: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/32.jpg)
32
Contribution Projects
• Use the public repository• Pull the released versions• Develop on top of them• Publish their contribution freely• Share their enhancements with us
BEXIS Tech Talk #7: Configuration and Change Management
![Page 33: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/33.jpg)
33BEXIS Tech Talk #7: Configuration and Change Management
Outlook
What‘s next in the talk series?
Implementation Notes
![Page 34: 7 Source Control and Release Management](https://reader035.vdocument.in/reader035/viewer/2022062900/58d016f01a28ab97708b48f9/html5/thumbnails/34.jpg)
34BEXIS Tech Talk #7: Configuration and Change Management
34
Thanks!Questions?
Contact:[email protected]://bexis2.uni-jena.de
Acknowledgment