Learn about changelog in github|gitlab example

In software application development, code is stored in code repositories like git, and bitbucket. Every feature in the application is committed with a change log and version number.

During the application release process, the application version is increased

For example, windows are released to the end-users with version 10,11 with each version containing set of features.

What is the changelog?

Changelog is a text file with a log summary of all your change made for each version of the project. It is also called `release notes

The project is either software or application or open-source products.

It contains the date and version number and contains the log of changes, which can be grouped by module or feature. There is no standard format for these files but you can follow certain rules

How do you write a changelog?

Different changes added to the changelog for each release.

  • Added: This section contains new features released.
  • Changed: It contains changes made to an existing feature.
  • Deprecated: changes removed in the future.
  • Removed : removed features.
  • Fixed: any bugs fixed.
  • Security: security issues are declared here

Changelog principles and features

  • Used by Users and contributors and not for machine
  • It contains the Release date
  • summary logs are grouped by feature
  • The version number displayed and the latest version is shown first
  • This files can be created as .txt or .md or .rst extension

git Changelog generator

There are a lot of generators to generate a changelog.

Changelog Sample format example file

A changelog file can be created with the markdown editor in GitLab or Github. extension is .md

Usually, a semantic version is followed for the software release process, Highest version comes first.

Here is the format and summary of the changelog.

All summaries of changes are written here.

The highest version comes first.

[2.0.0] - 2021-10-02
Here we write upgrading notes for brands. It's a team effort to make them as straightforward as possible.

Changelog for 2.0.0 version with summary of log changes

Added
PROJECT-XXXX MINOR story details go here.
PROJECT-YYYY PATCH story details go here.
Changed
Fixed
[1.2.4] - 2020-03-12
Changelog for 1.2.4 version
Added
Changed
PROJECT-ZZZZ MAJOR Angular version change.
Fixed
PROJECT-AAA PATCH Add styles for mat-table.
[1.2.3] - 2019-02-11
Added
Changed
Fixed
PROJECT-123 MINOR Fix core module tests
PROJECT-5454 MAJOR Module CDK version upgrade

How do you define guidelines for changelog in Git

You can check the git log command to get a history of revisions and changes.

Git log with more detailed information

git log --stat --pretty=short --graph

Here are some of the frequent commands to get

How do you get all commit changes up to a specific tag?

git log --oneline --decorate v1.0.0

This shows commit logs for up to v1.0.0

We can use a short log that groupes the commits by author and generate a summary of changes

git shortlog v1.0.0

How do you get a changelog between two releases?

The below command shows the commit change log between two releases v1.0.0 and v2.0.0

git log v1.0.0...v2.0.0

How to generate a changelog in Jenkins?

Jenkins provides a changelog plugin to create a summary of notes between two revisions.

You can check more about git changelog plugin🔗

This plugin uses with.

  • pipeline plugin
  • post-build action

Difference between Changelog vs release notes

Both are technically the same ,but different in descriptions.

Release notes are notes documents about the changes of each release of software or project. It contains additional information about the changes and whether these changes have any impact on end users. It is more useful for end customers.

Changelogs are note of changes that contains additions, deletions, and changes to the released product version. It is more useful for developers and contributors.

What does changelog mean in GitHub?

Changelog is an markdown text file, that contains list of statements about features/bugs/fixes released for each release in Github repository.

The list of items are order in sequential order