Changelog handling
moving-bits edited this page Feb 5, 2023
·
5 revisions
This page describes our changelog handling among releases and branches. It's part of the way we set up release candidates and new (feature / bugfix / beta) releases.
- handle changelogs for
- current development (on branch
master
) resulting in so-called "nightlies", - preparing for a release candidate / beta version (on branch
release
), - publishing a beta version or a feature release (from branch
release
), - development and publishing of bugfix releases (built on top of a feature release, on branch
release
)
- current development (on branch
- straightforward documentation of relevant changes for nightlies and released versions
- hassle-free management on branching for a new release and on releasing a new version
- changes on
release
should be visible onmaster
as well - changes should be translatable, at least those coming from
master
(main development branch) - changelog from
master
must not be renamed (or contents copied) on branching torelease
(as this will trigger retranslations, which we want to avoid)
file name | contents | updated on master
|
updated on release
|
---|---|---|---|
res/raw/changelog_base.md | contains all changes until a feature release is published | x | x |
res/raw/changelog_bugfix.md | contains all changes after a feature release | - | x |
src/.../utils/BranchDetectionHelper.java | contains the version name for feature release | - | x |
The following list is meant to be as checklists for different stages of development:
- changes are documented in
changelog_base.md
onmaster
- branch
master
torelease
- empty version code in
BranchDetectionHelper.java
onrelease
- empty
changelog_bugfix.md
onrelease
, and insert a##
line only (for CrowdIn to recognize the change) - empty
changelog_base.md
onmaster
(every change in new release will be documented onrelease
only - helps reducing merge conflicts)
further changes:
- document further changes on
release
inchangelog_base.md
onrelease
- regularly merge
release
back intomaster
-changelog_base.md
will be excluded from this - document further changes on
master
inchangelog_base.md
onmaster
- set version code in
BranchDetectionHelper.java
onrelease
to2023.xx.yy-RC
(in variableFEATURE_VERSION_NAME
)
further changes: (same as above)
- set version code in
BranchDetectionHelper.java
onrelease
to2022.xx.yy
(in variableFEATURE_VERSION_NAME
) - merge
release
tomaster
- follow rest of regular release procedure
further changes:
- document further changes on
release
inchangelog_bugfix.md
onrelease
- regularly merge
release
back intomaster
- document further changes on
master
inchangelog_base.md
onmaster
- set version code in
BranchDetectionHelper.java
onrelease
to2022.xx.yy
(in variableBUGFIX_VERSION_NAME
) - follow rest of regular release procedure
further changes:
- document further changes on
release
inchangelog_bugfix.md
onrelease
(above the most recent version info), make sure to prepend a new line with##
when inserting the first entry after a bugfix release - regularly merge
release
back intomaster
- document further changes on
master
inchangelog_base.md
onmaster
Notice: "Emptying a changelog" actually means "delete everything and insert a ##
line after that" - this avoids a problem with Crowdin not updating/resetting translations for an empty changelog file.
Information
Development
- Join the team
- Development Environment
- GitHub
- Coding conventions
- design conventions
- Working on c:geo for git beginners
- Creating custom Android icons
- Translation
- Release Preparation
- Continuous Integration
- c:geo notifications
- Logging
Usage
- Creating offline maps
- Send a debug log to the developers
- 'New Map' feature description
- Presenting a demo
Technical documentation
- Heading
- Screen densities
- GPS low power mode
- DB Schema
- Map usages
- Disk Usage Structure
- Trackable parsing
- UnifiedMap
Misc
Outdated: