git-changelog
Advanced tools
Comparing version 1.0.1 to 1.1.0
@@ -1,27 +0,55 @@ | ||
__my name__ | ||
# my name | ||
# (2016-07-29) | ||
## Bug Fixes | ||
- fix error messages | ||
([ee5068bf](https://github.com/rafinskipg/git-changelog/commit/ee5068bffdbb9c0e45c8ce9ce0c2f790440f19e3)) | ||
--- | ||
- **git tag** | ||
- get latest tag, regardless of branch for workflows that rely on git-flow releases | ||
([48800306](https://github.com/rafinskipg/git-changelog/commit/48800306fa5ac19b7e9a4c6d7f2f432ee8ae4d84)) | ||
## Bug Fixes | ||
- **options** | ||
- Use version_name instead of version | ||
([43fdac85](https://github.com/rafinskipg/git-changelog/commit/43fdac855bfd2f67a43acc93ecc8ef2e7a81f45c)) | ||
- **git log:** Ignores letter case | ||
([d4cff0a8](https://github.com/rafinskipg/git-changelog/commit/d4cff0a86c5ce46405f3c0dd03f9c49a7d620792), | ||
[#54](https://github.com/rafinskipg/git-changelog/issues/54)) | ||
- **travis** | ||
- Removed 0.12 nodejs version, addd 7.3.0 | ||
([18190836](https://github.com/rafinskipg/git-changelog/commit/1819083690e70e0af28d0c155b6fa67cbeb1dfb3)) | ||
## Features | ||
- **template** | ||
- Load default template if no custom template is found | ||
([41d5128b](https://github.com/rafinskipg/git-changelog/commit/41d5128b922efe3ced883a37bb4e170410160f4f)) | ||
## Documentation | ||
- updating documentation with template info | ||
([70fb9774](https://github.com/rafinskipg/git-changelog/commit/70fb97742ea2182a9d25ca92d6eeab081b44cc63)) | ||
- **readme:** | ||
- Unuseful commit | ||
([4373f472](https://github.com/rafinskipg/git-changelog/commit/4373f4726eedad6d450c8255f5e57036a3e5e223)) | ||
- fix link to the `.changelogrc` section | ||
([2975171d](https://github.com/rafinskipg/git-changelog/commit/2975171d89e1823253399bbe87a184e9164e9799)) | ||
- **readme** | ||
- Updated readme | ||
([2d7b1762](https://github.com/rafinskipg/git-changelog/commit/2d7b17625b9783532ee9ba655651cf8d475aa4ce)) | ||
## Style | ||
- **jshint** | ||
- Fixed style | ||
([217bdf58](https://github.com/rafinskipg/git-changelog/commit/217bdf588729e8dba5739bd6edb424523e48b001)) | ||
--- | ||
<sub><sup>*Generated with [git-changelog](https://github.com/rafinskipg/git-changelog). If you have any problems or suggestions, create an issue.* :) **Thanks** </sub></sup> | ||
<sub><sup>*Generated with [git-changelog](https://github.com/rafinskipg/git-changelog). If you have any problems or suggestions, create an issue.* :) **Thanks** </sub></sup> |
<img width="300px" src="https://github.com/rafinskipg/git-changelog/raw/master/images/git-changelog-logo.png" /> | ||
__Git changelog extended__ | ||
# Git changelog extended | ||
_Git changelog is a utility tool for generating changelogs. It is free and opensource. :)_ | ||
# (2016-07-29) | ||
--- | ||
## Bug Fixes | ||
- Fix generation of logs | ||
- fix error messages | ||
([ee5068bf](https://github.com/rafinskipg/git-changelog/commit/ee5068bffdbb9c0e45c8ce9ce0c2f790440f19e3)) | ||
- Fix generation of logs | ||
([cddb2408](https://github.com/rafinskipg/git-changelog/commit/cddb2408fa3017be704acac51dabbba9f477a547)) | ||
- correctly get branch name from the command line | ||
- correctly get branch name from the command line | ||
([4baa075b](https://github.com/rafinskipg/git-changelog/commit/4baa075bd93f878ee708817f911fe89c102dec02)) | ||
- correctly detect when running under grunt on Windows | ||
- correctly detect when running under grunt on Windows | ||
([4205ea49](https://github.com/rafinskipg/git-changelog/commit/4205ea49a893e4d1807a39268739c13754d40cf2)) | ||
- fixed tests | ||
- fixed tests | ||
([2e60172a](https://github.com/rafinskipg/git-changelog/commit/2e60172a4666c70d27e66d15dad297b89fff9583)) | ||
- Stream didn't close properly | ||
- Stream didn't close properly | ||
([99f228cf](https://github.com/rafinskipg/git-changelog/commit/99f228cfa5cb26c46ef9e3b00171a5e3d38fd844)) | ||
- Github commit url | ||
- Github commit url | ||
([c186f2d8](https://github.com/rafinskipg/git-changelog/commit/c186f2d877e7907305953610bcaaef331406178a)) | ||
- **checkpath:** add missing require('path') | ||
- **checkpath** | ||
- add missing require('path') | ||
([e5dab826](https://github.com/rafinskipg/git-changelog/commit/e5dab826062bd22dd37c8c3d3c24a4d9b4701f6d)) | ||
- **generate:** create path to file if it does not already exist | ||
- **generate** | ||
- create path to file if it does not already exist | ||
([62f6210f](https://github.com/rafinskipg/git-changelog/commit/62f6210f6895bcf5f9984b26948178b1a93cbc9e)) | ||
- **git log:** Ignores letter case | ||
- **git log** | ||
- Ignores letter case | ||
([d4cff0a8](https://github.com/rafinskipg/git-changelog/commit/d4cff0a86c5ce46405f3c0dd03f9c49a7d620792), | ||
[#54](https://github.com/rafinskipg/git-changelog/issues/54)) | ||
- **git_changelog_generate:** pass tag if it exists to gitReadLog | ||
- **git tag** | ||
- get latest tag, regardless of branch for workflows that rely on git-flow releases | ||
([48800306](https://github.com/rafinskipg/git-changelog/commit/48800306fa5ac19b7e9a4c6d7f2f432ee8ae4d84)) | ||
- **git_changelog_generate** | ||
- pass tag if it exists to gitReadLog | ||
([7c801927](https://github.com/rafinskipg/git-changelog/commit/7c801927672792fc9a818653b74c78d77c7bff9e), | ||
[#5](https://github.com/rafinskipg/git-changelog/issues/5)) | ||
- **nested lists:** nested list fix. Closes #9 | ||
- **nested lists** | ||
- nested list fix. Closes #9 | ||
([22855518](https://github.com/rafinskipg/git-changelog/commit/2285551810919bd4d8a749ae3ddd88f9cedcdd0e), | ||
[#9](https://github.com/rafinskipg/git-changelog/issues/9)) | ||
- **options:** use repo_url instead of url | ||
- **options** | ||
- Use version_name instead of version | ||
([43fdac85](https://github.com/rafinskipg/git-changelog/commit/43fdac855bfd2f67a43acc93ecc8ef2e7a81f45c)) | ||
- use repo_url instead of url | ||
([346b3949](https://github.com/rafinskipg/git-changelog/commit/346b39491923a49a3421f174a566b204d5fc7db9)) | ||
- **package.json:** move q to dependancies since it is required to run | ||
- **package.json** | ||
- move q to dependancies since it is required to run | ||
([257119cf](https://github.com/rafinskipg/git-changelog/commit/257119cf2bb6d8f341a5d65a2f47bcf803dff205)) | ||
- **params:** Restores versionName in CLI | ||
- **params** | ||
- Restores versionName in CLI | ||
([1d97f952](https://github.com/rafinskipg/git-changelog/commit/1d97f952bd5d37f67c1febdf161f4ce9b310eebf)) | ||
## Features | ||
- Show pull requests merged | ||
- Show pull requests merged | ||
([65f5504c](https://github.com/rafinskipg/git-changelog/commit/65f5504ce8e92fa39ced7da308e471cc85f750b5)) | ||
- improve `git log` synthax command to use the branch name | ||
- improve `git log` synthax command to use the branch name | ||
([4ce61281](https://github.com/rafinskipg/git-changelog/commit/4ce6128103ece64b44695ac196b457e63649229b)) | ||
- CLI option with git-changelog | ||
- CLI option with git-changelog | ||
([50af9f0a](https://github.com/rafinskipg/git-changelog/commit/50af9f0aeba14e88254aaf1bfd6433c4c6bc9fbe)) | ||
- Working on new API | ||
- Working on new API | ||
([121b9928](https://github.com/rafinskipg/git-changelog/commit/121b99285d2a04f9159951fa0e3f849d0d618fef)) | ||
- **bootstrap:** creating initial structure | ||
- **bootstrap** | ||
- creating initial structure | ||
([dea45d68](https://github.com/rafinskipg/git-changelog/commit/dea45d68ce9555e876680bf7c0778add2f367a30)) | ||
- **grunt-plugin:** | ||
- Commit for research purposes | ||
- **grunt-plugin** | ||
- Commit for research purposes | ||
([5afbb7a9](https://github.com/rafinskipg/git-changelog/commit/5afbb7a95c9f0e985f78666e7e231967524a8928)) | ||
- Now it is ready to be a grunt plugin | ||
- Now it is ready to be a grunt plugin | ||
([6422e055](https://github.com/rafinskipg/git-changelog/commit/6422e0552b30f6e94d11b03310a23c1342aa5965)) | ||
- **options:** Added ignore tags option | ||
- **options** | ||
- Added ignore tags option | ||
([95362e8b](https://github.com/rafinskipg/git-changelog/commit/95362e8b57a673e810ffe54ff3337de1ea5109a8)) | ||
- **output:** added logo in printHeader | ||
- **output** | ||
- added logo in printHeader | ||
([6b489450](https://github.com/rafinskipg/git-changelog/commit/6b489450a90172dc57059d7fd55fb4c6110152b2)) | ||
- **package:** Added global install so you can run via command | ||
- **package** | ||
- Added global install so you can run via command | ||
([86eae3f0](https://github.com/rafinskipg/git-changelog/commit/86eae3f013ace1c5c23afc32b2e8f878a69629f1)) | ||
- **template** | ||
- Load default template if no custom template is found | ||
([41d5128b](https://github.com/rafinskipg/git-changelog/commit/41d5128b922efe3ced883a37bb4e170410160f4f)) | ||
## Documentation | ||
- Updated readme with the correct specification | ||
- updating documentation with template info | ||
([70fb9774](https://github.com/rafinskipg/git-changelog/commit/70fb97742ea2182a9d25ca92d6eeab081b44cc63)) | ||
- Updated readme with the correct specification | ||
([ec2de4bf](https://github.com/rafinskipg/git-changelog/commit/ec2de4bf599dfc77c24c9b86ee9c0d86fe37e5b8)) | ||
- Updated options and tagging info | ||
- Updated options and tagging info | ||
([1ad3b6be](https://github.com/rafinskipg/git-changelog/commit/1ad3b6bedc6431b70e3a2e93e5967bad9a7830ee)) | ||
- added documentation for explaining the commit message | ||
- added documentation for explaining the commit message | ||
([d516c2fb](https://github.com/rafinskipg/git-changelog/commit/d516c2fb464072fc1f4c86ec71a910eeab3e830c)) | ||
- Added docs | ||
- Added docs | ||
([e0ba50c0](https://github.com/rafinskipg/git-changelog/commit/e0ba50c0bb0b13e9b39a59b8f4dda96e86d55644)) | ||
- **readme:** | ||
- Unuseful commit | ||
- **readme** | ||
- Unuseful commit | ||
([4373f472](https://github.com/rafinskipg/git-changelog/commit/4373f4726eedad6d450c8255f5e57036a3e5e223)) | ||
- fix link to the `.changelogrc` section | ||
- fix link to the `.changelogrc` section | ||
([2975171d](https://github.com/rafinskipg/git-changelog/commit/2975171d89e1823253399bbe87a184e9164e9799)) | ||
- Follow proper style in example commits | ||
- Follow proper style in example commits | ||
([6fef01ba](https://github.com/rafinskipg/git-changelog/commit/6fef01ba8a71bb5cd779ddb84f52b8f75296618d)) | ||
- Reorder contents | ||
- Reorder contents | ||
([14e8a772](https://github.com/rafinskipg/git-changelog/commit/14e8a772c3a05c32bc9fba6f75565132025d4942)) | ||
- TOC | ||
- TOC | ||
([d6338ab4](https://github.com/rafinskipg/git-changelog/commit/d6338ab45f6e45e5562e5e6f4f1db86f39ca458d)) | ||
- Added more information on the new specification | ||
- Added more information on the new specification | ||
([f984eedd](https://github.com/rafinskipg/git-changelog/commit/f984eedde6be5db804d0b6bf2e238ab2e7ca15fb)) | ||
- added more commit examples and npm versioning usage | ||
- added more commit examples and npm versioning usage | ||
([51341b7a](https://github.com/rafinskipg/git-changelog/commit/51341b7aae082c6c1a1caaa77dfdbfdc2622a56f)) | ||
- add logo | ||
- add logo | ||
([1af36c9b](https://github.com/rafinskipg/git-changelog/commit/1af36c9b0dad5cc0c2a321e3f280a89d76a8fb2b)) | ||
- Final readme Fixes #1 Closes #1 | ||
- Final readme Fixes #1 Closes #1 | ||
([e725d8f4](https://github.com/rafinskipg/git-changelog/commit/e725d8f4bf477b517ca6185a75fdfa0aa660b3be), | ||
@@ -105,204 +142,239 @@ [#1](https://github.com/rafinskipg/git-changelog/issues/1)) | ||
## Refactor | ||
- Refactor branch name | ||
- Refactor branch name | ||
([8774b963](https://github.com/rafinskipg/git-changelog/commit/8774b963fd5e15de1cc1066c91034f9b1d34c4bc)) | ||
- added debug messages and refactored some additional code | ||
- added debug messages and refactored some additional code | ||
([70e48caf](https://github.com/rafinskipg/git-changelog/commit/70e48caf330b7f76fdea474ce58bcf96cb11ccbc)) | ||
- modified the task using a factory pattern to improve testability | ||
- modified the task using a factory pattern to improve testability | ||
([1a0f25d3](https://github.com/rafinskipg/git-changelog/commit/1a0f25d3d9bbedd029c810c4dd2d35419cbb9276)) | ||
- Removed ignore tags and updated documentation | ||
- Removed ignore tags and updated documentation | ||
([cb17b55d](https://github.com/rafinskipg/git-changelog/commit/cb17b55de2ba0b597147fe4ce15e6883feb82a88)) | ||
- removed deprecated options | ||
- removed deprecated options | ||
([7d05b632](https://github.com/rafinskipg/git-changelog/commit/7d05b632af6be3db2c00925b7cf28cd990c19a71)) | ||
- **delete:** deleted some files | ||
- **delete** | ||
- deleted some files | ||
([b9c72f57](https://github.com/rafinskipg/git-changelog/commit/b9c72f57c4920420fef8c486bfccf5798870e06b)) | ||
- **docs:** | ||
- Angular document commits | ||
- **docs** | ||
- Angular document commits | ||
([01e8c1ba](https://github.com/rafinskipg/git-changelog/commit/01e8c1ba4c29fcddcfc237f4e6185682b9ced67d)) | ||
- Added docs | ||
- Added docs | ||
([0a155845](https://github.com/rafinskipg/git-changelog/commit/0a1558458c46574c5b0e6ec3749668fad1c8647a)) | ||
- **generate:** replace `#getStream` with `fse#createOutputStream` | ||
- **generate** | ||
- replace `#getStream` with `fse#createOutputStream` | ||
([2d252d89](https://github.com/rafinskipg/git-changelog/commit/2d252d89017a70008896497e36f03e9d2add2c97)) | ||
- **lib:** simplify methods and refactor into separate files | ||
- **lib** | ||
- simplify methods and refactor into separate files | ||
([7a3600bf](https://github.com/rafinskipg/git-changelog/commit/7a3600bf9a5487cb26e3eb4b65ac774a68b6b91e)) | ||
- **writechangelog:** method now returns a promise | ||
- **writechangelog** | ||
- method now returns a promise | ||
([69fa1b0b](https://github.com/rafinskipg/git-changelog/commit/69fa1b0b11a603683342a9e0626cb69550b92002)) | ||
## Style | ||
- **message:** Added a message on the changelog for referencing the github | ||
- **message** | ||
- Added a message on the changelog for referencing the github | ||
([d20031a9](https://github.com/rafinskipg/git-changelog/commit/d20031a9dc6fd92cba205903b2fd9d25feae6ea7)) | ||
## Test | ||
- Tests fixed | ||
- Tests fixed | ||
([b9edae3b](https://github.com/rafinskipg/git-changelog/commit/b9edae3bfc64f2a8c2320f6f27326225bd586cc7)) | ||
- added test for .init(), .getPreviousTag(), getRepoUrl(), .log() and .warn() | ||
- added test for .init(), .getPreviousTag(), getRepoUrl(), .log() and .warn() | ||
([fd099a85](https://github.com/rafinskipg/git-changelog/commit/fd099a858b44e67e28f4e18f07c520803f3ac55e)) | ||
- removed unnecessary debug setting (was using for "debugging") | ||
- removed unnecessary debug setting (was using for "debugging") | ||
([83cd52b1](https://github.com/rafinskipg/git-changelog/commit/83cd52b1e8b79dd6bff13dc0d2003e802f8e45e6)) | ||
- updated test to cover promise return from .generate() | ||
- updated test to cover promise return from .generate() | ||
([c182ee47](https://github.com/rafinskipg/git-changelog/commit/c182ee47a4ec36a453420f8cc04358ec6e98e381)) | ||
- ensure changelog has default setting at the beginning of spec | ||
- ensure changelog has default setting at the beginning of spec | ||
([31f81e26](https://github.com/rafinskipg/git-changelog/commit/31f81e262440aa10efafd90c74d98569df418795)) | ||
- changed spy on changelog.generate() to stub, to avoid polluting following tests | ||
- changed spy on changelog.generate() to stub, to avoid polluting following tests | ||
([0aa35588](https://github.com/rafinskipg/git-changelog/commit/0aa35588cf944b2f84b842d66220d50e8f5d96a8)) | ||
- added test for .writeChageLog() and .organizeCommits() | ||
- added test for .writeChageLog() and .organizeCommits() | ||
([b07f28e1](https://github.com/rafinskipg/git-changelog/commit/b07f28e1e92bdf20be669596651b344d2f70855e)) | ||
- added default mocha options | ||
- added default mocha options | ||
([595c8347](https://github.com/rafinskipg/git-changelog/commit/595c8347fd4e2b697ceac247babe7ece7c90c4fa)) | ||
- added missing done() callback on .catch() | ||
- added missing done() callback on .catch() | ||
([0da53e9c](https://github.com/rafinskipg/git-changelog/commit/0da53e9c8ad8a967753ac06dc1c23302c7956017)) | ||
- added tests for tag option equals to false | ||
- added tests for tag option equals to false | ||
([1fc1e809](https://github.com/rafinskipg/git-changelog/commit/1fc1e809dcca7d499f870c314d2860121fcb6bab)) | ||
- Added unit tests for commit parsing | ||
- Added unit tests for commit parsing | ||
([504a61a7](https://github.com/rafinskipg/git-changelog/commit/504a61a715ed541feee4570810c2153ba8984420)) | ||
- **writechangelog:** updated test to reflect changes to method | ||
- **writechangelog** | ||
- updated test to reflect changes to method | ||
([b999948f](https://github.com/rafinskipg/git-changelog/commit/b999948f2c38f5d002fa0dc535429a80acdf2d75)) | ||
## Chore | ||
- updated grunt contrib clean | ||
- updated grunt contrib clean | ||
([e28c0c76](https://github.com/rafinskipg/git-changelog/commit/e28c0c763b7953861c05bcbedf04c3d6d48f8243)) | ||
- Remove grunt from peer dependencies | ||
- Remove grunt from peer dependencies | ||
([f6111d31](https://github.com/rafinskipg/git-changelog/commit/f6111d31f0c70f8368d2a57ea708bf58990f6bfd)) | ||
- Updated jshint | ||
- Updated jshint | ||
([1d5f6b1d](https://github.com/rafinskipg/git-changelog/commit/1d5f6b1d471e9d48ac2b4c7c8b78e3e5a8021ff4)) | ||
- typos and grammar | ||
- typos and grammar | ||
([5ae2ee52](https://github.com/rafinskipg/git-changelog/commit/5ae2ee52d1f096d375d077299047684eae2cd5e2)) | ||
- a couple of spelling corrections [ci skip] | ||
- a couple of spelling corrections [ci skip] | ||
([1486a845](https://github.com/rafinskipg/git-changelog/commit/1486a84537c5fd2d7997721820981c7949487af2)) | ||
- minor edits to README | ||
- minor edits to README | ||
([481c6c80](https://github.com/rafinskipg/git-changelog/commit/481c6c80d49e5e11c72d8378976d5d3ee1d581d2)) | ||
- fixing lint errors | ||
- fixing lint errors | ||
([3a8e8d48](https://github.com/rafinskipg/git-changelog/commit/3a8e8d486a2b89b9f04d01200fe4f9f7851d0123)) | ||
- added chai-as-promise to handle methods that return promises | ||
- added chai-as-promise to handle methods that return promises | ||
([1d384257](https://github.com/rafinskipg/git-changelog/commit/1d3842576839b763b28a777e96b061dbd4d01a80)) | ||
- updated travis config | ||
- updated travis config | ||
([d6a7ef94](https://github.com/rafinskipg/git-changelog/commit/d6a7ef945f600ec787b515486bd3abfa2f86a25b)) | ||
- stopped tracking test output files | ||
- stopped tracking test output files | ||
([1d12bccb](https://github.com/rafinskipg/git-changelog/commit/1d12bccb9f7dce07ff45318304dc5ab82620b6f1)) | ||
- added istanbul configuration file | ||
- added istanbul configuration file | ||
([88c945e6](https://github.com/rafinskipg/git-changelog/commit/88c945e6d8ddddfe6ee3bdf808ae2c749b4eabf3)) | ||
- updated travis configuration for code climate | ||
- updated travis configuration for code climate | ||
([fbd651dd](https://github.com/rafinskipg/git-changelog/commit/fbd651dd765a1ee26293dd03543e578181462e3f)) | ||
- fixed lint issues in tests | ||
- fixed lint issues in tests | ||
([2edb0199](https://github.com/rafinskipg/git-changelog/commit/2edb019910a421cd94868397a0f5881e90af4ed5)) | ||
- add tests to lint task | ||
- add tests to lint task | ||
([1d789792](https://github.com/rafinskipg/git-changelog/commit/1d789792143d2f68820c16426e772857e45ba181)) | ||
- add lint rules for mocha test | ||
- add lint rules for mocha test | ||
([bbea9341](https://github.com/rafinskipg/git-changelog/commit/bbea9341acb37f729e7f83d59d784cb4ff7969e1)) | ||
- ignore files generated by tests | ||
- ignore files generated by tests | ||
([3ccbff47](https://github.com/rafinskipg/git-changelog/commit/3ccbff47ee2dd655da95ea3a9b95cb156f8f6956)) | ||
- update dependencies | ||
- update dependencies | ||
([3036d803](https://github.com/rafinskipg/git-changelog/commit/3036d8037f4af6aa34fb137037a9eb9d0ce34297)) | ||
- removed unused dependency | ||
- removed unused dependency | ||
([cdd9f0d5](https://github.com/rafinskipg/git-changelog/commit/cdd9f0d5623f839eaaf646d4de0cf72816cf00af)) | ||
- fixed typo | ||
- fixed typo | ||
([081a8f96](https://github.com/rafinskipg/git-changelog/commit/081a8f963104711b5f15bb8468489ee13927e226)) | ||
- added commits fixture for tests | ||
- added commits fixture for tests | ||
([b7d16b68](https://github.com/rafinskipg/git-changelog/commit/b7d16b682a8167cd4a90e59c4f511774f6572ce1)) | ||
- added missing development dependencies | ||
- added missing development dependencies | ||
([e52e3ec6](https://github.com/rafinskipg/git-changelog/commit/e52e3ec6234db4cc9055c6e0abd5f32b587f67d6)) | ||
- adding missing newline at the end of file | ||
- adding missing newline at the end of file | ||
([da4b5492](https://github.com/rafinskipg/git-changelog/commit/da4b54920e1be490fb47a25906eece63229b0094)) | ||
- removed testing from grunt file (causing recursion issues during some tests) | ||
- removed testing from grunt file (causing recursion issues during some tests) | ||
([8e94e8ac](https://github.com/rafinskipg/git-changelog/commit/8e94e8ac23e73709495cf0c6851fbaf1a84c0c9b)) | ||
- install mocha before travis scripts | ||
- install mocha before travis scripts | ||
([9be62aae](https://github.com/rafinskipg/git-changelog/commit/9be62aaeb7d50959cff870e0cabb08277d1c512b)) | ||
- updated npm scripts and added debug | ||
- updated npm scripts and added debug | ||
([aa4f2a2d](https://github.com/rafinskipg/git-changelog/commit/aa4f2a2d7b834484f65239ceccdf4f973dbe0cee)) | ||
- moved fixtures to the test folder | ||
- moved fixtures to the test folder | ||
([e59d429b](https://github.com/rafinskipg/git-changelog/commit/e59d429b032451f75ef986e2d1b3c63fb8672a1c)) | ||
- removed unused test/hacky.js | ||
- removed unused test/hacky.js | ||
([500fdf3c](https://github.com/rafinskipg/git-changelog/commit/500fdf3c37e72c98f4809806e85926035eb46792)) | ||
- rename changelog.spec.js to match file being tested | ||
- rename changelog.spec.js to match file being tested | ||
([41757850](https://github.com/rafinskipg/git-changelog/commit/417578507b39aeffe826922ad3eccfcc13ad6ed0)) | ||
- fixed lint errors | ||
- fixed lint errors | ||
([71a5eae2](https://github.com/rafinskipg/git-changelog/commit/71a5eae2212e7abf87c97a569f8251a56b5474a6)) | ||
- added grunt coverage task | ||
- added grunt coverage task | ||
([ef6cf2cf](https://github.com/rafinskipg/git-changelog/commit/ef6cf2cf14b69fe4200eb0eeb9319fb4bcdffcc2)) | ||
- added node.js `0.12` to travis-ci config | ||
- added node.js `0.12` to travis-ci config | ||
([24d9c58a](https://github.com/rafinskipg/git-changelog/commit/24d9c58a0a4ea349709719c431ca9878a2f01bc4)) | ||
- Updated readme | ||
- Updated readme | ||
([fca6ecba](https://github.com/rafinskipg/git-changelog/commit/fca6ecbac686661ece15acdb41d23e86011457f2)) | ||
- package json version 1.1.3 | ||
- package json version 1.1.3 | ||
([9d600386](https://github.com/rafinskipg/git-changelog/commit/9d6003868e352ae21383913f671bc091afc9d8c7)) | ||
- **cleanup:** | ||
- remove unnecessary code [skip ci] | ||
- **cleanup** | ||
- remove unnecessary code [skip ci] | ||
([80dbe3ec](https://github.com/rafinskipg/git-changelog/commit/80dbe3ec7a28e7c20d99e89009856c70138350b0)) | ||
- remove `#getStream` and `#checkPath` | ||
- remove `#getStream` and `#checkPath` | ||
([cd75ebc4](https://github.com/rafinskipg/git-changelog/commit/cd75ebc44e39242b7e9c8ef2363c86d3f1cabc0e)) | ||
- **deps:** install fs-extra@0.18.4 | ||
- **deps** | ||
- install fs-extra@0.18.4 | ||
([7c8e257b](https://github.com/rafinskipg/git-changelog/commit/7c8e257b81f0daeba7e347d175583af1a7a9bfa0)) | ||
- **images:** | ||
- add logo in JPEG format | ||
- **images** | ||
- add logo in JPEG format | ||
([50338b9a](https://github.com/rafinskipg/git-changelog/commit/50338b9a8b5540e42273857448e803d8b85c689d)) | ||
- add logo in PNG format | ||
- add logo in PNG format | ||
([bb5fbbdb](https://github.com/rafinskipg/git-changelog/commit/bb5fbbdba7ef2b9466c185c12ef426d82fe25bcf)) | ||
- **lint:** | ||
- add missing semicolon | ||
- **lint** | ||
- add missing semicolon | ||
([2888af48](https://github.com/rafinskipg/git-changelog/commit/2888af4803f85da1afbb8c9832314f53cc4ca131)) | ||
- fix indentation | ||
- fix indentation | ||
([4cf9b6e6](https://github.com/rafinskipg/git-changelog/commit/4cf9b6e69a1426d48f18da45614f8f01994707b7)) | ||
- have jshint ignore false positives | ||
- have jshint ignore false positives | ||
([ed8e9df4](https://github.com/rafinskipg/git-changelog/commit/ed8e9df48720c42086186fa4219262a351bbc3e4)) | ||
- fixing jshint errors | ||
- fixing jshint errors | ||
([987366f0](https://github.com/rafinskipg/git-changelog/commit/987366f02517c9cfdb62264d0f6ea7d0b20d6634)) | ||
- **package:** Package json version | ||
- **package** | ||
- Package json version | ||
([990b8ea0](https://github.com/rafinskipg/git-changelog/commit/990b8ea04ca04f3c907653b0fa89ae6ddd601092)) | ||
- **package.json:** Added preversion script | ||
- **package.json** | ||
- Added preversion script | ||
([b3f1e44a](https://github.com/rafinskipg/git-changelog/commit/b3f1e44a900b00bda1facaee5354ba1ff58166aa)) | ||
- **release:** | ||
- 1.0.0 codename(magnificent-goldman) | ||
- **release** | ||
- 1.0.0 codename(magnificent-goldman) | ||
([6b836fbe](https://github.com/rafinskipg/git-changelog/commit/6b836fbea9405727bfc6d8e83349ea5cf8965b05)) | ||
- 0.1.8 codename(furious-stallman) | ||
- 0.1.8 codename(furious-stallman) | ||
([b9432318](https://github.com/rafinskipg/git-changelog/commit/b943231854ffd6cb0c5f32e5482cadd99c96f3e9)) | ||
- **task:** cleanup unused requires | ||
- **task** | ||
- cleanup unused requires | ||
([8a41d4e7](https://github.com/rafinskipg/git-changelog/commit/8a41d4e7b245b2698749279765bcef4748e18ac7)) | ||
## Branchs merged | ||
- Merge branch 'feature/add-logo' | ||
- Merge branch 'feature/add-logo' | ||
([e29b2dd8](https://github.com/rafinskipg/git-changelog/commit/e29b2dd8e088386eeec3f0c125973de6c8cdc2c6)) | ||
- Merge branch 'development' into feature/code-refactoring | ||
- Merge branch 'development' into feature/code-refactoring | ||
([34ea0198](https://github.com/rafinskipg/git-changelog/commit/34ea0198b976c72c638fd815be5a5913c67ef80a)) | ||
## Pull requests merged | ||
- Merge pull request #55 from kerimdzhanov/patch-1 | ||
- Merge pull request #60 from seivan/feature/latest_tag_regardless_of_branch | ||
([1ff50d0d](https://github.com/rafinskipg/git-changelog/commit/1ff50d0dc03f8c0db9961c034945c3ef8f4268f7)) | ||
- Merge pull request #58 from olamothe/master | ||
([3fed7270](https://github.com/rafinskipg/git-changelog/commit/3fed727077168815f24aad7bbf5768913e3843ab)) | ||
- Merge pull request #55 from kerimdzhanov/patch-1 | ||
([31d13896](https://github.com/rafinskipg/git-changelog/commit/31d1389637b59ac3a6c68c3f8fca99045675c36c)) | ||
- Merge pull request #50 from rafinskipg/changelogrc | ||
- Merge pull request #50 from rafinskipg/changelogrc | ||
([fd07a4bf](https://github.com/rafinskipg/git-changelog/commit/fd07a4bf039c7c8ddbb496c644dfd5fcc1627904)) | ||
- Merge pull request #41 from pmiossec/fix_branch_option | ||
- Merge pull request #41 from pmiossec/fix_branch_option | ||
([6247118a](https://github.com/rafinskipg/git-changelog/commit/6247118a573259cbe71c6fdd28cb53dcb7f1b855)) | ||
- Merge pull request #45 from xcambar/versionName | ||
- Merge pull request #45 from xcambar/versionName | ||
([2e50373a](https://github.com/rafinskipg/git-changelog/commit/2e50373a6f42e53598612f0e474c008624d6e80c)) | ||
- Merge pull request #47 from Sjors/patch-1 | ||
- Merge pull request #47 from Sjors/patch-1 | ||
([d786fd08](https://github.com/rafinskipg/git-changelog/commit/d786fd084d7c1c250c866bec3c5d0c73b9abe271)) | ||
- Merge pull request #46 from zoner14/master | ||
- Merge pull request #46 from zoner14/master | ||
([0485a1fd](https://github.com/rafinskipg/git-changelog/commit/0485a1fd4bf01662f50b93098c6b535eb7c527eb)) | ||
- Merge pull request #37 from richardthombs/fix-grunt-on-windows | ||
- Merge pull request #37 from richardthombs/fix-grunt-on-windows | ||
([5f024339](https://github.com/rafinskipg/git-changelog/commit/5f02433963b5b603c5763bd5c1a37cf8ca9e3598)) | ||
- Merge pull request #33 from richardthombs/fix-typos | ||
- Merge pull request #33 from richardthombs/fix-typos | ||
([2656d150](https://github.com/rafinskipg/git-changelog/commit/2656d150eb95c6ad9326e4265ba64edf8e49a11c)) | ||
- Merge pull request #30 from JohnnyEstilles/refactor/get-stream | ||
- Merge pull request #30 from JohnnyEstilles/refactor/get-stream | ||
([a52b1169](https://github.com/rafinskipg/git-changelog/commit/a52b1169a2510d83d6d4fd5113ce157f30c4d4d0)) | ||
- Merge pull request #25 from JohnnyEstilles/code-climate | ||
- Merge pull request #25 from JohnnyEstilles/code-climate | ||
([28053b92](https://github.com/rafinskipg/git-changelog/commit/28053b9292d3d61fb33a004f6088c244e653b76b)) | ||
- Merge pull request #23 from JohnnyEstilles/docs/readme-updates | ||
- Merge pull request #23 from JohnnyEstilles/docs/readme-updates | ||
([3079151a](https://github.com/rafinskipg/git-changelog/commit/3079151a8d5f90d0830aab4437a65dff4d837b2a)) | ||
- Merge pull request #20 from JohnnyEstilles/feature/code-refactoring | ||
- Merge pull request #20 from JohnnyEstilles/feature/code-refactoring | ||
([be209f04](https://github.com/rafinskipg/git-changelog/commit/be209f04c22f1ce2cb82e6412c4ddf117897a9e7)) | ||
- Merge pull request #12 from jodybrewster/master | ||
- Merge pull request #12 from jodybrewster/master | ||
([219ea809](https://github.com/rafinskipg/git-changelog/commit/219ea8091ac81a55b0210c9a7fd41a7f0ee5660f)) | ||
- Merge pull request #7 from colegleason/fix-tags | ||
- Merge pull request #7 from colegleason/fix-tags | ||
([1d4f6043](https://github.com/rafinskipg/git-changelog/commit/1d4f604363094d4eee3b4d7b1ca01133edaad344)) | ||
- Merge pull request #6 from colegleason/add-q | ||
- Merge pull request #6 from colegleason/add-q | ||
([2a712b9c](https://github.com/rafinskipg/git-changelog/commit/2a712b9cfd912f36b6f7f70d16b336575881881a)) | ||
@@ -312,3 +384,5 @@ | ||
--- | ||
<sub><sup>*Generated with [git-changelog](https://github.com/rafinskipg/git-changelog). If you have any problems or suggestions, create an issue.* :) **Thanks** </sub></sup> | ||
<sub><sup>*Generated with [git-changelog](https://github.com/rafinskipg/git-changelog). If you have any problems or suggestions, create an issue.* :) **Thanks** </sub></sup> |
@@ -46,2 +46,3 @@ /* | ||
app_name : 'Since tag 1 changelog', | ||
intro: 'This changelog is from the previous tag', | ||
file: 'output/tag1.md', | ||
@@ -64,2 +65,14 @@ logo : 'https://github.com/rafinskipg/git-changelog/raw/master/images/git-changelog-logo.png', | ||
}, | ||
customTemplate: { | ||
options: { | ||
app_name : 'Custom Template', | ||
intro: 'This changelog is generated with a custom template', | ||
file: 'output/customTemplate.md', | ||
template: 'templates/template_two.md', | ||
logo : 'https://github.com/rafinskipg/git-changelog/raw/master/images/git-changelog-logo.png', | ||
version : 'squeezy potatoe', | ||
tag: 'v0.0.1', | ||
debug: true | ||
} | ||
}, | ||
extended: { | ||
@@ -66,0 +79,0 @@ options: { |
<img width="300px" src="https://github.com/rafinskipg/git-changelog/raw/master/images/git-changelog-logo.png" /> | ||
__Since tag 1 changelog__ | ||
# Since tag 1 changelog | ||
# squeezy potatoe (2016-07-29) | ||
_This changelog is from the previous tag_ | ||
## v0.0.1 ( Sun Dec 25 2016 13:33:21 GMT+0100 (CET) ) | ||
--- | ||
## Bug Fixes | ||
- Fix generation of logs | ||
- fix error messages | ||
([ee5068bf](https://github.com/rafinskipg/git-changelog/commit/ee5068bffdbb9c0e45c8ce9ce0c2f790440f19e3)) | ||
- Fix generation of logs | ||
([cddb2408](https://github.com/rafinskipg/git-changelog/commit/cddb2408fa3017be704acac51dabbba9f477a547)) | ||
- correctly get branch name from the command line | ||
- correctly get branch name from the command line | ||
([4baa075b](https://github.com/rafinskipg/git-changelog/commit/4baa075bd93f878ee708817f911fe89c102dec02)) | ||
- correctly detect when running under grunt on Windows | ||
- correctly detect when running under grunt on Windows | ||
([4205ea49](https://github.com/rafinskipg/git-changelog/commit/4205ea49a893e4d1807a39268739c13754d40cf2)) | ||
- fixed tests | ||
- fixed tests | ||
([2e60172a](https://github.com/rafinskipg/git-changelog/commit/2e60172a4666c70d27e66d15dad297b89fff9583)) | ||
- Stream didn't close properly | ||
- Stream didn't close properly | ||
([99f228cf](https://github.com/rafinskipg/git-changelog/commit/99f228cfa5cb26c46ef9e3b00171a5e3d38fd844)) | ||
- Github commit url | ||
- Github commit url | ||
([c186f2d8](https://github.com/rafinskipg/git-changelog/commit/c186f2d877e7907305953610bcaaef331406178a)) | ||
- **checkpath:** add missing require('path') | ||
- **checkpath** | ||
- add missing require('path') | ||
([e5dab826](https://github.com/rafinskipg/git-changelog/commit/e5dab826062bd22dd37c8c3d3c24a4d9b4701f6d)) | ||
- **generate:** create path to file if it does not already exist | ||
- **generate** | ||
- create path to file if it does not already exist | ||
([62f6210f](https://github.com/rafinskipg/git-changelog/commit/62f6210f6895bcf5f9984b26948178b1a93cbc9e)) | ||
- **git log:** Ignores letter case | ||
- **git log** | ||
- Ignores letter case | ||
([d4cff0a8](https://github.com/rafinskipg/git-changelog/commit/d4cff0a86c5ce46405f3c0dd03f9c49a7d620792), | ||
[#54](https://github.com/rafinskipg/git-changelog/issues/54)) | ||
- **git_changelog_generate:** pass tag if it exists to gitReadLog | ||
- **git tag** | ||
- get latest tag, regardless of branch for workflows that rely on git-flow releases | ||
([48800306](https://github.com/rafinskipg/git-changelog/commit/48800306fa5ac19b7e9a4c6d7f2f432ee8ae4d84)) | ||
- **git_changelog_generate** | ||
- pass tag if it exists to gitReadLog | ||
([7c801927](https://github.com/rafinskipg/git-changelog/commit/7c801927672792fc9a818653b74c78d77c7bff9e), | ||
[#5](https://github.com/rafinskipg/git-changelog/issues/5)) | ||
- **nested lists:** nested list fix. Closes #9 | ||
- **nested lists** | ||
- nested list fix. Closes #9 | ||
([22855518](https://github.com/rafinskipg/git-changelog/commit/2285551810919bd4d8a749ae3ddd88f9cedcdd0e), | ||
[#9](https://github.com/rafinskipg/git-changelog/issues/9)) | ||
- **options:** use repo_url instead of url | ||
- **options** | ||
- Use version_name instead of version | ||
([43fdac85](https://github.com/rafinskipg/git-changelog/commit/43fdac855bfd2f67a43acc93ecc8ef2e7a81f45c)) | ||
- use repo_url instead of url | ||
([346b3949](https://github.com/rafinskipg/git-changelog/commit/346b39491923a49a3421f174a566b204d5fc7db9)) | ||
- **package.json:** move q to dependancies since it is required to run | ||
- **package.json** | ||
- move q to dependancies since it is required to run | ||
([257119cf](https://github.com/rafinskipg/git-changelog/commit/257119cf2bb6d8f341a5d65a2f47bcf803dff205)) | ||
- **params:** Restores versionName in CLI | ||
- **params** | ||
- Restores versionName in CLI | ||
([1d97f952](https://github.com/rafinskipg/git-changelog/commit/1d97f952bd5d37f67c1febdf161f4ce9b310eebf)) | ||
## Pull requests merged | ||
- Merge pull request #55 from kerimdzhanov/patch-1 | ||
- Merge pull request #60 from seivan/feature/latest_tag_regardless_of_branch | ||
([1ff50d0d](https://github.com/rafinskipg/git-changelog/commit/1ff50d0dc03f8c0db9961c034945c3ef8f4268f7)) | ||
- Merge pull request #58 from olamothe/master | ||
([3fed7270](https://github.com/rafinskipg/git-changelog/commit/3fed727077168815f24aad7bbf5768913e3843ab)) | ||
- Merge pull request #55 from kerimdzhanov/patch-1 | ||
([31d13896](https://github.com/rafinskipg/git-changelog/commit/31d1389637b59ac3a6c68c3f8fca99045675c36c)) | ||
- Merge pull request #50 from rafinskipg/changelogrc | ||
- Merge pull request #50 from rafinskipg/changelogrc | ||
([fd07a4bf](https://github.com/rafinskipg/git-changelog/commit/fd07a4bf039c7c8ddbb496c644dfd5fcc1627904)) | ||
- Merge pull request #41 from pmiossec/fix_branch_option | ||
- Merge pull request #41 from pmiossec/fix_branch_option | ||
([6247118a](https://github.com/rafinskipg/git-changelog/commit/6247118a573259cbe71c6fdd28cb53dcb7f1b855)) | ||
- Merge pull request #45 from xcambar/versionName | ||
- Merge pull request #45 from xcambar/versionName | ||
([2e50373a](https://github.com/rafinskipg/git-changelog/commit/2e50373a6f42e53598612f0e474c008624d6e80c)) | ||
- Merge pull request #47 from Sjors/patch-1 | ||
- Merge pull request #47 from Sjors/patch-1 | ||
([d786fd08](https://github.com/rafinskipg/git-changelog/commit/d786fd084d7c1c250c866bec3c5d0c73b9abe271)) | ||
- Merge pull request #46 from zoner14/master | ||
- Merge pull request #46 from zoner14/master | ||
([0485a1fd](https://github.com/rafinskipg/git-changelog/commit/0485a1fd4bf01662f50b93098c6b535eb7c527eb)) | ||
- Merge pull request #37 from richardthombs/fix-grunt-on-windows | ||
- Merge pull request #37 from richardthombs/fix-grunt-on-windows | ||
([5f024339](https://github.com/rafinskipg/git-changelog/commit/5f02433963b5b603c5763bd5c1a37cf8ca9e3598)) | ||
- Merge pull request #33 from richardthombs/fix-typos | ||
- Merge pull request #33 from richardthombs/fix-typos | ||
([2656d150](https://github.com/rafinskipg/git-changelog/commit/2656d150eb95c6ad9326e4265ba64edf8e49a11c)) | ||
- Merge pull request #30 from JohnnyEstilles/refactor/get-stream | ||
- Merge pull request #30 from JohnnyEstilles/refactor/get-stream | ||
([a52b1169](https://github.com/rafinskipg/git-changelog/commit/a52b1169a2510d83d6d4fd5113ce157f30c4d4d0)) | ||
- Merge pull request #25 from JohnnyEstilles/code-climate | ||
- Merge pull request #25 from JohnnyEstilles/code-climate | ||
([28053b92](https://github.com/rafinskipg/git-changelog/commit/28053b9292d3d61fb33a004f6088c244e653b76b)) | ||
- Merge pull request #23 from JohnnyEstilles/docs/readme-updates | ||
- Merge pull request #23 from JohnnyEstilles/docs/readme-updates | ||
([3079151a](https://github.com/rafinskipg/git-changelog/commit/3079151a8d5f90d0830aab4437a65dff4d837b2a)) | ||
- Merge pull request #20 from JohnnyEstilles/feature/code-refactoring | ||
- Merge pull request #20 from JohnnyEstilles/feature/code-refactoring | ||
([be209f04](https://github.com/rafinskipg/git-changelog/commit/be209f04c22f1ce2cb82e6412c4ddf117897a9e7)) | ||
- Merge pull request #12 from jodybrewster/master | ||
- Merge pull request #12 from jodybrewster/master | ||
([219ea809](https://github.com/rafinskipg/git-changelog/commit/219ea8091ac81a55b0210c9a7fd41a7f0ee5660f)) | ||
- Merge pull request #7 from colegleason/fix-tags | ||
- Merge pull request #7 from colegleason/fix-tags | ||
([1d4f6043](https://github.com/rafinskipg/git-changelog/commit/1d4f604363094d4eee3b4d7b1ca01133edaad344)) | ||
- Merge pull request #6 from colegleason/add-q | ||
- Merge pull request #6 from colegleason/add-q | ||
([2a712b9c](https://github.com/rafinskipg/git-changelog/commit/2a712b9cfd912f36b6f7f70d16b336575881881a)) | ||
@@ -81,3 +108,5 @@ | ||
--- | ||
<sub><sup>*Generated with [git-changelog](https://github.com/rafinskipg/git-changelog). If you have any problems or suggestions, create an issue.* :) **Thanks** </sub></sup> | ||
<sub><sup>*Generated with [git-changelog](https://github.com/rafinskipg/git-changelog). If you have any problems or suggestions, create an issue.* :) **Thanks** </sub></sup> |
{ | ||
"name": "git-changelog", | ||
"description": "A git changelog tool", | ||
"version": "1.0.1", | ||
"version": "1.1.0", | ||
"homepage": "https://github.com/rafinskipg/git-changelog", | ||
@@ -6,0 +6,0 @@ "author": { |
@@ -46,7 +46,12 @@ ![git-changelog logo][logo-image] | ||
- `grep_commits` option has been removed in favour of the `.changelogrc` options | ||
- `tag = false`, in addition to pick logs from the begining of the project, now groups the commits by tag [see example]. **TODO** | ||
- `tag = false` && `group=false` will log from the begining of the project, without grouping by tag **TODO** | ||
- `repo_url` fixed as parameter | ||
- `branch_name` changed to `branch` | ||
### v1.1.0 | ||
- `version_name` instead of `version` | ||
**ATTENTION: Help wanted, there are some easy issues that you can contribute to. WINK WINK** | ||
## `.changelogrc` specification | ||
@@ -65,4 +70,5 @@ | ||
"repo_url": "", | ||
"version" : "v1.0.0", | ||
"file": 'CHANGELOG.md', | ||
"version_name" : "v1.0.0", | ||
"file": "CHANGELOG.md", | ||
"template": "myCustomTemplate.md", | ||
"sections": [ | ||
@@ -117,8 +123,9 @@ { | ||
* **repo_url** : The url of the project. For issues and commits links. Defaults to `git config --get remote.origin.url` | ||
* **version**: The version of the project. Defaults to ` `, *DEPRECATED* will default to the tag name | ||
* **version_name**: The version name of the project. | ||
* **file**: The name of the file that will be generated. Defaults to `CHANGELOG.md`, | ||
* **template**: The template for generating the changelog. It defaults to the one inside this project (/templates/template.md) | ||
* **app_name** : The name of the project. Defaults to `My App - Changelog` | ||
* **intro** : The introduction text on the header of the changelog. Defaults to `null` | ||
* **logo** : A logo URL to be included in the header of the changelog. Defaults to `null` | ||
* **changelogrc ** : Relative path indicating the location of the .changelogrc file, defaults to current dir. | ||
* **changelogrc** : Relative path indicating the location of the .changelogrc file, defaults to current dir. | ||
* **tag**: You can select from which tag to generate the log, it defaults to the last one. Set it to false for log since the beginning of the project | ||
@@ -167,3 +174,3 @@ * **debug**: Debug mode, false by default | ||
file : 'EXTENDEDCHANGELOG.md', | ||
version : 'squeezy potatoe', | ||
version_name : 'squeezy potatoe', | ||
sections : [ | ||
@@ -190,2 +197,14 @@ { | ||
} | ||
}, | ||
customTemplate: { | ||
options: { | ||
app_name : 'Custom Template', | ||
intro: 'This changelog is generated with a custom template', | ||
file: 'output/customTemplate.md', | ||
template: 'templates/template_two.md', | ||
logo : 'https://github.com/rafinskipg/git-changelog/raw/master/images/git-changelog-logo.png', | ||
version_name : 'squeezy potatoe', | ||
tag: 'v0.0.1', | ||
debug: true | ||
} | ||
} | ||
@@ -214,15 +233,17 @@ } | ||
-h, --help output usage information | ||
-V, --version output the version number | ||
-e, --extended Extended log | ||
-a, --app_name [app_name] Name [app_name] | ||
-b, --branch [branch] Branch name [branch] | ||
-f, --file [file] File [file] | ||
-r, --repo_url [url] Repo url [url] | ||
-l, --logo [logo] Logo path [logo] | ||
-i, --intro [intro] intro text [intro] | ||
-t, --tag [tag] Since tag [tag] | ||
-rc, --changelogrc [changelogrc] .changelogrc relative path [changelogrc] | ||
-g, --grep [grep] Grep commits for [grep] | ||
-d, --debug Debugger | ||
-h, --help output usage information | ||
-V, --version output the version number of the package | ||
-e, --extended Extended log | ||
-n, --version_name [version_name] Name of the version | ||
-a, --app_name [app_name] Name [app_name] | ||
-b, --branch [branch] Branch name [branch] | ||
-f, --file [file] File [file] | ||
-tpl, --template [template] Template [template] | ||
-r, --repo_url [repo_url] Repo url [repo_url] | ||
-l, --logo [logo] Logo path [logo] | ||
-i, --intro [intro] intro text [intro] | ||
-t, --tag [tag] Since tag [tag] | ||
-rc, --changelogrc [changelogrc] .changelogrc relative path [changelogrc] | ||
-g, --grep [grep] Grep commits for [grep] | ||
-d, --debug Debugger | ||
@@ -229,0 +250,0 @@ ``` |
@@ -21,2 +21,3 @@ #!/usr/bin/env node | ||
.option('-f, --file [file]', 'File [file]') | ||
.option('-tpl, --template [template]', 'Template [template]') | ||
.option('-r, --repo_url [repo_url]', 'Repo url [repo_url]') | ||
@@ -39,3 +40,3 @@ .option('-l, --logo [logo]', 'Logo path [logo]') | ||
if (program.version_name){ | ||
options.versionName = program.version_name; | ||
options.version_name = program.version_name; | ||
} | ||
@@ -60,2 +61,6 @@ | ||
if (program.template){ | ||
options.template = program.template; | ||
} | ||
if (program.changelogrc){ | ||
@@ -62,0 +67,0 @@ options.changelogrc = program.changelogrc; |
@@ -6,3 +6,3 @@ //Defaults options | ||
repo_url: '', | ||
version : '', | ||
version_name : '', | ||
file: 'CHANGELOG.md', | ||
@@ -14,2 +14,3 @@ app_name : 'My app - Changelog', | ||
debug: false, | ||
template: 'templates/template.md', | ||
changelogrc : '.changelogrc', | ||
@@ -16,0 +17,0 @@ sections: [ |
@@ -22,2 +22,3 @@ /* | ||
Changelog.prototype.loadChangelogRc = require('./lib/load-changelog-rc'); | ||
Changelog.prototype.loadTemplate = require('./lib/load-template'); | ||
Changelog.prototype.getGitLogCommands = require('./lib/get-gitlog-commands'); | ||
@@ -30,2 +31,3 @@ Changelog.prototype.parseRawCommit = require('./lib/parse-raw-commit'); | ||
Changelog.prototype.printSection = require('./lib/print-section'); | ||
Changelog.prototype.printCommit = require('./lib/print-commit'); | ||
Changelog.prototype.printSalute = require('./lib/print-salute'); | ||
@@ -32,0 +34,0 @@ Changelog.prototype.readGitLog = require('./lib/read-gitlog'); |
'use strict'; | ||
var debug = require('debug')('changelog:generate'); | ||
var q = require('q'); | ||
var fse = require('fs-extra'); | ||
function generateFromCommits(deferred, commits, sections) { | ||
var stream; | ||
function generateFromCommits(commits, sections) { | ||
this.message('parsed commits', commits.length); | ||
this.log('debug', 'Parsed', commits.length, 'commits'); | ||
this.log('info','Generating changelog to', this.options.file || 'stdout', '(', this.options.version, ')'); | ||
this.log('info','Generating changelog to', this.options.file || 'stdout', '(', this.options.version_name, ')'); | ||
if (this.options.file) { | ||
stream = fse.createOutputStream(this.options.file); | ||
} else { | ||
stream = process.stdout; | ||
} | ||
this.writeChangelog(stream, commits, sections) | ||
.then(deferred.resolve.bind(deferred, this.options)); | ||
return this.writeChangelog(commits, sections); | ||
} | ||
function generateFromTag(deferred, tag) { | ||
function generateFromTag(tag) { | ||
var readGitLog; | ||
if (typeof(tag) !== 'undefined' && tag !== false) { | ||
if (typeof(tag) !== 'undefined' && tag && tag !== false) { | ||
this.log('info', 'Reading git log since', tag); | ||
@@ -37,4 +26,4 @@ this.message('since tag', tag); | ||
readGitLog() | ||
.then(generateFromCommits.bind(this, deferred)) | ||
return readGitLog() | ||
.then(generateFromCommits.bind(this)) | ||
.catch(console.log.bind(console, 'error')); | ||
@@ -46,15 +35,15 @@ } | ||
var self = this; | ||
var deferred = q.defer(); | ||
this.init(params, loadRC) | ||
return this.init(params, loadRC) | ||
.then(this.getPreviousTag.bind(this)) | ||
.then(generateFromTag.bind(this, deferred)) | ||
.then(generateFromTag.bind(this)) | ||
.then(function(){ | ||
return self.options; | ||
}) | ||
.catch(function(err){ | ||
self.log('error', err); | ||
deferred.reject(err); | ||
throw(err); | ||
}); | ||
return deferred.promise; | ||
} | ||
module.exports = generate; |
@@ -5,10 +5,11 @@ 'use strict'; | ||
var child = require('child_process'); | ||
var q = require('q'); | ||
function cmdDone(deferred, code, stdout, stderr) { | ||
function cmdDone(resolve, reject, code, stdout, stderr) { | ||
debug('returning from git tag'); | ||
//I think this command it's actually not working and always return empty | ||
// Consider trying git describe --abbrev=0 --tags | ||
if (code) { | ||
deferred.reject(); | ||
reject(); | ||
} else { | ||
deferred.resolve(stdout.replace('\n', '')); | ||
resolve(stdout.replace('\n', '')); | ||
} | ||
@@ -18,18 +19,18 @@ } | ||
function getPreviousTag() { | ||
var deferred = q.defer(); | ||
var module = this; | ||
if (this.options.tag) { | ||
deferred.resolve(this.options.tag); | ||
} else if (this.options.tag === false) { | ||
deferred.resolve(false); | ||
} else { | ||
this.log('debug', 'Getting last tag'); | ||
//IF we dont find a previous tag, we get all the commits from the beggining - The bigbang of the code | ||
debug('calling git tag command'); | ||
child.exec(this.cmd.gitTag, cmdDone.bind(null, deferred)); | ||
} | ||
return deferred.promise; | ||
return new Promise(function(resolve, reject){ | ||
if (module.options.tag) { | ||
resolve(module.options.tag); | ||
} else if (module.options.tag === false) { | ||
resolve(false); | ||
} else { | ||
module.log('debug', 'Getting last tag'); | ||
//IF we dont find a previous tag, we get all the commits from the beggining - The bigbang of the code | ||
debug('calling git tag command'); | ||
child.exec(module.cmd.gitTag, cmdDone.bind(null, resolve, reject)); | ||
} | ||
}); | ||
} | ||
module.exports = getPreviousTag; |
@@ -10,3 +10,3 @@ 'use strict'; | ||
if (code) { | ||
deferred.reject(); | ||
deferred.reject("Sorry, you've not configured an origin remote or passed a `repo_url` config value"); | ||
} else { | ||
@@ -13,0 +13,0 @@ stdout = stdout.replace('\n', '').replace('.git', ''); |
@@ -18,6 +18,7 @@ 'use strict'; | ||
this.message('file', this.options.file); | ||
this.message('template', this.options.template); | ||
this.message('logo', this.options.logo); | ||
this.message('sections', this.options.sections); | ||
this.message('debug', this.options.debug); | ||
this.message('version', this.options.version); | ||
this.message('version_name', this.options.version_name); | ||
this.message('changelogrc', this.options.changelogrc); | ||
@@ -24,0 +25,0 @@ } |
@@ -19,3 +19,3 @@ 'use strict'; | ||
this.message('not remote'); | ||
deferred.reject("Sorry, you've not configured an origin remote or passed a `repo_url` config value"); | ||
deferred.reject(err); | ||
} | ||
@@ -39,2 +39,3 @@ | ||
module.log('info', ' - The output file is', module.options.file); | ||
module.log('info', ' - The template file is', module.options.template); | ||
@@ -46,3 +47,3 @@ module.options.grep_commits = module.options.sections.map(function(section) { | ||
module.log('debug', 'Grep commits: ', module.options.grep_commits); | ||
return module.getRepoUrl(); | ||
@@ -49,0 +50,0 @@ }) |
@@ -8,3 +8,3 @@ 'use strict'; | ||
function readChangelogRcFile(changelogrc, logger) { | ||
debug('returning git repo url command'); | ||
debug('finding changelogrc file'); | ||
@@ -44,4 +44,4 @@ if(!changelogrc){ | ||
}catch(e){ | ||
module.log('warn', 'Invalid changelogrc file', e); | ||
return deferred.reject(e); | ||
module.log('error', 'Invalid changelogrc file', e); | ||
return deferred.reject('Invalid changelogrc file' + e); | ||
} | ||
@@ -55,3 +55,3 @@ | ||
module.log('warn', 'No .changelog.rc file found, using default settings'); | ||
module.log('error', 'No .changelog.rc file found, using default settings'); | ||
module.log('info', 'Sections: ', sectionNames); | ||
@@ -58,0 +58,0 @@ deferred.resolve({}); |
@@ -5,2 +5,3 @@ 'use strict'; | ||
var format = require('util').format; | ||
var _ = require('lodash'); | ||
@@ -25,23 +26,76 @@ function grepSection(sections, commit){ | ||
var component = commit.component ? commit.component.toLowerCase() : this.emptyComponent; | ||
if (section) { | ||
section[component] = section[component] || []; | ||
section[component].push(commit); | ||
section.commitsCount++; | ||
if(component === this.emptyComponent){ | ||
section.commits.push(commit); | ||
}else{ | ||
section.components[component] = section.components[component] || []; | ||
section.components[component].push(commit); | ||
} | ||
} | ||
if (commit.breaking) { | ||
sections.BREAKING[component] = sections.BREAKING[component] || []; | ||
sections.BREAKING[component].push({ | ||
//Add it to the breaking list)) | ||
sections.BREAKING.commitsCount++; | ||
var breakingCommit = { | ||
subject: format("due to %s,\n %s", this.linkToCommit(commit.hash), commit.breaking), | ||
hash: commit.hash, | ||
closes: [] | ||
}); | ||
}; | ||
if(component === this.emptyComponent){ | ||
sections.BREAKING.commits.push(breakingCommit); | ||
}else{ | ||
sections.BREAKING.components[component] = sections.BREAKING.components[component] || []; | ||
sections.BREAKING.components[component].push(breakingCommit); | ||
} | ||
} | ||
} | ||
function organizeCommits(commits, sections) { | ||
function organizeCommits(commits, defaultSections) { | ||
commits = commits ? commits : []; | ||
var sections = { | ||
BREAKING : { | ||
components: {}, | ||
commitsCount: 0, | ||
title: 'Breaking Changes', | ||
commits: [], | ||
type: 'BREAKING', | ||
printCommitLinks: false | ||
} | ||
}; | ||
defaultSections.forEach(function(sectionInfo){ | ||
var sectionType = sectionInfo.grep.replace('^', ''); | ||
sections[sectionType] = { | ||
title: sectionInfo.title, | ||
components: {}, | ||
commits: [], | ||
commitsCount: 0, | ||
type: sectionType, | ||
printCommitLinks: sectionInfo.printCommitLinks === false ? false : true | ||
}; | ||
}); | ||
debug('organizaing commits'); | ||
commits.forEach(organizeCommit.bind(this, sections), this); | ||
return sections; | ||
return _.compact(Object.keys(sections).map(function(key){ | ||
var section = sections[key]; | ||
section.components = Object.keys(section.components).sort().map(function(key){ | ||
return { name: key, | ||
commits: section.components[key] | ||
}; | ||
}); | ||
return section.commitsCount > 0 ? section : null; | ||
})); | ||
} | ||
module.exports = organizeCommits; |
@@ -10,3 +10,3 @@ 'use strict'; | ||
var subtitleTemplate = '_%s_\n\n'; | ||
var versionTemplate = '# %s %s (%s)\n\n'; | ||
var versionTemplate = '# %s (%s)\n\n'; | ||
@@ -26,3 +26,3 @@ function printHeader(stream, options, date) { | ||
stream.write(format(versionTemplate, options.version || '', options.versionName || '', date)); | ||
stream.write(format(versionTemplate, options.version_name || '', date)); | ||
stream.write('\n\n---\n'); | ||
@@ -29,0 +29,0 @@ } |
@@ -6,3 +6,3 @@ 'use strict'; | ||
function printCommit(stream, printCommitLinks, prefix, commit) { | ||
function printCommitStream(stream, printCommitLinks, prefix, commit) { | ||
if (printCommitLinks) { | ||
@@ -20,34 +20,39 @@ stream.write(format('%s %s\n (%s', prefix, commit.subject, this.linkToCommit(commit.hash))); | ||
function printComponent(stream, section, printCommitLinks, name) { | ||
function printComponent(stream, printCommitLinks, component) { | ||
var prefix = '-'; | ||
var nested = section[name].length > 1; | ||
if (name !== this.emptyComponent) { | ||
if (nested) { | ||
stream.write(format('- **%s:**\n', name)); | ||
prefix = ' -'; | ||
} else { | ||
prefix = format('- **%s:**', name); | ||
} | ||
var nested = component.commits.length > 1; | ||
if (nested) { | ||
stream.write(format('- **%s:**\n', component.name)); | ||
prefix = ' -'; | ||
} else { | ||
prefix = format('- **%s:**', component.name); | ||
} | ||
section[name].forEach(printCommit.bind(this, stream, printCommitLinks, prefix), this); | ||
component.commits.forEach(printCommitStream.bind(this, stream, printCommitLinks, prefix), this); | ||
} | ||
function printSection(stream, title, section, printCommitLinks) { | ||
function printSection(stream, section) { | ||
try{ | ||
debug('printing section ...'); | ||
printCommitLinks = printCommitLinks === undefined ? true : printCommitLinks; | ||
var components = Object.keys(section).sort(); | ||
if (!components.length) { | ||
if (!section.commits.length && !section.components.length) { | ||
return; | ||
} | ||
stream.write(format('\n## %s\n\n', title)); | ||
components.forEach(printComponent.bind(this, stream, section, printCommitLinks), this); | ||
stream.write(format('\n## %s\n\n', section.title)); | ||
section.commits.forEach(printCommitStream.bind(this, stream, section.printCommitLinks, '-'), this); | ||
section.components.forEach(printComponent.bind(this, stream, section.printCommitLinks), this); | ||
stream.write('\n'); | ||
}catch(e){ | ||
console.log(e); | ||
} | ||
} | ||
module.exports = printSection; |
@@ -9,3 +9,3 @@ 'use strict'; | ||
this.cmd = { | ||
gitTag: 'git describe --tags --abbrev=0', | ||
gitTag: 'git tag | tail -n1', | ||
gitRepoUrl: 'git config --get remote.origin.url', | ||
@@ -12,0 +12,0 @@ gitLog: null, |
@@ -5,5 +5,6 @@ 'use strict'; | ||
var format = require('util').format; | ||
var q = require('q'); | ||
var _ = require('lodash'); | ||
var fse = require('fs-extra'); | ||
function sendToStream(stream, sections, deferred) { | ||
function sendToStream(stream, sections) { | ||
@@ -13,10 +14,5 @@ var module = this; | ||
this.printHeader(stream, this.options, this.currentDate()); | ||
this.options.sections.forEach(function(section){ | ||
var sectionType = section.grep.replace('^', ''); | ||
if(sectionType !== 'BREAKING'){ | ||
module.printSection(stream, section.title, sections[sectionType]); | ||
}else if (sections.BREAKING[module.emptyComponent].length > 0 ) { | ||
module.printSection(stream, 'Breaking Changes', sections.BREAKING, false); | ||
} | ||
sections.forEach(function(section){ | ||
module.printSection(stream, section); | ||
}); | ||
@@ -26,24 +22,63 @@ | ||
stream.end(); | ||
stream.on('finish', deferred.resolve); | ||
} | ||
function writeChangelog(stream, commits) { | ||
function writeChangelog(commits) { | ||
var module = this; | ||
debug('writing change log'); | ||
var deferred = q.defer(); | ||
var sections = { | ||
BREAKING : {} | ||
var sections = this.organizeCommits(commits, this.options.sections); | ||
var stream; | ||
var data = { | ||
logo: module.options.logo, | ||
sections: sections, | ||
intro: module.options.intro, | ||
title: module.options.app_name, | ||
version:{ | ||
number: module.options.tag, | ||
name: module.options.version_name, | ||
date: new Date()//Todo get the date of the tag | ||
} | ||
}; | ||
this.options.sections.forEach(function(sectionInfo){ | ||
var sectionType = sectionInfo.grep.replace('^', ''); | ||
sections[sectionType] = {}; | ||
}); | ||
return new Promise(function(resolve, reject){ | ||
sections.BREAKING[this.emptyComponent] = []; | ||
this.organizeCommits(commits, sections); | ||
stream.on('open', sendToStream.bind(this, stream, sections, deferred)); | ||
module.loadTemplate(data) | ||
.then(function(template){ | ||
return deferred.promise; | ||
if (module.options.file) { | ||
stream = fse.createOutputStream(module.options.file); | ||
} else { | ||
stream = process.stdout; | ||
} | ||
if(template){ | ||
debug('Proceding with template'); | ||
stream.on('open', function(){ | ||
var lines = template.split('\n'); | ||
lines.forEach(function(line){ | ||
stream.write(line); | ||
stream.write('\n'); | ||
}); | ||
stream.end(); | ||
stream.on('finish', resolve); | ||
}); | ||
}else{ | ||
debug('Proceding with legacy output'); | ||
stream.on('open', sendToStream.bind(module, stream, sections)); | ||
stream.on('finish', resolve); | ||
} | ||
}) | ||
.catch(reject); | ||
}); | ||
} | ||
module.exports = writeChangelog; |
@@ -85,5 +85,6 @@ 'use strict'; | ||
var sections = { | ||
fix: {} | ||
}; | ||
var sections = [{ | ||
title: 'Bug Fixes', | ||
grep: '^fix' | ||
}]; | ||
@@ -100,4 +101,4 @@ var commits = []; | ||
sections = changelog.organizeCommits(commits, sections); | ||
expect(sections.fix.mymodule.length).to.equal(10); | ||
expect(sections[0].components[0].name).to.equal('mymodule'); | ||
expect(sections[0].components[0].commits.length).to.equal(10); | ||
}); | ||
@@ -104,0 +105,0 @@ |
@@ -87,3 +87,3 @@ exports.withoutBreaking = [ | ||
closes: [], | ||
breaks: [], | ||
breaks: [3, 4], | ||
hash: '1d4f604363094d4eee3b4d7b1ca01133edaad344', | ||
@@ -97,3 +97,3 @@ subject: 'did 4 thing', | ||
closes: [], | ||
breaks: [], | ||
breaks: [2,3], | ||
hash: '1d4f604363094d4eee3b4d7b1ca01133edaad344', | ||
@@ -100,0 +100,0 @@ subject: 'did 5 thing', |
@@ -54,3 +54,3 @@ 'use strict'; | ||
expect(changelog).to.have.deep.property('cmd.gitTag'); | ||
expect(changelog.cmd.gitTag).to.equal('git describe --tags --abbrev=0'); | ||
expect(changelog.cmd.gitTag).to.equal('git tag | tail -n1'); | ||
@@ -130,6 +130,6 @@ expect(changelog).to.have.deep.property('cmd.gitRepoUrl'); | ||
it('should store "version" if passed as an option', function() { | ||
changelog.initOptions({ version: 'test' }); | ||
expect(changelog.options.version).to.equal('test'); | ||
expect(changelog.options.msg).to.contain('version: test'); | ||
it('should store "version_name" if passed as an option', function() { | ||
changelog.initOptions({ version_name: 'test' }); | ||
expect(changelog.options.version_name).to.equal('test'); | ||
expect(changelog.options.msg).to.contain('version_name: test'); | ||
}); | ||
@@ -275,2 +275,12 @@ | ||
it('should add everything as a message if there are 2 sections', function(){ | ||
var msg = changelog.parseRawCommit( | ||
'13f31602f396bc269076ab4d389cfd8ca94b20ba\n'+ | ||
'feat(ad): make new ad\n' + | ||
'some note here\n' + | ||
'reg(ad): need a walk through\n'); | ||
expect(msg.body).to.equals('some note here\nreg(ad): need a walk through\n'); | ||
}); | ||
it('should organize commits', function() { | ||
@@ -284,5 +294,6 @@ var msg = changelog.parseRawCommit( | ||
var sections = { | ||
fix: {} | ||
}; | ||
var sections = [{ | ||
title: 'Bug Fixes', | ||
grep: '^fix' | ||
}]; | ||
@@ -299,4 +310,4 @@ var commits = []; | ||
sections = changelog.organizeCommits(commits, sections); | ||
expect(sections.fix.mymodule.length).to.equal(10); | ||
expect(sections[0].components[0].name).to.equal('mymodule'); | ||
expect(sections[0].components[0].commits.length).to.equal(10); | ||
}); | ||
@@ -454,18 +465,10 @@ | ||
grep: 'BREAKING' | ||
} | ||
} | ||
]; | ||
before(function(done) { | ||
this.stream = { | ||
write: sinon.stub(), | ||
end : function(){ | ||
}, | ||
on: sinon.spy(function(event, callback) { | ||
callback(); | ||
}) | ||
}; | ||
this.timeout = 10000; | ||
this.commits = require('./fixtures/commits.js').withoutBreaking; | ||
sinon.stub(changelog, 'organizeCommits'); | ||
sinon.stub(changelog, 'printSalute'); | ||
@@ -475,5 +478,9 @@ sinon.stub(changelog, 'printSection'); | ||
changelog.initOptions({ app_name: 'app', version: 'version', sections: sections }); | ||
changelog.writeChangelog(this.stream, this.commits).then(function() { | ||
changelog.initOptions({ app_name: 'app', version_name: 'version_name', sections: sections, template: false }); | ||
changelog.writeChangelog(this.commits) | ||
.then(function() { | ||
done(); | ||
}) | ||
.catch(function(err){ | ||
console.log('error', err); | ||
}); | ||
@@ -483,3 +490,2 @@ }); | ||
after(function() { | ||
changelog.organizeCommits.restore(); | ||
changelog.printSection.restore(); | ||
@@ -490,22 +496,8 @@ changelog.printHeader.restore(); | ||
it('should organize commits', function() { | ||
expect(changelog.organizeCommits).to.have.been.calledOnce; | ||
expect(changelog.organizeCommits).to.have.been.calledWith(this.commits); | ||
}); | ||
it('should write the header to the stream', function() { | ||
expect(changelog.printHeader).to.have.been.calledOnce; | ||
expect(changelog.printSalute).to.have.been.calledWith(this.stream); | ||
}); | ||
it('should print 7 sections', function() { | ||
expect(changelog.printSection.callCount).to.equal(7); | ||
sections.forEach(function(section, index) { | ||
var call = changelog.printSection.getCall(index); | ||
if(!call){ | ||
expect(section.title).to.equals('Breaking changes'); | ||
}else{ | ||
expect(call.args).to.include(section.title); | ||
} | ||
}); | ||
it('should print 3 sections', function() { | ||
expect(changelog.printSection.callCount).to.equal(3); | ||
}); | ||
@@ -515,3 +507,2 @@ | ||
expect(changelog.printSalute).to.have.been.calledOnce; | ||
expect(changelog.printSalute).to.have.been.calledWith(this.stream); | ||
}); | ||
@@ -558,15 +549,32 @@ | ||
before(function(done) { | ||
this.stream = { | ||
write: sinon.stub(), | ||
end : function(){ | ||
}, | ||
on: sinon.spy(function(event, callback) { | ||
callback(); | ||
}) | ||
}; | ||
this.commits = require('./fixtures/commits.js').withBreaking; | ||
sinon.stub(changelog, 'organizeCommits', function(commits, sections) { | ||
sections.BREAKING[changelog.emptyComponent] = [ 'breaking commit']; | ||
return [{ | ||
type: 'BREAKING', | ||
commits: [{ | ||
closes: [], | ||
breaks: [], | ||
hash: '1d4f604363094d4eee3b4d7b1ca01133edaad344', | ||
subject: 'did 2 thing', | ||
body: '', | ||
type: 'feat', | ||
component: '', | ||
breaking: true | ||
}], | ||
components:[{ | ||
name: '$scope', | ||
commits: [{ | ||
closes: [], | ||
breaks: [], | ||
hash: '1d4f604363012394d4eee3b4d7b1ca01133edaad344', | ||
subject: 'did 4 thing', | ||
body: '', | ||
type: 'feat', | ||
component: '$scope', | ||
breaking: true | ||
}] | ||
}] | ||
}]; | ||
}); | ||
@@ -577,4 +585,4 @@ sinon.stub(changelog, 'printSalute'); | ||
changelog.initOptions({ app_name: 'app', version: 'version', sections: sections }); | ||
changelog.writeChangelog(this.stream, this.commits).then(function() { | ||
changelog.initOptions({ app_name: 'app', version_name: 'version_name', sections: sections, template:false }); | ||
changelog.writeChangelog(this.commits).then(function() { | ||
done(); | ||
@@ -598,11 +606,6 @@ }); | ||
expect(changelog.printHeader).to.have.been.calledOnce; | ||
expect(changelog.printHeader).to.have.been.calledWith(this.stream, changelog.options); | ||
}); | ||
it('should print 8 sections', function() { | ||
expect(changelog.printSection.callCount).to.equal(8); | ||
sections.forEach(function(section, index) { | ||
var call = changelog.printSection.getCall(index); | ||
expect(call.args).to.include(section.title); | ||
}); | ||
it('should print 1 sections', function() { | ||
expect(changelog.printSection.callCount).to.equal(1); | ||
}); | ||
@@ -612,3 +615,2 @@ | ||
expect(changelog.printSalute).to.have.been.calledOnce; | ||
expect(changelog.printSalute).to.have.been.calledWith(this.stream); | ||
}); | ||
@@ -621,2 +623,7 @@ | ||
describe('.organizeCommits()', function() { | ||
function findItem(key, value){ | ||
return function (item){ | ||
return item[key] === value; | ||
}; | ||
} | ||
@@ -627,12 +634,37 @@ describe('without breaking commits', function () { | ||
changelog.setDefaults(); | ||
this.sections = { | ||
fix: {}, | ||
feat: {}, | ||
BREAKING: {}, | ||
style: {}, | ||
refactor: {}, | ||
test: {}, | ||
chore: {}, | ||
docs: {} | ||
}; | ||
this.sections = [ | ||
{ | ||
title: 'Bug Fixes', | ||
grep: '^fix' | ||
}, | ||
{ | ||
title: 'Features', | ||
grep: '^feat' | ||
}, | ||
{ | ||
title: 'Documentation', | ||
grep: '^docs' | ||
}, | ||
{ | ||
title: 'Breaking changes', | ||
grep: 'BREAKING' | ||
}, | ||
{ | ||
title: 'Refactor', | ||
grep: '^refactor' | ||
}, | ||
{ | ||
title: 'Style', | ||
grep: '^style' | ||
}, | ||
{ | ||
title: 'Test', | ||
grep: '^test' | ||
}, | ||
{ | ||
title: 'Chore', | ||
grep: '^chore' | ||
} | ||
]; | ||
this.commits = require('./fixtures/commits.js').withoutBreaking; | ||
@@ -642,36 +674,36 @@ this.sections = changelog.organizeCommits(this.commits, this.sections); | ||
it('should return 8 sections', function() { | ||
expect(Object.keys(this.sections).length).to.equal(8); | ||
it('should return 3 sections', function() { | ||
expect(this.sections.length).to.equal(3); | ||
}); | ||
it('should fix section to have 1 commit', function() { | ||
expect(this.sections.fix.$scope.length).to.equal(1); | ||
expect(this.sections.find(findItem('type', 'fix')).components.find(findItem('name', '$scope')).commits.length).to.equal(1); | ||
}); | ||
it('should feat section to have 1 commit', function() { | ||
expect(this.sections.feat.$scope.length).to.equal(1); | ||
expect(this.sections.find(findItem('type', 'feat')).components.find(findItem('name', '$scope')).commits.length).to.equal(1); | ||
}); | ||
it('should breaks section to be empty', function() { | ||
expect(this.sections.BREAKING).to.deep.equal({}); | ||
expect(this.sections.find(findItem('type', 'BREAKING'))).to.equal(undefined); | ||
}); | ||
it('should style section to be empty', function() { | ||
expect(this.sections.style).to.deep.equal({}); | ||
expect(this.sections.find(findItem('type', 'style'))).to.equal(undefined); | ||
}); | ||
it('should refactor section be empty', function() { | ||
expect(this.sections.refactor).to.deep.equal({}); | ||
expect(this.sections.find(findItem('type', 'refactor'))).to.equal(undefined); | ||
}); | ||
it('should test section to be empty', function() { | ||
expect(this.sections.test).to.deep.equal({}); | ||
expect(this.sections.find(findItem('type', 'test'))).to.equal(undefined); | ||
}); | ||
it('should chore section to have 1 commit', function() { | ||
expect(this.sections.chore.$scope.length).to.equal(3); | ||
expect(this.sections.find(findItem('type', 'chore')).components.find(findItem('name', '$scope')).commits.length).to.equal(3); | ||
}); | ||
it('should docs section to be empty', function() { | ||
expect(this.sections.docs).to.deep.equal({}); | ||
expect(this.sections.find(findItem('type', 'docs'))).to.equal(undefined); | ||
}); | ||
@@ -685,12 +717,36 @@ | ||
changelog.setDefaults(); | ||
this.sections = { | ||
fix: {}, | ||
feat: {}, | ||
BREAKING: {}, | ||
style: {}, | ||
refactor: {}, | ||
test: {}, | ||
chore: {}, | ||
docs: {} | ||
}; | ||
this.sections = [ | ||
{ | ||
title: 'Bug Fixes', | ||
grep: '^fix' | ||
}, | ||
{ | ||
title: 'Features', | ||
grep: '^feat' | ||
}, | ||
{ | ||
title: 'Documentation', | ||
grep: '^docs' | ||
}, | ||
{ | ||
title: 'Breaking changes', | ||
grep: 'BREAKING' | ||
}, | ||
{ | ||
title: 'Refactor', | ||
grep: '^refactor' | ||
}, | ||
{ | ||
title: 'Style', | ||
grep: '^style' | ||
}, | ||
{ | ||
title: 'Test', | ||
grep: '^test' | ||
}, | ||
{ | ||
title: 'Chore', | ||
grep: '^chore' | ||
} | ||
]; | ||
var repo_url = 'https://github.com/owner/repo'; | ||
@@ -704,38 +760,23 @@ changelog.options.repo_url = repo_url; | ||
it('should return 8 sections', function() { | ||
expect(Object.keys(this.sections).length).to.equal(8); | ||
it('should return 4 sections', function() { | ||
expect(this.sections.length).to.equal(4); | ||
}); | ||
it('should fix section to have 1 commit', function() { | ||
expect(this.sections.fix.$scope.length).to.equal(1); | ||
expect(this.sections.find(findItem('type', 'fix')).components.find(findItem('name', '$scope')).commits.length).to.equal(1); | ||
}); | ||
it('should feat section to have 1 commit', function() { | ||
expect(this.sections.feat.$scope.length).to.equal(1); | ||
expect(this.sections.find(findItem('type', 'feat')).components.find(findItem('name', '$scope')).commits.length).to.equal(1); | ||
}); | ||
it('should breaks section to be empty', function() { | ||
expect(this.sections.BREAKING.$scope.length).to.equal(1); | ||
it('should breaks have 1 component and 2 comits', function() { | ||
expect(this.sections.find(findItem('type', 'BREAKING')).components.length).to.equals(1); | ||
expect(this.sections.find(findItem('type', 'BREAKING')).components.find(findItem('name', '$scope')).commits.length).to.equal(1); | ||
}); | ||
it('should style section to be empty', function() { | ||
expect(this.sections.style).to.deep.equal({}); | ||
it('should chore section to have 3 commit', function() { | ||
expect(this.sections.find(findItem('type', 'chore')).components.find(findItem('name', '$scope')).commits.length).to.equal(3); | ||
}); | ||
it('should refactor section be empty', function() { | ||
expect(this.sections.refactor).to.deep.equal({}); | ||
}); | ||
it('should test section to be empty', function() { | ||
expect(this.sections.test).to.deep.equal({}); | ||
}); | ||
it('should chore section to have 1 commit', function() { | ||
expect(this.sections.chore.$scope.length).to.equal(3); | ||
}); | ||
it('should docs section to be empty', function() { | ||
expect(this.sections.docs).to.deep.equal({}); | ||
}); | ||
}); | ||
@@ -900,3 +941,3 @@ | ||
console.log('error', err); | ||
done(); | ||
done(err); | ||
}); | ||
@@ -919,3 +960,3 @@ }); | ||
console.log('error', err); | ||
done(); | ||
done(err); | ||
}); | ||
@@ -938,3 +979,3 @@ }); | ||
console.log('error', err); | ||
done(); | ||
done(err); | ||
}); | ||
@@ -941,0 +982,0 @@ }); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
171322
51
2046
396
5