- Notifications
You must be signed in to change notification settings - Fork64
Automate changes to your project CHANGELOG.md
License
pajapro/fastlane-plugin-changelog
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This project is afastlane plugin. To get started withfastlane-plugin-changelog
add it to your project by running:
fastlane add_plugin changelog
This plugin is inspired by and based onKeep a CHANGELOG project.Keep a CHANGELOG proposes a standardised format for keeping change log of your project repository inCHANGELOG.md
file. This file contains a curated, chronologically ordered list of notable changes for each version of a project in human readable format.
SinceKeep a CHANGELOG project proposes a well-defined structure withsections (e.g.:[Unreleased]
,[0.3.0]
) andsubsections (Added
,Changed
,Deprecated
,Removed
,Fixed
,Security
) it opens up an opportunity to automate reading from/writing toCHANGELOG.md
withfastlane
.
fastlane-plugin-changelog
consists of 3 actions enabling you to manipulateCHANGELOG.md
fromfastlane
.
Reads the content of a section from your project'sCHANGELOG.md
file.CHANGELOG.md
must follow structure proposed byKeep a CHANGELOG project.
read_changelog# Reads the Unreleased section from CHANGELOG.md in your project's folder
read_changelog(changelog_path:'./custom_folder/CHANGELOG.md',# Specify path to CHANGELOG.mdsection_identifier:'[Unreleased]',# Specify what section to readexcluded_markdown_elements:['-','###']# Specify which markdown elements should be excluded)
Use the output of this action in conjunction with for examplepilot
to upload your change log to TestFlight or withgithub_release
to create a new release on Github.
Updates section identifier of your project'sCHANGELOG.md
file.
update_changelog(section_identifier:'[Build 123]',# Specify what section to updateupdated_section_identifier:'Build 321'# Specify new section identifier)
Stamps theUnreleased (seeHow can I minimize the effort required?) section with provided identifier in your projectCHANGELOG.md
file and sets up a newUnreleased section above it.Additionally, you can provide an optionalgit_tag
param, specifing git tag associated with this section.stamp_changelog
will then create a link to diff between this and previous section's tag on GitHub or Bitbucket. This will enable you to quickly get tocomparison between two tags.
stamp_changelog(section_identifier:'Build XYZ',# Specify identifier to stamp the Unreleased section withgit_tag:'bXYZ',# Specify reference to git tag associated with this sectionshould_stamp_date:true,# Specify whether the current date as per the stamp_datetime_format should be stamped to the section identifier (default is `true`)stamp_datetime_format:'%FT%TZ'# Specify strftime format string to use for the date in the stamped section (default `%FZ`))
🤖 Moreover, if you are usingdanger-changelog plugin, you can leverageplaceholder_line
string paramater.placeholder_line
string will be ignored when stamping an existing sectionand copied into[Unreleased]
section. This will help contributors to your project to see where changelog changes should be added (seefeature request).
Emojifies the output ofread_changelog
action. When you share changelog with the rest of your team on e.g.: Slack channel, it's nice to sprinkle your subsections with a bit of visuals so it immediately catches eyes of your teammates.emojify_changelog
uses the output ofread_changelog
action to append an emoji to known subsections, for example:
Added:- New awesome featureChanged:- Onboarding flow Fixed:- Fix Markdown links Removed:- User tracking Work In Progress:- Sales screenSecurity:- Enable SSL pinningDeprecated:- Obsolete contact screen
emojifies into:
*Added* 🎁:• New awesome feature*Changed* ↔️:• Onboarding flow UI*Fixed* ✅:• Fix Markdown links *Removed* 🚫:• User tracking *Work In Progress* 🚧:• Sales screen*Security* 🔒:• Enable SSL pinning*Deprecated* 💨:• Obsolete contact screen
Example of use:
changelog=read_changelog# Read changelogpilot(changelog:changelog)# Send binary and changelog to TestFlightemojified_changelog=emojify_changelog# Emojify the output of `read_changelog` actionslack(message:"Hey team, we have a new build for you, which includes the following:#{emojified_changelog}")# share on Slack
NOTE: do not send emojified changelog to iTunes Connect as it cannot handle emojis.
As a developer you have toremember to keep your CHANGELOG.md up-to-date with whatever features, bug fixes etc. your repo contains and letfastlane
do the rest.
lane:betadobuild_number=get_build_number# Get build numbergym# Compilechangelog=read_changelog# Read changelogpilot(changelog:changelog)# Send binary and changelog to TestFlightstamp_changelog(section_identifier:"Build#{build_number}")# Stamp Unreleased section with newly released build numberend
For any other issues and feedback about this plugin, please submit it to this repository.
If you have trouble using plugins, check out thePlugins Troubleshooting doc in the mainfastlane
repo.
For more information about how thefastlane
plugin system works, check out thePlugins documentation.
fastlane
is the easiest way to automate building and releasing your iOS and Android apps. To learn more, check outfastlane.tools.
About
Automate changes to your project CHANGELOG.md
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors10
Uh oh!
There was an error while loading.Please reload this page.