asciidoctor / asciidoctor-extensions-lab

A lab for testing and demonstrating Asciidoctor extensions. Please do not use this code in production. If you want to use one of these extensions in your application, create a new project, import the code, and distribute it as a RubyGem. You can then request to make it a top-level project under the Asciidoctor organization.
Other
104 stars 101 forks source link

Create an extension to generate a changelog #59

Open ggrossetie opened 8 years ago

ggrossetie commented 8 years ago

The idea is to be able to generate a changelog:

We could even support multiple SCM. For instance, if we want to display the Git changelog of a project, between master and version 1.0.0:

changelog:git[master..v1.0.0]
mojavelinux commented 8 years ago

This would be insanely useful.

Here are a few ideas of what to include:

Per tag:

Per item:

Summary:

The hardest part is the category. This is where some conventions in the project would help. One way is to lookup the referenced issue and grab its label(s). Another idea is to include a category label in the commit messages. I picked up this idea from https://www.youtube.com/watch?v=m0_C2cfM9IM.

mojavelinux commented 8 years ago

Perhaps the target should be the tag and the service/source part of the attribute list.

changelog::v1.5.3..v1.5.4[source=git]

or simply

changelog::v1.5.3..v1.5.4[git]

or, perhaps, the version range should be implied (going one back)

changelog::v1.5.4[git]

I might even argue the case that the service/source should be part of the macro name:

git-changelog::v1.5.4[]
ggrossetie commented 8 years ago

Thanks Dan for sharing your ideas, lot of great stuff :smile:

the version range should be implied (going one back)

This can be tricky because it depends on project's conventions.

issue number(s)

We could also automatically add a link on the issue tracker but again it depends on project's conventions.

mojavelinux commented 8 years ago

Good points. I think it's best to start with something very opinionated and evolve from there.