frinyvonnick / gitmoji-changelog Goto Github PK
View Code? Open in Web Editor NEWA changelog generator for gitmoji π
Home Page: https://www.npmjs.com/package/gitmoji-changelog
License: MIT License
A changelog generator for gitmoji π
Home Page: https://www.npmjs.com/package/gitmoji-changelog
License: MIT License
Some changelogs (mostly for libs) have specific "Breaking changes" section.
See example here:
Example:
handlebars.js
is a templating engine (used by conventional-changelog)
This one is pure refactoring.
The core
API should use from, to
as parameter wherever is it possible
(instead of mode)
If you tag a version without executing gitmoji-changelog
it will erase your changelog on next tag.
I'll provide an example as soon as possible
blacklist it so we don't see it in CHANGELOG file
It would be great if gitmoji-changelog can be interfaced with lerna publish.
One idea could be to use the last pushed lerna tag
Maybe this workflow?
remove babel and use native node.js (v10)
The current algorithm should be changed:
CHANGELOG.md
tmp file
tmp file
CHANGELOG.md
to tmp file
Need to add e2e tests on the same model of https://github.com/frinyvonnick/gitmoji-changelog/blob/master/packages/gitmoji-changelog-cli/src/cli.e2e.spec.js
In next iteration we should weight group
In the screen I posted, it should be the commit with sparkles that should be the main one
It also move important commit types (like β¨) as sibling of less important ones (like π ). For example, in the screenshot "β¨ rien a voir (5ff7384)" should not be in the "Miscellaneous" group, but the "Added" group.
The idea is to work better with tools like lerna that have a publish command that generate a tag
We should display date next to tag's label
Example:
v1.0.0 - 20/08/2018
Uncouple cli from input and ouput, so we can have multiple input sources and output sources
Maybe we can do something like:
gitmoji-changelog prepare
And the CLI ask us wich version we want next, like lerna publish
do (or @lerna/versions ?):
And then continue
Maybe this is out of gitmoji-changelog idea
We can group together commit that are similars, like:
:memo: update README.md
:memo: README.md updated
:memo: Update README.md
Should be grouped together so we can merge them manually after gitmoji-changelog
is ran.
A good practice to allow build reproducibility is to fix all external dependencies :
FROM
image should use the most precise tag available (ie. using the one containing the build date)We should merge prerelease versions like alpha, beta, release candidate, ... when the matching release has been done.
Put the release changelog into github release
pages.
We maybe need to add plugins
to gitmoji-changelog (or middlewares in userland)
Maybe this is not the scope of gitmoji-changelog
First of all, thanks for this awesome lib π
Describe your idea
The user might want to manually select commits he wants in his changelog.
Describe what you'd like
When running gitmoji-changelog
, display the list of commits and let the user unselect (all commits would be selected by default) the commits he don't want to add in the changelog.
Example :
> gitmoji-changelog
βΆ start gitmoji-changelog v1.1.0
Choose commits :
- [x] πFix bug
- [ ] π₯Remove file
- [x] πAdd doc
Hey, in #12 you sorted commit by emoji code then by date.
.sort((first, second) => {
if (!first.emojiCode) return -1
const emojiCriteria = first.emojiCode.localeCompare(second.emojiCode)
if (emojiCriteria !== 0) return emojiCriteria
return first.date.localeCompare(second.date)
It results a weird sorting, by emoji type, so a bit "randomly".
An example here:
where we should have the first commit (π), then some couples of features and the tests associated to them (so couples of "β¨ followed by β ").
My opinion is that inside a category we should sort the commits by date and nothing else, and that the commits should be sorted newer at up.
I can do the PR for that if you want.
Thanks for your work.
Matt'
2 issues identified with incremental writing:
Here a video to explain it:
https://www.useloom.com/share/888d83d584dd42db83e2daeacd41bdb9
Rename the package to gitmoji-changelog-template
or gitmoji-changelog-format
Add a middleware system:
Each format should have:
template.md
generateMarkdown.js
:
core()
markdown()
We should reflect the hierarchy in markdown using right heading.
#
for major release##
for minor release###
for patch releaseExample:
Add link about images version supported and a link to Docker Hub
Lerna publish command has a canary option that could be used in CI
When there is no new commit, gitmoji-changelog will generate an empty release.
It should not generate anything and throw an error or warning in the CLI saying that there is no new commit to generate changelog. (maybe propose to git fetch origin
if user forget to get last commits)
Types of changes:
Added
for new features.Changed
for changes in existing functionality.Deprecated
for soon-to-be removed features.Removed
for now removed features.Fixed
for any bug fixes.Security
in case of vulnerabilities.Those types of changes are extracts from https://keepachangelog.com/en/1.0.0/
On the @frinyvonnick docker account to have same name that this repository
Maybe you could group lignes of changelog ?
Imagine this commit log:
:sparkles: screen / users / add
:sparkles: screen / todo / list
:sparkles: screen / users / remove
It would be nice that this changelog is generated:
## Added
- screen / users / add
- screen / users / remove
- screen / todo / list
order: 1 - 3 - 2 // or 3 - 1 - 2
Then I can manually group by screen if I want to :)
If you don't want to, can you think about a middleware implementation instead of writing the lib bar.
Writing the example, a middleware implementation would be a must have for me :)
I could group by screen my myself ;)
git-repo-info seems to be the solution. We need to figure out if it fullfills all our needs
Use of a logger:
gitmoji-changelog --debug
)This one seems great: https://github.com/klauscfhq/signale
We should support short commit SHA as URL https://help.github.com/articles/autolinked-references-and-urls/#commit-shas
git-raw-commits
)So gitmoji-changelog
works not only for node projects
We should add instructions in the README.md to explain how to install alpha version of gitmoji-changelog
npm install -g gitmoji-changelog@alpha
I just published a version using lerna version
since I can't figure out how to use correctly lerna publish
.
Firstly I used the command lerna version premajor
to bump an alpha version in every packages. Then I used the command yarn publish --tag alpha
and type the current version in the prompt
in each package to publish this version to npm.
After this, I had to execute gitmoji-changelog
and amend release commit and move the git tag and push force it on master.
We must order commits by emoji in the same order as in the mapping file and within a type by date
Add an option so each commit is suffixed by its author.
This great for opensource :)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.