Giter Site home page Giter Site logo

auto-changelog's People

Contributors

a-ignatov-parc avatar alexbumbacea avatar bbenoist avatar bbwharris avatar cmastrandrea avatar coliff avatar cookpete avatar dabari avatar dackmin avatar david-garcia-garcia avatar dependabot[bot] avatar eliperelman avatar greenkeeper[bot] avatar itayo avatar jordhan94 avatar jule- avatar kimak avatar mansona avatar mattlyons0 avatar michaelmoussa avatar rejas avatar rouzwelt avatar sri-vr avatar thkruz avatar w33ble avatar webketje avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

auto-changelog's Issues

Keep old changelog entry dates/version

Don't think this is likely a bug, but probably just working as intended but when I run the command on an existing changelog file with entries, the last date and version is replaced with the new one. And commits are just merged on top of old ones.

screen shot 2017-12-12 at 9 59 32 am

Is there a way to keep the old entries. Basically append the new changlog entry (version/date and commits) on top of the old entries so all version entries are saved and separated by date and version.

Like this for example:

v0.3.0 - 2017-12-12

Merged

  • [GRIDP-1] Landing page #7
  • Server Docs and Version Route #6

Commits

  • [GRIDP-1] Landing page - (known issue: need full images from design) 63013a4
  • Changing order of setup to make logs work for health check again

v0.2.0 - 2017-12-08

Merged

  • Root component must re-render for routing. #3
  • root component must re-render for routing. #2

Commits

  • [GRIDP-1] Landing page - (known issue: need full images from design) 63013a4
  • Changing order of setup to make logs work for health check again

Support custom version tag prefixes for multi-package repositories

Again, let me say how much I love this tool. We've been using it for about a month and your responsiveness has been awesome.

One recent thing we've come up against is the inability to easily use it on git repos that contain more than one package because of version tag collisions. A common practice when housing more that one package in a single repo is to use a tag pattern like <package>-<version> so that multiple packages can be versioned individually. The problem arrises with auto-changelog when the changelog file is generated, because of the semver.valid() test at https://github.com/CookPete/auto-changelog/blob/b6edd204a38e7eceaaa0c9e71c7e5a9e45cecdf9/src/releases.js#L11.

Have you come up against this or is this use case just not supported?

Handle breaking change messages

I'm using this tool to generate changelogs for projects that use conventional commits, and it works quite well. One missing piece, however, is the highlighting of breaking changes.

It would be really helpful to append that information to the output, so that it could be used in the template. I'm happy to give it a shot and open a PR, but thought it was best to start with an issue.

My thought is to check the lines of the body for /^breaking(\ change)?/i and set a "breaking" property (boolean) on the commit object.

Support more than just numeric issue IDs

https://github.com/CookPete/auto-changelog/blob/866aaf7706bca9d7929049812d8edcb1b85cb8bb/src/commits.js#L11

That regex currently only supports numeric issue IDs, which doesn't work with, for instance, Jira, which uses issue IDs like ABC-12345. There is a work-around involving crafting the issueUrl to account for this, but it results in confusing issue links in the changelog.

P.S. I'd open a PR for this, but have absolutely no experience with Node.js (no dev env, etc)...

Duplicate list items

A commit may appear in the changelog twice if it is also listed as a merge. See v0.7.1 here for an example.

Label "v" when use the package.json version.

Guys,

When I use the package.json version it is displayed in the CHANGELOG.md with "v" symbol in front of it. I saw that you did that intentionally, however is there a way to remove it? I'm asking because all my other version (which I get from the tags) are without "v", and only the latest appears with it and that is causing some confusion.

Thank you in advance for your time!

Best,
Dimo

Auto-changelog stoped working

Dear Developer,

Up till today auto-changelog worked brilliant however after I changed some settings (among other things in the path variables) it stopped working. Can you please tell me the right setup to get your app to work. I tried the following.

What did i did

  • Install auto-changelog by using npm install -g auto-changelog
  • Add the following package.json file to the repository:
    { "name": "PTC_simulator", "scripts": {}, "auto-changelog": { "template": "keepachangelog", "unreleased": false, "commitLimit": 15 }, "dependencies": { "auto-changelog": "^1.8.0" } }
  • run auto-changelog in the repository

However it gives me the bash: command not found error. Is this due to a path variable that was removed or am I doing something else wrong?

Thanks in advance,
Greetings Rick,

Writes only the first commit on every run

Hey,

The auto-changelog works pretty fine except the fact that it only writes the first commit on every run, although there are 5 commits after that.
It throws no error so I've got no idea what could cause this.

Any ideas?

Thanks in advance!

Wrong Azure DevOps links

Custom template being ignored

I tried to add a custom template, and it seems to be being ignored as per the latest version. The command I was using is listened below:

CLI:
"version": "auto-changelog -p -t .templates/changelog.hbs"

Error:
Error: Template 'changelog-template.hbs' was not found

Date for Unreleased version when package.json version used

Hi guys,

One question regarding the release date.

When you run the following script: auto-changelog -u, all the PRs which are not released (i.e. not in tag) appears under Unreleased version and NO date is displayed. which is perfect.

However when you change the script to auto-changelog -p, the version from the package.json for the last upcoming release in the CHANGELOG.md is used as expected, but a date is shown for it. Is there a way to hide that date as actually there is not tag created for these PRs yet?

Thank you in advance for your help!

Best,
Dimo

Works only with github projects

Thanks for this tool.
i'm trying to use for my project but it seems to work only on a github project, i tried it on both a bitbucket and private git project but it didn't work.
Any ideas why ?

Possibility to remove label 'v' from the latest version

Hi guys,

We have a huge changelog and use your great tool for generating it. At the moment we use the following convention for naming our versions - 1.2.3 (i.e. without 'label v') taking it directly from the package.json.

However few years ago we created several tags with the 'v' label (by mistake). For that reason our latest unreleased version in the changelog now appears with the label 'v' which cause some confusing among the people.

Is there a way to remove it? Probably with some new command line argument?

Thank you in advance for your time and effort.

Best,
Dimo

Incorrect PRs shown in the changelog

Hi @cookpete,

I think there is an issue in the PRs that appears in the changelog. Here is the case.

  1. We have one main branch - 'master'.
  2. Create sub-branch from it - let's name it 'feature-branch'
  3. Create two sub-branches from 'feature-branch' - 'sub-feature-1' and 'sub-feature-2'.
  4. Merge 'sub-feature-1' into 'feature-branch', then 'sub-feature-2' into 'feature-branch' (i.e. two separate PRs).
  5. Finally merge 'feature-branch' into 'master'.

When the auto-changelog is run, three entries will appear in the changelog. I guess this is not correct and we should have only one - the PR from point5 above.

Best,
Dimo

Support specifying a summary message for each version

Hi!

We currently use auto-changelog (our changelog) and it works great for displaying the commits that are present in each release.

However sometimes the list of commits isn't entirely sufficient on its own, since:

  • it's often very long, and is ordered in commit date rather than in order of relevance to the end user
  • the way commit messages should be worded doesn't necessarily match the way one would choose to explain a new feature to an end user (and doesn't give the chance to highlight examples/link to docs etc)

As such, we'd like to be able to optionally include a release summary for certain releases (mostly new major versions), that can give a couple of paragraph explanation about the new release (explaining exciting new changes or linking to the migration guide etc), prior to the usual list of commit messages. We'd like to be able to include this in the changelog (rather than say as a separate docs/blog page) since the changelog is what is used by the bots that automatically open PRs to update people's dependencies, and is likely where manual visitors to the repo would also look first.

One way to implement this might be to use the commit message body of the commit that bumped the version.

For example this commit:

v9.0.0

Here is a summary

...would result in:

### Changelog
All notable changes to this project will be documented in this file. Dates are displayed in UTC.

Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).

#### [v9.0.0](https://github.com/neutrinojs/neutrino/compare/v8.3.0...v9.0.0)
> 20 October 2018

Here is a summary

- Commit message foo
- Commit message bar

Does this feature sound reasonable / the best way of implementing a summary? :-)

Support adding release branch changes to master's changelog

Hi!

For the https://github.com/mozilla-neutrino/neutrino-dev repository, after we released v8.2.0, we switched to treating master as the next breaking release (v9; as yet unreleased), and have since released a v8.2.1 and v8.2.2 from a separate release/v8 branch.

auto-changelog successfully updated CHANGELOG.md in that branch (run via a package.json version entry), however I've tried to find a way to update master's changelog (since that's what people will look at when visiting the repository on GitHub), and can't find a way to do so.

It seems like as-is, when we release v9 the master changelog and will end up skipping straight from v8.2.0 to v9.x.x.

Is this something that's possible to achieve at the moment? If not, what changes do you think might be required to do so?

Many thanks :-)

cc @eliperelman

Update deps!

It would be nice if you if possible ever use the last deps.
Else we can't use your nice module -_-

"compare" autolinks disregard the provided --tag-prefix

For a project at work, we use a tool that tags releases in git with the format "packagename-version" so I tried auto-changelog with --tag-prefix packagename- and it works like a charm EXCEPT that it produces urls like https://bitbucket.org/<company>/<packagename>/compare/<versionA>%0D<versionB> where <versionA> and <versionB> both are missing the tag prefix I provided, thus producing broken URLs.

This is currently holding me back from this otherwise awesome tool.

Any way to specify the starting commit?

I want to generate only the changelog starting with a specific commit because the repo has a new major version and I don't care about the old major version changes. Any plan to support this feature?

Thank you.

two niceDate tests fail, assuming due to DST difference

Looks like since both the niceDate function and the test itself are using new Date(string), which uses local time, the tests which include those code paths fail in some timezones (mine, PST).

Have you considered using a library like moment.js? Guessing that could reduce your niceDate function down to a couple lines of code, but not sure if you want that dependency...

This illustrates the problem and possible solution in the node repl:

> new Date('2015-10-03').getDate()
2
> new Date(2015, 9, 3).getDate()
3
> const moment = require('moment');
undefined
> moment('2015-10-03').format('D MMMM YYYY')
'3 October 2015'

Here's the output from node test:

> [email protected] test /Users/jpayne/repos/auto-changelog
> cross-env NODE_ENV=test nyc mocha test



  fetchCommits
    ✓ fetches commits

  parseCommits
    ✓ parses commits
    ✓ parses bitbucket commit
    ✓ supports startingCommit option
    ✓ invalid startingCommit throws an error

  getFixes
    ✓ returns null with no fixes
    ✓ parses a single fix
    ✓ parses fix in commit notes
    ✓ parses a commit that closes a pull request
    ✓ parses a commit that closes a bitbucket pull request
    ✓ parses a commit that closes a gitlab pull request
    ✓ parses multiple fixes
    ✓ parses fixes by issue URL
    ✓ parses multiple fixes by issue URL
    ✓ parses external repo issues
    ✓ supports issueUrl parameter
    ✓ supports issuePattern parameter
    ✓ supports issuePattern parameter with capture group

  getMerge
    ✓ returns null on fail
    GitHub
      ✓ parses a merge
      ✓ parses a squash merge
      ✓ parses a squash merge with no message
    GitLab
      ✓ parses a merge
    BitBucket
      ✓ parses a merge

  fetchOrigin
    ✓ parses https://github.com/user/repo
    ✓ parses https://github.com:8080/user/repo
    ✓ parses [email protected]:user/repo.git
    ✓ parses https://gitlab.com/user/repo
    ✓ parses [email protected]:user/repo.git
    ✓ parses https://bitbucket.org/user/repo
    ✓ parses [email protected]:user/repo.git
    ✓ throws an error

  parseReleases
    ✓ parses releases
    ✓ parses releases with no commit limit
    ✓ parses bitbucket releases
    ✓ supports a version override

  getOptions
    ✓ parses commit limit correctly
    ✓ parses false commit limit correctly

  run
    ✓ generates a changelog
    ✓ uses options from package.json
    ✓ uses version from package.json
    ✓ command line options override options from package.json
    ✓ does not error when using unreleased option
    ✓ does not error when using latest version option
    ✓ throws an error when no package found
    ✓ throws an error when no template found
    ✓ throws an error when given an invalid latest version

  compileTemplate
    ✓ compiles using compact template
    ✓ compiles using keepachangelog template
    ✓ compiles using json template
    ✓ compiles using path to template file
    ✓ throws an error when no template found

  cmd
    ✓ runs a command

  niceDate
    1) formats string into nice date
    2) formats date into nice date

  removeIndentation
    ✓ removes indentation

  isLink
    ✓ returns true for links
    ✓ returns false for non-links


  56 passing (195ms)
  2 failing

  1) niceDate
       formats string into nice date:

      AssertionError: expected '2 October 2015' to equal '3 October 2015'
      + expected - actual

      -2 October 2015
      +3 October 2015

      at Context.<anonymous> (test/utils.js:15:39)

  2) niceDate
       formats date into nice date:

      AssertionError: expected '2 October 2015' to equal '3 October 2015'
      + expected - actual

      -2 October 2015
      +3 October 2015

      at Context.<anonymous> (test/utils.js:21:49)



-------------|----------|----------|----------|----------|----------------|
File         |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
-------------|----------|----------|----------|----------|----------------|
All files    |      100 |       95 |      100 |      100 |                |
 commits.js  |      100 |    92.68 |      100 |      100 |       42,79,80 |
 origin.js   |      100 |    83.33 |      100 |      100 |             11 |
 releases.js |      100 |    96.97 |      100 |      100 |             37 |
 run.js      |      100 |      100 |      100 |      100 |                |
 template.js |      100 |      100 |      100 |      100 |                |
 utils.js    |      100 |      100 |      100 |      100 |                |
-------------|----------|----------|----------|----------|----------------|
npm ERR! Test failed.  See above for more details.

Let me know and I can open a PR.

regeneratorRuntime is not defined

with your new version 0.3.4 I run into the following error:

> auto-changelog --output HISTORY.md

<myownmodulepath>/node_modules/auto-changelog/lib/index.js:5
  var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
                                             ^

ReferenceError: regeneratorRuntime is not defined
    at <myownmodulepath>/node_modules/auto-changelog/lib/index.js:5:46
    at Object.<anonymous> (<myownmodulepath>/node_modules/auto-changelog/lib/index.js:29:2)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:389:7)
    at startup (bootstrap_node.js:149:9)

with the previous version it runs fine.
node.js version: 6.11.3
os:
Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial

Getting `TypeError: Invalid Version: null` when running `auto-changelog --template keepachangelog --unreleased`

First, I love that I was able to use this successfully OOTB! One problem, though...

Here's my current git log:

e3eddcd (HEAD -> master, origin/master) changelog for 0.1.1
79a3792 (tag: v0.1.1) Another change to README.md
58c31dd Generated first changelog
4112edd (tag: v0.1.0) Update README.md
ad72cef Initial commit

The command auto-changelog --template keepachangelog worked as expected for the first two versions (v0.1.0 and v0.1.1) and related commits, but after the last commit, running the command auto-changelog --template keepachangelog --unreleased results in the following error/stacktrace:

TypeError: Invalid Version: null
    at new SemVer (/usr/local/lib/node_modules/auto-changelog/node_modules/semver/semver.js:279:11)
    at compare (/usr/local/lib/node_modules/auto-changelog/node_modules/semver/semver.js:566:39)
    at eq (/usr/local/lib/node_modules/auto-changelog/node_modules/semver/semver.js:605:10)
    at Function.diff (/usr/local/lib/node_modules/auto-changelog/node_modules/semver/semver.js:500:7)
    at parseReleases (/usr/local/lib/node_modules/auto-changelog/lib/releases.js:37:37)
    at _callee$ (/usr/local/lib/node_modules/auto-changelog/lib/run.js:84:52)
    at tryCatch (/usr/local/lib/node_modules/auto-changelog/node_modules/regenerator-runtime/runtime.js:65:40)
    at Generator.invoke [as _invoke] (/usr/local/lib/node_modules/auto-changelog/node_modules/regenerator-runtime/runtime.js:303:22)
    at Generator.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/auto-changelog/node_modules/regenerator-runtime/runtime.js:117:21)
    at step (/usr/local/lib/node_modules/auto-changelog/lib/run.js:25:191)

Am I misusing the --unreleased flag?

Github versioning tags not working

Dear developers I just started using your plugin and I think it is amazing. Howver I can not get it to work with the git version tags. I would like to specify the versions by adding a v1.0.0 tag to a git commit.

I have the following package.json:

{
"name": "PTC_simulate",
"scripts": {
},
"auto-changelog": {
"template": "keepachangelog",
"unreleased": false,
"commitLimit": 15,
"package": false
}
}

This gives me the following Changelog:

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog
and this project adheres to Semantic Versioning.

Generated by auto-changelog.

undefined

Commits

  • readme: Changed readme bfde9c3
  • restructure(full project): Updated project strucutre, gitignore file and added conda env 0bf4a0d
  • feature: Add all crane components 0ebf30b
  • chore: Commits some automatically changed files 2b7c4c6
  • feature(SIMIT): Load default values to SIMIT and adds this to the full PTC model 38c8057
  • Updated software SIMULATIONUnit (currently still using V9.0Upd9) 7cf4d1b
  • chore: Change .gitignore 28e6b6d
  • fix(full_project): Solved git rebase problem 709ca44
  • chore: Workspace commit b129d70
  • chore: not relevant 484e1e8
  • chore: add version tag c0a7ce0
  • docs: Add information about tia/SIMIT data type conversion b517e6a
  • refractor(full_project): change workspace (automatic) e573651
  • Included total SIMIT PTC project / changed Vortex Model d38bfa6
  • refractor(full_project): Remove compiler .pyc files c4a989a

Thanks in advance,
Greetings,
Rick,

Changelog is weird with git version 1.6.1

If I clone me repo with ssh://git@{host}/path/repo.git instead of https://{host}/path/repo.git the whole changelog is weird

In case of ssh://git@{host}/path/repo.git

Changelog

All notable changes to this project will be documented in this file.

Generated by auto-changelog.

0.0.2-14

Changelog

All notable changes to this project will be documented in this file.

Generated by auto-changelog.

0.0.2-14

9 May 2018

In case of https://{host}/path/repo.git
the change log is generated perfect

9 May 2018

  • Commentxxxxxxxxxxxxxxxxxxx 6fe38ce
  • Commentxxxxxxxxxxxxxxxxxxx 725081a
  • Merge pull request #123456 in REPO from xxxxxxx to master 51b08ef
  • Commentxxxxxxxxxxxxxxxxxxx 293aa7d

Tested on
Win7, Win10, Ubuntu and RHEL 7

includeBranch needs to be an array when used in configs

Hi :-)

I was trying out the new .auto-changelog feature, however was finding that includeBranch wasn't working as expected, eg:

{
  "includeBranch": "upstream/release/v7,upstream/release/v8"
}

It appears that since the string splitting occurs only on the CLI options parsing side, when using a config file the options need to be passed as an array instead, eg:

{
  "includeBranch": [
    "upstream/release/v7",
    "upstream/release/v8"
  ]
}

Should the configs support the string form, or do the docs need to mention the difference? (Similar to how they mention camelcase)

Also, is schema validation of options something that has been considered?

No commit message

Error when not informed message in commit

TypeError: Cannot read property '0' of null in \node_modules\auto-changelog\lib\commits.js:159:33

Changing the getSubject in commit.jsfunction as below the error does not occur

function getSubject(message) {
  if (message.length === 0) return '--no commit message';
  return message.match(/[^\n]+/)[0];
}
Sorry for not sending a pull request, I do not know how to do it

auto-changelog 1.10.0 failing with "process.stdout.clearLine is not a function"

Hi :-)

Our weekly bot lockfile refresh PR (neutrinojs/neutrino#1206) is failing with:

lerna ERR! TypeError: process.stdout.clearLine is not a function
lerna ERR!     at log (/home/travis/build/neutrinojs/neutrino/node_modules/auto-changelog/lib/utils.js:92:20)
lerna ERR!     at _callee2$ (/home/travis/build/neutrinojs/neutrino/node_modules/auto-changelog/lib/run.js:179:28)
lerna ERR!     at tryCatch (/home/travis/build/neutrinojs/neutrino/node_modules/regenerator-runtime/runtime.js:65:40)
lerna ERR!     at Generator.invoke [as _invoke] (/home/travis/build/neutrinojs/neutrino/node_modules/regenerator-runtime/runtime.js:303:22)
lerna ERR!     at Generator.prototype.(anonymous function) [as next] (/home/travis/build/neutrinojs/neutrino/node_modules/regenerator-runtime/runtime.js:117:21)
lerna ERR!     at step (/home/travis/build/neutrinojs/neutrino/node_modules/auto-changelog/lib/run.js:126:191)
lerna ERR!     at /home/travis/build/neutrinojs/neutrino/node_modules/auto-changelog/lib/run.js:126:437
lerna ERR!     at new Promise (<anonymous>)
lerna ERR!     at /home/travis/build/neutrinojs/neutrino/node_modules/auto-changelog/lib/run.js:126:99
lerna ERR!     at run (/home/travis/build/neutrinojs/neutrino/node_modules/auto-changelog/lib/run.js:266:18)
lerna ERR! error Command failed with exit code 1.

(https://travis-ci.org/neutrinojs/neutrino/builds/453842930)

I think this is due to this change?
64ebb30#diff-2b4ca49d4bb0a774c4d4c1672d7aa781R8

Many thanks :-)

niceDate uses localtime causing churn between developers

Hi!

The compact template uses niceDate, which outputs the date string in local time:
https://github.com/CookPete/auto-changelog/blob/6c25e0c9409386aecc4bd9b1dcdecf5422647bf8/src/utils.js#L18-L24

This means that if a developer in one timezone creates a changelog, then another developer in a different timezone updates it - then the dates of old releases can end up being changed if the commit times fall on a different day in the two timezones.

For example:

  1. git clone https://github.com/mozilla-neutrino/neutrino-dev
  2. cd neutrino-dev && yarn
  3. Set timezone to UK
  4. yarn changelog

Expected:
Changelog doesn't change from the contents created by another developer who was in the US.

Actual:
Several dates change. For example 29 January 2018 changed to 30 January 2018.

CC @eliperelman

Error: Missing helper: "commit-list"

$ auto-changelog --commit-limit false --template ./build/changelog-template.hbs --unreleased

ends with the error:

{ Error: Missing helper: "commit-list"
    at Object.<anonymous> (/Users/uzimskacel/xxx/node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js:19:13)
    at eval (eval at createFunctionContext (/Users/uzimskacel/xxx/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js:254:23), <anonymous>:8:105)
    at prog (/Users/uzimskacel/xxx/node_modules/handlebars/dist/cjs/handlebars/runtime.js:221:12)
    at execIteration (/Users/uzimskacel/xxx/node_modules/handlebars/dist/cjs/handlebars/helpers/each.js:51:19)
    at Object.<anonymous> (/Users/uzimskacel/xxx/node_modules/handlebars/dist/cjs/handlebars/helpers/each.js:61:13)
    at Object.eval (eval at createFunctionContext (/Users/uzimskacel/xxx/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js:254:23), <anonymous>:6:31)
    at main (/Users/uzimskacel/xxx/node_modules/handlebars/dist/cjs/handlebars/runtime.js:175:32)
    at ret (/Users/uzimskacel/xxx/node_modules/handlebars/dist/cjs/handlebars/runtime.js:178:12)
    at ret (/Users/uzimskacel/xxx/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js:526:21)
    at _callee2$ (/Users/uzimskacel/xxx/node_modules/auto-changelog/lib/template.js:80:77)
  description: undefined,
  fileName: undefined,
  lineNumber: undefined,
  message: 'Missing helper: "commit-list"',
  name: 'Error',
  number: undefined }

When I remove

  {{#commit-list commits heading='### Commits'}}
    - {{subject}} {{#if href}}[`{{shorthash}}`]({{href}}){{/if}}
  {{/commit-list}}

from ./build/changelog-template.hbs, which is a copy of https://github.com/CookPete/auto-changelog/blob/master/templates/keepachangelog.hbs, error does not occur.

No output

Doesn't produce any errors or output.

git 2.9.3
node v6.4.0

markdown linting

Hey @cookpete :)

I just want to point you to Visual Studio Code Editor and the plugin https://github.com/DavidAnson/vscode-markdownlint. It brings some styling issues up when having the generated changelog open. For sure this is a question if you want to go into the direction to follow a standard markdown format. Basically the changelog looks fine and does what it should do. But maybe this is still of interest for you. :)

The fix should also be easy to implement as that plugin does only claim about vialoting the following rule:
https://github.com/DavidAnson/markdownlint/blob/v0.10.0/doc/Rules.md#md022

That's all :)

Cheers
Kai

Add a breaking pattern option

Captured from #39, since it was brought up here.

@w33ble: My thought is to check the lines of the body for /^breaking(\ change)?/i and set a "breaking" property (boolean) on the commit object.

@cookpete I like your idea of a breaking pattern that sets a boolean to use in templates, but I think we should add a breakingPattern option rather than hardcode one that everyone has to use. Most users will be using this for existing projects that may have their own way of denoting a breaking change. I also think we should maybe create a new list (we currently have merges, fixes and commits) rather than set a boolean, which I think would be harder to use in a template.

TL;DR, Add a breakingPattern option, use it to test the message property and add a breaking boolean property to the parsed commit output.

Unable to generate the latest version's changelog

An in-range update of node-fetch is breaking the build 🚨

The dependency node-fetch was updated from 2.2.1 to 2.3.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

node-fetch is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for v2.3.0

See CHANGELOG.

Commits

The new version differs by 4 commits ahead by 4, behind by 6.

  • 5367fe6 v2.3.0 (#548)
  • d1ca2df Workaround lack of global context in react-native (#545)
  • ecd3d52 Add support for AbortSignal to cancel requests (#539)
  • 1daae67 Fix import style to workaround node < 10 and webpack issues. (#544)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Add another array of commits

To better follow http://keepachangelog.com would it be possible to add another filtered group of commits to merges, commits, fixes? maybe changes? and therefore would need a changes regex pattern --changes-pattern. Useful if you follow a defined commit pattern that is easy to parse out, like the AngularJS one thats referenced everywhere.

Therefore our templates can properly output:

Added

Changed

Fixed

Right now we have to combine Added and Changed together, since all commits not matching the issues-pattern are lumped together in commits.

Bug: keepachangelog template does not group types of changes

This does not adhere to one of the guiding principles of keepachangelog

The same types of changes should be grouped.

The example format on the website shows how each type of change is to use keywords like added: and map that to the appropriate commit-list.


## [0.0.5] - 2014-08-09
### Added
- Markdown links to version tags on release headings.
- Unreleased section to gather unreleased changes and encourage note
keeping prior to releases.

## [0.0.4] - 2014-08-09
### Added
- Better explanation of the difference between the file ("CHANGELOG")
and its function "the change log".

### Changed
- Refer to a "change log" instead of a "CHANGELOG" throughout the site
to differentiate between the file and the purpose of the file — the
logging of changes.

### Removed
- Remove empty sections from CHANGELOG, they occupy too much space and
create too much noise in the file. People will have to assume that the
missing sections were intentionally left out because they contained no
notable changes.

GitLab/GitHub

run on a gitlab repo, but all the links read github.com...

Ability to specify the latest release version on cli

This would be similar to the --package flag, only, instead of using the version from package.json, the version would be specified explicitly. Use case is that I'm maintaining a bunch of non-Node.js projects and want to avoid the additional commit of the CHANGELOG.md modification. I guess I could create a dummy package.json file, but that smells funky, and I would think the addition of the cli flag would be fairly straightforward. Thoughts?

Release tag version format

This is more of a question than an issue. In my project I am tagging releases in a format like 2018-01-01_1.2.3_456 (a date, followed by a version 1.2.3, followed by another release number 456).

I love how auto-changelog lists the merge requests, but they all fall into "unreleased" category since it appears it is not using any of our tags as a version number. (Only a couple of very old tags from our repo appear listed, which are indeed in format 1.2.3).

Is there any way to specify the release tag format?

If not, a hint to where to do changes in the code would be also appreciated (I'll be happy to fork and work on the changes to contribute back with the feature).

Use custom template by url

Hey Pete,

I wrote some custom templates, that I want to reuse over several projects.
Therefore I added them to a public github repository.

Allowing to provide the template by url, would help a lot. e.g. https://raw.githubusercontent.com/...
Otherwise I would have to 1st save the template locally by using wget / curl or so, then generating the changelog and finally deleting the template again.

As the methods you use from fs package already support handling an URL, I expect just a minor modification in your code: trying to instantiate an URL Object from given template string.
https://nodejs.org/api/url.html#url_the_whatwg_url_api
So having a try catch around and if the above fails, just continue with the previous value.
I try to provide a PR.

Or do you have another approach?

How do you use it without a remote origin

I wanted to use this on my local machine repo, which is where most of my projects are.

It turns out that it doesn't work without a git remote

could you just put a option to bypass it if it's not there, you see changelogs mostly don't have anything to do with remotes in most use cases. I just wondered why this is a requirement.

Do not show date for Unreleased version

Hi guys,

This is not a bug rather a question/enhancement.

Is there a way to hide the date label (i.e. {niceDate}) for Unreleased version? It always shows the today date and cause a difference in the file (want to put it under CI and commit it only when there is something new under Unreleased version)

Thanks,
Dimo

add handlebar helpers

I'd like to add some handlebar helper to take some info from commits and point to custom url instead of GitHub

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.