open-source software release management best practices · 2017-01-24 · agenda oscar, the ow2...
TRANSCRIPT
OSCAR Quality Programme
Open-Source SoftwareRelease Management
Best Practices
Agenda
OSCAR, the OW2 quality programme
Examples of open source projects release processes
Key steps and best practices in release management
Resources
2
3
OW2 QualityProgramme
OSCAR: a Set of Best Practices and a Platform
4Governance Engineering
Requirements
Metrics
Visual Reporting
Risk analysisOM
M Fo
rm
Metrics / Scorecards
Documentation
Privacy / GDPR
Standards
Licenses and IPFossology
SonarQube
Static code analysis
Code / Commits / Bugs
Testing / CI / Release
Cloud Deployment
OMM
Form
5
Examples ofOSS Products
Release Processes
Examples of Open Source Projects Release Processes
OW2 projects:Imixs-Workflow release management XWiki release plan
Syncope release-processNuxeo doc.nuxeo.com/releasingOpenStack release-managementDocker release check list
6
Ex: XWiki Release Plan
7Reference: XWiki Release Plans
Ex: Syncope Release Plan
8Reference: Syncope release-process
9
Recommended Stepsand Best Practices
in OSS Release Management
Key Recommended Steps and Best PracticesRelease versioningRelease environment setupIssue clean upContinuous integration checkPerforming the releaseRelease notesPackagingDocumentation updatePublicationAnnouncement and promotion
10
Release VersioningSemantic Versioning semver.org
MAJOR.MINOR.PATCH[-alpha.xyz]
“Increment the:1. MAJOR version when you make incompatible
API changes,2. MINOR version when you add functionality in
a backwards-compatible manner, and3. PATCH version when you make
backwards-compatible bug fixes.”T. Preston-Werner co-founder of GitHub and CodeConf
11
Release Environment Setup
OS environment description
List of software prerequisites
Dependencies repository configuration
Build settings, e.g. Maven settings file
12
Issue Clean Up
No remaining open issues for the release
[JIRA] Transition from Resolved to Closed
[JIRA] The Fix Version attribute should include this release version
Closed issues should be documented
13
Continuous Integration Check
All test MUST pass
Or failures are understood and documented
Static code analysis – e.g. SonarQube
License analysis
Code license and copyright check – e.g. FOSSology
Prepare your source code for distribution – TripleCheck, OW2con’16
Dependency management and license compliance – Inno3, OW2con’16
14
Release Preparation – Ex: Maven Release Plugin
No uncommitted changes in the sources
No SNAPSHOT dependencies
Versions from x-SNAPSHOT to new version
Tag SCM information in the POM
Run tests against the modified POMs
Commit the modified POMs
Tag the code with release name
Bump the version in the POMs
Commit the modified POMs[Source: Maven Release Plugin Prepare Doc.] 15
Performing the Release – Ex: Maven Release Plugin
Maven dry run of release:prepare
Check pom.xml.tag and release.properties
Check GPG signatures of binaries
Maven release:prepare for real
Publication to Nexus
[JIRA] Mark version as released[Source: Apache Syncope Prepare Source for Release]
16
Release NotesTypical release notes sections:
Introduction and overall descriptionMain new featuresList of all fixed issuesTested environmentsKnown issuesMigration notesBackward compatibilityLink to documentationList of contributors
17Example: XWiki 8.3 Release Notes
Packaging for Easy Integration, Usage, Cloud Deployment
As packages in language specific package repositories: e.g. Maven Central, Eclipse Update Repository, PyPI, NPM, Ruby Gems, CPAN, ...
As installable Linux distribution packages: e.g. RPM, DEB
As Cloud templates and images: e.g. AppHub, DockerHub
18
Publication
Publication of binaries to:
Library repositories (Maven Central, …)
Mirrors (e.g. OW2, Apache, CDN, ...)
Linux distribution packaging systems
Cloud marketplaces (e.g. AppHub)
Publication of versioned documentation to:
Project site
FLOSS Manuals.net
19
Announcement and Promotion
Mail to users and developers
Blog post
Tweets
LinkedIn announcement in specialized groups
Wikipedia page update
20
AppHub: the OW2 Self-Service Cloud Deployment Platform
21
Multi-cloudMulti-technoSelf-serviceOW2 charter / OSCAROW2 governance
www.apphub.eu.com
AppHub distribution
List all candidate components
AppHub template creation:
Video tutorial
Producer guide
Managing Appliance Templates
22
23
Resources
ResourcesOSS Watch – Best Practices in Release Management for Open Source Projects
Electric-Cloud Release Management Wiki
Automating Application Releases with Docker
24
Open-source Software Release Management
Best PracticesThank you
oscar.ow2.org
25