diff --git a/README.md b/README.md index 8c2c62b..096b7f8 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ GitHub Changelog Generator Changelog generation has never been so easy. -**Fully automate changelog generation** - This script automatically generate change-log from your tags, issues and merged pull-requests from your project's **Github issue tracker**. +**Fully automate changelog generation** - This gem generate change log file based on tags, issues and merged pull requests from **Github issue tracker**. This generator complies all [change log format guidelines](http://keepachangelog.com/). ## Installation @@ -71,20 +71,27 @@ As output you will get `CHANGELOG.md` file with pretty *Markdown-formatted* chan Type `github_changelog_generator --help` for detailed usage. Usage: changelog_generator [options] - -u, --user [USER] Username of the owner of target GitHub repo - -p, --project [PROJECT] Name of project on GitHub - -t, --token [TOKEN] To make more than 50 requests this script required your OAuth token for GitHub. You can generate here: https://github.com/settings/tokens/new - -h, --help Displays Help - --[no-]verbose Run verbosely. Default is true - --[no-]issues Include closed issues to changelog. Default is true - --[no-]issues-without-labels Include closed issues without any labels to changelog. Default is true - --[no-]pull-requests Include pull-requests to changelog. Default is true - -l, --last-changes Generate log between last 2 tags only - --[no-]author Add author of pull-request in the end. Default is true - -f, --date-format [FORMAT] Date format. Default is %d/%m/%y - -o, --output [NAME] Output file. Default is CHANGELOG.md - --labels x,y,z List of labels. Issues with that labels will be included to changelog. Default is 'bug,enhancement' - -v, --version Print version number + -u, --user [USER] Username of the owner of target GitHub repo + -p, --project [PROJECT] Name of project on GitHub + -t, --token [TOKEN] To make more than 50 requests per hour your GitHub token required. You can generate it here: https://github.com/settings/tokens/new + -f, --date-format [FORMAT] Date format. Default is %d/%m/%y + -o, --output [NAME] Output file. Default is CHANGELOG.md + --[no-]verbose Run verbosely. Default is true + --[no-]issues Include closed issues to changelog. Default is true + --[no-]issues-wo-labels Include closed issues without labels to changelog. Default is true + --[no-]pr-wo-labels Include pull requests without labels to changelog. Default is true + --[no-]pull-requests Include pull-requests to changelog. Default is true + --[no-]filter-by-milestone Use milestone to detect when issue was resolved. Default is true + --[no-]author Add author of pull-request in the end. Default is true + --unreleased-only Generate log from unreleased closed issues only. + --[no-]unreleased Add to log unreleased closed issues. Default is true + --[no-]compare-link Include compare link between older version and newer version. Default is true + --include-labels x,y,z Issues only with that labels will be included to changelog. Default is 'bug,enhancement' + --exclude-labels x,y,z Issues with that labels will be always excluded from changelog. Default is 'duplicate,question,invalid,wontfix' + --github-site [URL] The Enterprise Github site on which your project is hosted. + --github-api [URL] The enterprise endpoint to use for your Github API. + -v, --version Print version number + -h, --help Displays Help ### GitHub token @@ -108,14 +115,16 @@ So, if you got error like this: It's time to create this token or wait for 1 hour before GitHub reset the counter for your IP. ##Features and advantages of this project -- Generate cannonical changelog file, followed by [keepachangelog.com guidlines](http://keepachangelog.com/) -- Support **Unreleased** issues (closed issues that have not yet released) -- Customize issues, that should be added to changelog -- Custom date format supported -- Ability to manually specify in which version issue was fixed (in case, when closed date is not match) by setting `milestone` of issue the same name as tag of required version -- Ability to exclude specific issues from changelog (by labels) - - Automatically exclude "questions" - issues marked as `question` labels (and other issues, that should'n be in changelog file: with `duplicate invalid wontfix` labels) -- Automatically split issues by type +- Generate canonical change log file, followed by [keepachangelog.com guidlines](http://keepachangelog.com/) +- Simply add links for all closed issues and merged pull requests +- Possible to generate **Unreleased** changes (closed issues that have not released yet) +- Flexible format customisation: + - Customize issues, that should be added to changelog + - Custom date format supported + - Ability to manually specify in which version issue was fixed (in case, when closed date is not match) by setting `milestone` of issue the same name as tag of required version + - Ability to exclude specific issues from change log (by labels) + - Automatically exclude "questions" - issues marked as `question` labels (and other issues, that shouldn't be in change log file: with `duplicate invalid wontfix` labels) +- Distinguish bug fixes, enchantments, and closed issues according labels. - **Issues** (closed issues w/o any labels) - **Merged pull-requests** (all merged pull-requests) - **Bug-fixes** (by label `bug` in issue) @@ -130,7 +139,7 @@ Here is a [wikipage list of alternatives](https://github.com/skywinder/Github-Ch ### Projects using this library [Wikipage with list of projects](https://github.com/skywinder/Github-Changelog-Generator/wiki/Projects-using-Github-Changelog-Generator) -*If you are using `github_changelog_generator` for generation changelog in your project or know of project that uses it, please add it to [this] (https://github.com/skywinder/Github-Changelog-Generator/wiki/Projects-using-Github-Changelog-Generator) list.* +*If you are using `github_changelog_generator` for generation change log in your project or know of project that uses it, please add it to [this] (https://github.com/skywinder/Github-Changelog-Generator/wiki/Projects-using-Github-Changelog-Generator) list.* ## Am I missed some essential feature? diff --git a/lib/CHANGELOG.md b/lib/CHANGELOG.md index 3514157..5cd5e20 100644 --- a/lib/CHANGELOG.md +++ b/lib/CHANGELOG.md @@ -1,147 +1,778 @@ -# Changelog +# Change Log -## [Unreleased](https://github.com/skywinder/Github-Changelog-Generator/tree/HEAD) (2015-02-18) -[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.2.8...HEAD) +## [Unreleased](https://github.com/skywinder/ActionSheetPicker-3.0/tree/HEAD) (2015-02-26) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.3.13...HEAD) -- *Merged pull-request:* Implement filtering of Pull Requests by milestones [\#50](https://github.com/skywinder/Github-Changelog-Generator/pull/50) ([skywinder](https://github.com/skywinder)) -## [1.2.8](https://github.com/skywinder/Github-Changelog-Generator/tree/1.2.8) (2015-02-17) -[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.2.7...1.2.8) -- *Merged pull-request:* Feature/fix 37 [\#49](https://github.com/skywinder/Github-Changelog-Generator/pull/49) ([skywinder](https://github.com/skywinder)) +### Merged pull requests: -- *Merged pull-request:* Prettify output [\#48](https://github.com/skywinder/Github-Changelog-Generator/pull/48) ([skywinder](https://github.com/skywinder)) +- Add additional showPickerWithTitle method [\#143](https://github.com/skywinder/ActionSheetPicker-3.0/pull/143) ([martinpfannemueller](https://github.com/martinpfannemueller)) -- *Closed issue:* Bugs, that closed simultaneously with push not appeared in correct version. [\#37](https://github.com/skywinder/Github-Changelog-Generator/issues/37) -## [1.2.7](https://github.com/skywinder/Github-Changelog-Generator/tree/1.2.7) (2015-01-26) -[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.2.6...1.2.7) -- *Merged pull-request:* Add compare link between older version and newer version [\#46](https://github.com/skywinder/Github-Changelog-Generator/pull/46) ([sue445](https://github.com/sue445)) -## [1.2.6](https://github.com/skywinder/Github-Changelog-Generator/tree/1.2.6) (2015-01-21) -[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.2.5...1.2.6) -- *Merged pull-request:* fix link tag format [\#45](https://github.com/skywinder/Github-Changelog-Generator/pull/45) ([sugamasao](https://github.com/sugamasao)) +## [1.3.13](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.3.13) (2015-02-09) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.3.12...1.3.13) -## [1.2.5](https://github.com/skywinder/Github-Changelog-Generator/tree/1.2.5) (2015-01-15) -[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.2.4...1.2.5) +### Fixed bugs: -- *Merged pull-request:* PrettyPrint class is included using lowercase 'pp' [\#43](https://github.com/skywinder/Github-Changelog-Generator/pull/43) ([schwing](https://github.com/schwing)) +- Wrong background color of pickers [\#136](https://github.com/skywinder/ActionSheetPicker-3.0/issues/136) -- *Merged pull-request:* support enterprise github via command line options [\#42](https://github.com/skywinder/Github-Changelog-Generator/pull/42) ([glenlovett](https://github.com/glenlovett)) -- *Implemented enhancement:* Use milestone to specify in which version bug was fixed [\#22](https://github.com/skywinder/Github-Changelog-Generator/issues/22) -- *Fixed bug:* Error when trying to generate log for repo without tags [\#32](https://github.com/skywinder/Github-Changelog-Generator/issues/32) +### Merged pull requests: -## [1.2.4](https://github.com/skywinder/Github-Changelog-Generator/tree/1.2.4) (2014-12-16) -[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.2.3...1.2.4) +- Fixed an issue when initial selections applied to picker with different number of rows for different components. [\#113](https://github.com/skywinder/ActionSheetPicker-3.0/pull/113) ([venj](https://github.com/venj)) -- *Merged pull-request:* Implement async fetching [\#39](https://github.com/skywinder/Github-Changelog-Generator/pull/39) ([skywinder](https://github.com/skywinder)) -- *Fixed bug:* Crash when try generate log for rails [\#35](https://github.com/skywinder/Github-Changelog-Generator/issues/35) -- *Fixed bug:* Sometimes user is NULL during merges [\#41](https://github.com/skywinder/Github-Changelog-Generator/issues/41) -## [1.2.3](https://github.com/skywinder/Github-Changelog-Generator/tree/1.2.3) (2014-12-16) -[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.2.2...1.2.3) -- *Merged pull-request:* Fix crash when user is NULL [\#40](https://github.com/skywinder/Github-Changelog-Generator/pull/40) ([skywinder](https://github.com/skywinder)) +## [1.3.12](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.3.12) (2015-02-04) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.3.11...1.3.12) -- *Implemented enhancement:* Add ability to run with one parameter instead -u -p [\#38](https://github.com/skywinder/Github-Changelog-Generator/issues/38) +### Fixed bugs: -- *Implemented enhancement:* Detailed output [\#33](https://github.com/skywinder/Github-Changelog-Generator/issues/33) +- Light status bar style [\#119](https://github.com/skywinder/ActionSheetPicker-3.0/issues/119) -- *Fixed bug:* Docs lacking or basic behavior not as advertised [\#30](https://github.com/skywinder/Github-Changelog-Generator/issues/30) -## [1.2.2](https://github.com/skywinder/Github-Changelog-Generator/tree/1.2.2) (2014-12-10) -[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.2.1...1.2.2) -- *Merged pull-request:* Add a Bitdeli Badge to README [\#36](https://github.com/skywinder/Github-Changelog-Generator/pull/36) ([bitdeli-chef](https://github.com/bitdeli-chef)) -- *Fixed bug:* Encapsulate \[ \> \* \_ \ \] signs in issues names [\#34](https://github.com/skywinder/Github-Changelog-Generator/issues/34) -## [1.2.1](https://github.com/skywinder/Github-Changelog-Generator/tree/1.2.1) (2014-11-22) -[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.2.0...1.2.1) +## [1.3.11](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.3.11) (2015-01-15) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.3.10...1.3.11) -- *Merged pull-request:* Issues for last tag not in list [\#29](https://github.com/skywinder/Github-Changelog-Generator/pull/29) ([skywinder](https://github.com/skywinder)) -- *Merged pull-request:* Disable default --filter-pull-requests option. [\#28](https://github.com/skywinder/Github-Changelog-Generator/pull/28) ([skywinder](https://github.com/skywinder)) -- *Fixed bug:* Script fills changelog only for first 30 tags. [\#20](https://github.com/skywinder/Github-Changelog-Generator/issues/20) +### Merged pull requests: -## [1.2.0](https://github.com/skywinder/Github-Changelog-Generator/tree/1.2.0) (2014-11-19) -[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.1.4...1.2.0) +- Fixes a crash while closing when using the Classy framework for styling [\#128](https://github.com/skywinder/ActionSheetPicker-3.0/pull/128) ([sudeepsidhu](https://github.com/sudeepsidhu)) -- *Merged pull-request:* Add filter for pull-requests labels. \(option --filter-pull-requests\) [\#27](https://github.com/skywinder/Github-Changelog-Generator/pull/27) ([skywinder](https://github.com/skywinder)) -- *Merged pull-request:* Add ability to insert authors of pull-requests \(--\[no-\]author option\) [\#25](https://github.com/skywinder/Github-Changelog-Generator/pull/25) ([skywinder](https://github.com/skywinder)) -- *Merged pull-request:* Don't receive issues in case of --no-isses flag specied [\#24](https://github.com/skywinder/Github-Changelog-Generator/pull/24) ([skywinder](https://github.com/skywinder)) +- .m files should not be included in public header files [\#127](https://github.com/skywinder/ActionSheetPicker-3.0/pull/127) ([ened](https://github.com/ened)) -## [1.1.4](https://github.com/skywinder/Github-Changelog-Generator/tree/1.1.4) (2014-11-18) -[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.1.2...1.1.4) -- *Merged pull-request:* Sort tags by date [\#23](https://github.com/skywinder/Github-Changelog-Generator/pull/23) ([skywinder](https://github.com/skywinder)) -- *Implemented enhancement:* Implement ability to retrieve GitHub token from ENV variable \(to not put it to script directly\) [\#19](https://github.com/skywinder/Github-Changelog-Generator/issues/19) -## [1.1.2](https://github.com/skywinder/Github-Changelog-Generator/tree/1.1.2) (2014-11-12) -[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.1.1...1.1.2) -- *Merged pull-request:* Fix bug with dot signs in project name [\#18](https://github.com/skywinder/Github-Changelog-Generator/pull/18) ([skywinder](https://github.com/skywinder)) +## [1.3.10](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.3.10) (2015-01-09) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.3.9...1.3.10) +### Implemented enhancements: -- *Merged pull-request:* Fix bug with dot signs in user name [\#17](https://github.com/skywinder/Github-Changelog-Generator/pull/17) ([skywinder](https://github.com/skywinder)) +- Should have minimum/maximum date property exposed [\#97](https://github.com/skywinder/ActionSheetPicker-3.0/issues/97) -## [1.1.1](https://github.com/skywinder/Github-Changelog-Generator/tree/1.1.1) (2014-11-10) -[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.1.0...1.1.1) -- *Merged pull-request:* Remove duplicates of issues and pull-requests with same number [\#15](https://github.com/skywinder/Github-Changelog-Generator/pull/15) ([skywinder](https://github.com/skywinder)) -- *Merged pull-request:* Sort issues by tags [\#14](https://github.com/skywinder/Github-Changelog-Generator/pull/14) ([skywinder](https://github.com/skywinder)) +### Closed issues: -- *Merged pull-request:* Add ability to add or exclude issues without any labels [\#13](https://github.com/skywinder/Github-Changelog-Generator/pull/13) ([skywinder](https://github.com/skywinder)) +- No "cancel" button [\#122](https://github.com/skywinder/ActionSheetPicker-3.0/issues/122) -## [1.1.0](https://github.com/skywinder/Github-Changelog-Generator/tree/1.1.0) (2014-11-10) -[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.0.1...1.1.0) +- Swift; Does not conform to protocol [\#120](https://github.com/skywinder/ActionSheetPicker-3.0/issues/120) -- *Implemented enhancement:* Detect username and project form origin [\#11](https://github.com/skywinder/Github-Changelog-Generator/issues/11) -- *Fixed bug:* Markdown formating in the last line wrong [\#9](https://github.com/skywinder/Github-Changelog-Generator/issues/9) +### Merged pull requests: -- *Fixed bug:* Bug with wrong credentials in 1.0.1 [\#12](https://github.com/skywinder/Github-Changelog-Generator/issues/12) +- add header file to public [\#115](https://github.com/skywinder/ActionSheetPicker-3.0/pull/115) ([skywinder](https://github.com/skywinder)) -## [1.0.1](https://github.com/skywinder/Github-Changelog-Generator/tree/1.0.1) (2014-11-10) -[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.0.0...1.0.1) -- *Merged pull-request:* Implement support of different tags. [\#8](https://github.com/skywinder/Github-Changelog-Generator/pull/8) ([skywinder](https://github.com/skywinder)) -## [1.0.0](https://github.com/skywinder/Github-Changelog-Generator/tree/1.0.0) (2014-11-07) -[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/0.1.0...1.0.0) -- *Merged pull-request:* Add support for issues in CHANGELOG [\#7](https://github.com/skywinder/Github-Changelog-Generator/pull/7) ([skywinder](https://github.com/skywinder)) -- *Merged pull-request:* Fix parsing date of pull request [\#3](https://github.com/skywinder/Github-Changelog-Generator/pull/3) ([skywinder](https://github.com/skywinder)) +## [1.3.9](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.3.9) (2014-12-11) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.3.8...1.3.9) -- *Implemented enhancement:* Implement option to specify output filename [\#4](https://github.com/skywinder/Github-Changelog-Generator/issues/4) -- *Implemented enhancement:* Add support for fixed issues and implemented enchanments. [\#6](https://github.com/skywinder/Github-Changelog-Generator/issues/6) +### Closed issues: -- *Fixed bug:* Last tag not appeared in changelog [\#5](https://github.com/skywinder/Github-Changelog-Generator/issues/5) +- Bad interaction with submodules [\#111](https://github.com/skywinder/ActionSheetPicker-3.0/issues/111) -## [0.1.0](https://github.com/skywinder/Github-Changelog-Generator/tree/0.1.0) (2014-11-07) -[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/0.0.2...0.1.0) -- *Merged pull-request:* Add changelog generation for last tag [\#2](https://github.com/skywinder/Github-Changelog-Generator/pull/2) ([skywinder](https://github.com/skywinder)) +### Merged pull requests: -- *Merged pull-request:* Add option \(-o --output\) to specify name of the output file. [\#1](https://github.com/skywinder/Github-Changelog-Generator/pull/1) ([skywinder](https://github.com/skywinder)) +- Fix bad interaction with Git submodules. Fixes issue #111. [\#112](https://github.com/skywinder/ActionSheetPicker-3.0/pull/112) ([JimDabell](https://github.com/JimDabell)) -## [0.0.2](https://github.com/skywinder/Github-Changelog-Generator/tree/0.0.2) (2014-11-06) -[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/0.0.1...0.0.2) -## [0.0.1](https://github.com/skywinder/Github-Changelog-Generator/tree/0.0.1) (2014-11-06) -\* *This changelog was generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* \ No newline at end of file +## [1.3.8](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.3.8) (2014-12-10) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.3.7...1.3.8) + + +### Closed issues: + +- Redefinition of enumerator 'Selector' [\#109](https://github.com/skywinder/ActionSheetPicker-3.0/issues/109) + + +### Merged pull requests: + +- Fix for #109 [\#110](https://github.com/skywinder/ActionSheetPicker-3.0/pull/110) ([michalciolek](https://github.com/michalciolek)) + + + +- Fixed an issue when more than one ActionSheetCustomPicker is used in a ViewController [\#108](https://github.com/skywinder/ActionSheetPicker-3.0/pull/108) ([venj](https://github.com/venj)) + + + + + +## [1.3.7](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.3.7) (2014-12-04) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.3.6...1.3.7) + +### Fixed bugs: + +- UIDatePicker does not fire the target-action associated with the UIControlEventValueChanged event the first time [\#104](https://github.com/skywinder/ActionSheetPicker-3.0/issues/104) + + + +### Merged pull requests: + +- Added workaround for a bug in UIDatePicker in count down mode. [\#105](https://github.com/skywinder/ActionSheetPicker-3.0/pull/105) ([tomaskraina](https://github.com/tomaskraina)) + + + +- Added minimumDate and maximumDate to contructor of ActionSheetDatePicker [\#98](https://github.com/skywinder/ActionSheetPicker-3.0/pull/98) ([emmanuelay](https://github.com/emmanuelay)) + + + + + +## [1.3.6](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.3.6) (2014-12-02) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.3.5...1.3.6) + +### Fixed bugs: + +- Example projects failed to launch [\#96](https://github.com/skywinder/ActionSheetPicker-3.0/issues/96) + + +### Closed issues: + +- Travis builds is broken by fix #96 [\#99](https://github.com/skywinder/ActionSheetPicker-3.0/issues/99) + + +### Merged pull requests: + +- Add a Bitdeli Badge to README [\#107](https://github.com/skywinder/ActionSheetPicker-3.0/pull/107) ([bitdeli-chef](https://github.com/bitdeli-chef)) + + + + + +## [1.3.5](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.3.5) (2014-11-14) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.3.4...1.3.5) + +### Fixed bugs: + +- StatusBar visibility [\#90](https://github.com/skywinder/ActionSheetPicker-3.0/issues/90) + + + +### Merged pull requests: + +- Update README.md [\#95](https://github.com/skywinder/ActionSheetPicker-3.0/pull/95) ([jeffreyjackson](https://github.com/jeffreyjackson)) + + + + + +## [1.3.4](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.3.4) (2014-11-12) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.3.3...1.3.4) + + + +### Merged pull requests: + +- Fix statusBar visibility [\#93](https://github.com/skywinder/ActionSheetPicker-3.0/pull/93) ([krin-san](https://github.com/krin-san)) + + + + + +## [1.3.3](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.3.3) (2014-11-12) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.3.2...1.3.3) + +### Fixed bugs: + +- Compiler warning due to Unicode char in source [\#92](https://github.com/skywinder/ActionSheetPicker-3.0/issues/92) + + + + + +## [1.3.2](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.3.2) (2014-11-11) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.3.1...1.3.2) +### Implemented enhancements: + +- Add delegate for custom button pressed [\#33](https://github.com/skywinder/ActionSheetPicker-3.0/issues/33) + + + + +### Merged pull requests: + +- Add additional check for UIDatePickerModeCountDownTimer [\#91](https://github.com/skywinder/ActionSheetPicker-3.0/pull/91) ([skywinder](https://github.com/skywinder)) + + + +- Count down duration fix [\#89](https://github.com/skywinder/ActionSheetPicker-3.0/pull/89) ([ijameelkhan](https://github.com/ijameelkhan)) + + + + + +## [1.3.1](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.3.1) (2014-11-04) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.3.0...1.3.1) + + + +### Merged pull requests: + +- Fix for #84 and #63 [\#85](https://github.com/skywinder/ActionSheetPicker-3.0/pull/85) ([skywinder](https://github.com/skywinder)) + + + + + +## [1.3.0](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.3.0) (2014-11-03) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.2.0...1.3.0) + +### Fixed bugs: + +- iPad - Swift Popover not visible [\#68](https://github.com/skywinder/ActionSheetPicker-3.0/issues/68) + + + +### Merged pull requests: + +- Added callback for custom button being pressed [\#81](https://github.com/skywinder/ActionSheetPicker-3.0/pull/81) ([velga](https://github.com/velga)) + + + +- Added support for popover customizations. [\#77](https://github.com/skywinder/ActionSheetPicker-3.0/pull/77) ([openreply](https://github.com/openreply)) + + + + + +## [1.2.0](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.2.0) (2014-10-15) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.21...1.2.0) + + + +### Merged pull requests: + +- General fixes for #74 & #50 [\#76](https://github.com/skywinder/ActionSheetPicker-3.0/pull/76) ([skywinder](https://github.com/skywinder)) + + + +- Further support for countdown timer [\#74](https://github.com/skywinder/ActionSheetPicker-3.0/pull/74) ([mgmart](https://github.com/mgmart)) + + + + + +## [1.1.21](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.21) (2014-10-13) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.20...1.1.21) + +### Fixed bugs: + +- i used DatePicker in ActionSheetPicket-3.0, but app crashed. [\#65](https://github.com/skywinder/ActionSheetPicker-3.0/issues/65) + + +### Closed issues: + +- ActionSheetString picker Crash [\#75](https://github.com/skywinder/ActionSheetPicker-3.0/issues/75) + + + + +## [1.1.20](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.20) (2014-10-13) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.19...1.1.20) + + +### Closed issues: + +- ActionSheetDatePicker: set selectedDate in response to custom button press [\#73](https://github.com/skywinder/ActionSheetPicker-3.0/issues/73) + +- Using ActionSheetDatePicker as CountDownTimer-Picker [\#72](https://github.com/skywinder/ActionSheetPicker-3.0/issues/72) + +- Example fails when clicking "Modal Test": 'Pushing a navigation controller is not supported' [\#70](https://github.com/skywinder/ActionSheetPicker-3.0/issues/70) + + + + +## [1.1.19](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.19) (2014-10-07) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.18...1.1.19) + +### Fixed bugs: + +- Xcode 6 / Swift incompatibility [\#36](https://github.com/skywinder/ActionSheetPicker-3.0/issues/36) + + + +### Merged pull requests: + +- title text with attributes. [\#64](https://github.com/skywinder/ActionSheetPicker-3.0/pull/64) ([nebiros](https://github.com/nebiros)) + + + + + +## [1.1.18](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.18) (2014-10-03) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.17...1.1.18) + + + + + +## [1.1.17](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.17) (2014-10-03) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.16...1.1.17) + + + + + +## [1.1.16](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.16) (2014-10-03) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.15...1.1.16) + + + + + +## [1.1.15](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.15) (2014-09-29) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.14...1.1.15) +### Implemented enhancements: + +- Method request: hideActionSheetPicker [\#51](https://github.com/skywinder/ActionSheetPicker-3.0/issues/51) + + +### Fixed bugs: + +- DatePicker callback freezes screen [\#42](https://github.com/skywinder/ActionSheetPicker-3.0/issues/42) + + + +### Merged pull requests: + +- Update SWActionSheet.m [\#60](https://github.com/skywinder/ActionSheetPicker-3.0/pull/60) ([zhongyang](https://github.com/zhongyang)) + + + +- Fix for UIDatePickerModeCountDownTimer callback [\#50](https://github.com/skywinder/ActionSheetPicker-3.0/pull/50) ([jklp](https://github.com/jklp)) + + + + + +## [1.1.14](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.14) (2014-09-28) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.13...1.1.14) + + + +### Merged pull requests: + +- add block based API to date picker [\#56](https://github.com/skywinder/ActionSheetPicker-3.0/pull/56) ([mrtj](https://github.com/mrtj)) + + + + + +## [1.1.13](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.13) (2014-09-19) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.12...1.1.13) + + +### Closed issues: + +- impossible to run in xcode 6 [\#48](https://github.com/skywinder/ActionSheetPicker-3.0/issues/48) + + +### Merged pull requests: + +- update badge [\#46](https://github.com/skywinder/ActionSheetPicker-3.0/pull/46) ([skywinder](https://github.com/skywinder)) + + + +- Add badge [\#45](https://github.com/skywinder/ActionSheetPicker-3.0/pull/45) ([skywinder](https://github.com/skywinder)) + + + +- reformat [\#44](https://github.com/skywinder/ActionSheetPicker-3.0/pull/44) ([skywinder](https://github.com/skywinder)) + + + + + +## [1.1.12](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.12) (2014-09-17) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.11...1.1.12) + + + +### Merged pull requests: + +- unexpected action sheet dismissing in portrait mode only [\#40](https://github.com/skywinder/ActionSheetPicker-3.0/pull/40) ([numen31337](https://github.com/numen31337)) + + + +- Support ActionSheet width to full-screen-width in 4.7 inch and 5.5 inch devices [\#38](https://github.com/skywinder/ActionSheetPicker-3.0/pull/38) ([nowsprinting](https://github.com/nowsprinting)) + + + + + +## [1.1.11](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.11) (2014-09-16) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.10...1.1.11) +### Implemented enhancements: + +- Pop over direction [\#28](https://github.com/skywinder/ActionSheetPicker-3.0/issues/28) + +- ActionSheetDatePicker needs done/cancel blocks [\#37](https://github.com/skywinder/ActionSheetPicker-3.0/issues/37) + + +### Fixed bugs: + +- Show from a presented view controller [\#31](https://github.com/skywinder/ActionSheetPicker-3.0/issues/31) + +- ActionSheetStringPicker not showing on iphone [\#30](https://github.com/skywinder/ActionSheetPicker-3.0/issues/30) + + +### Closed issues: + +- ActionSheetPicker needs cancel block to handle hiding [\#39](https://github.com/skywinder/ActionSheetPicker-3.0/issues/39) + + +### Merged pull requests: + +- Notify cancel on popover dismiss [\#34](https://github.com/skywinder/ActionSheetPicker-3.0/pull/34) ([ynop](https://github.com/ynop)) + + + + + +## [1.1.10](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.10) (2014-09-04) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.9...1.1.10) + + + +### Merged pull requests: + +- Method for presenting overlapping views. [\#32](https://github.com/skywinder/ActionSheetPicker-3.0/pull/32) ([serebryakov-av](https://github.com/serebryakov-av)) + + + + + +## [1.1.9](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.9) (2014-09-03) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.8...1.1.9) + + + +### Merged pull requests: + +- Update SWActionSheet.m [\#29](https://github.com/skywinder/ActionSheetPicker-3.0/pull/29) ([serebryakov-av](https://github.com/serebryakov-av)) + + + + + +## [1.1.8](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.8) (2014-08-29) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.7...1.1.8) + + + + + +## [1.1.7](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.7) (2014-08-29) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.6...1.1.7) + + + + + +## [1.1.6](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.6) (2014-08-27) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.5...1.1.6) + + +### Closed issues: + +- Still getting warnings [\#16](https://github.com/skywinder/ActionSheetPicker-3.0/issues/16) + + +### Merged pull requests: + +- fix readme code [\#26](https://github.com/skywinder/ActionSheetPicker-3.0/pull/26) ([abeyuya](https://github.com/abeyuya)) + + + + + +## [1.1.5](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.5) (2014-08-26) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/compilerBug...1.1.5) + +### Fixed bugs: + +- Toolbar buttons don't appear when Actionsheet is fired from an iPad Form Sheet or Page Sheet [\#22](https://github.com/skywinder/ActionSheetPicker-3.0/issues/22) + + + + + +## [compilerBug](https://github.com/skywinder/ActionSheetPicker-3.0/tree/compilerBug) (2014-08-26) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.4...compilerBug) + + + + + +## [1.1.4](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.4) (2014-08-26) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.3...1.1.4) + +### Fixed bugs: + +- iOS 8 iPad wrong frame size. [\#18](https://github.com/skywinder/ActionSheetPicker-3.0/issues/18) + + +### Closed issues: + +- iOS8 - iPad popover, wrong size [\#24](https://github.com/skywinder/ActionSheetPicker-3.0/issues/24) + + +### Merged pull requests: + +- fix iOS8 wrong popover size in iPad [\#25](https://github.com/skywinder/ActionSheetPicker-3.0/pull/25) ([AdrianFlorian](https://github.com/AdrianFlorian)) + + + + + +## [1.1.3](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.3) (2014-08-25) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.2...1.1.3) + + +### Closed issues: + +- Presented in wrong frame when sender is a navbar bar button item [\#23](https://github.com/skywinder/ActionSheetPicker-3.0/issues/23) + +- done button color [\#21](https://github.com/skywinder/ActionSheetPicker-3.0/issues/21) + + + + +## [1.1.2](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.2) (2014-08-15) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.1.1...1.1.2) + + +### Closed issues: + +- Landscape broken in iOS 7 [\#17](https://github.com/skywinder/ActionSheetPicker-3.0/issues/17) + +- Invalid context warning in landscape [\#13](https://github.com/skywinder/ActionSheetPicker-3.0/issues/13) + + + + +## [1.1.1](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.1.1) (2014-08-13) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.0.18...1.1.1) + + + + + +## [1.0.18](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.0.18) (2014-08-12) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.0.17...1.0.18) + + + + + +## [1.0.17](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.0.17) (2014-08-12) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.0.15...1.0.17) + + +### Closed issues: + +- Issue with iOS 8 beta [\#9](https://github.com/skywinder/ActionSheetPicker-3.0/issues/9) + + + + +## [1.0.15](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.0.15) (2014-08-11) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.0.14...1.0.15) + + + + + +## [1.0.14](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.0.14) (2014-08-01) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.0.13...1.0.14) + + + +### Merged pull requests: + +- Set minimum date properly. [\#14](https://github.com/skywinder/ActionSheetPicker-3.0/pull/14) ([matt](https://github.com/matt)) + + + + + +## [1.0.13](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.0.13) (2014-07-30) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.0.12...1.0.13) + + +### Closed issues: + +- Use with UITableViewCells [\#4](https://github.com/skywinder/ActionSheetPicker-3.0/issues/4) + + +### Merged pull requests: + +- Minute Interval for ActionDatePicker [\#12](https://github.com/skywinder/ActionSheetPicker-3.0/pull/12) ([Jack-s](https://github.com/Jack-s)) + + + + + +## [1.0.12](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.0.12) (2014-07-24) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.0.11...1.0.12) + + +### Closed issues: + +- i get this warning!'sizeWithFont:' is deprecated: first deprecated in iOS 7.0 - Use -sizeWithAttributes: [\#11](https://github.com/skywinder/ActionSheetPicker-3.0/issues/11) + +- configurePickerView for ActionSheetCustomPicker throws exception [\#10](https://github.com/skywinder/ActionSheetPicker-3.0/issues/10) + + + + +## [1.0.11](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.0.11) (2014-07-19) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.0.10...1.0.11) + + + + + +## [1.0.10](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.0.10) (2014-07-14) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.0.9...1.0.10) + + + + + +## [1.0.9](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.0.9) (2014-07-07) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.0.8...1.0.9) + +### Fixed bugs: + +- Crash when using in 5s iOS 7.1 [\#8](https://github.com/skywinder/ActionSheetPicker-3.0/issues/8) + +- On Iphone 4 the ActionSheetStringPicker doesn't work Well [\#5](https://github.com/skywinder/ActionSheetPicker-3.0/issues/5) + + + + + +## [1.0.8](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.0.8) (2014-06-29) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.0.7...1.0.8) + + + +### Merged pull requests: + +- added check for iPhone 4, to fix transparent view background problem. [\#6](https://github.com/skywinder/ActionSheetPicker-3.0/pull/6) ([JaseElder](https://github.com/JaseElder)) + + + + + +## [1.0.7](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.0.7) (2014-06-20) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.0.6...1.0.7) + + + + + +## [1.0.6](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.0.6) (2014-06-11) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.0.5...1.0.6) + + + + + +## [1.0.5](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.0.5) (2014-05-27) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.0.4...1.0.5) + + + + + +## [1.0.4](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.0.4) (2014-05-25) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/0.0.4...1.0.4) + + + + + +## [0.0.4](https://github.com/skywinder/ActionSheetPicker-3.0/tree/0.0.4) (2014-05-25) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.0.3...0.0.4) + + + +### Merged pull requests: + +- Convert screenshots over to iOS 7. [\#3](https://github.com/skywinder/ActionSheetPicker-3.0/pull/3) ([markrickert](https://github.com/markrickert)) + + + +- Add basic documentation to the readme. [\#2](https://github.com/skywinder/ActionSheetPicker-3.0/pull/2) ([markrickert](https://github.com/markrickert)) + + + + + +## [1.0.3](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.0.3) (2014-05-21) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.0.2...1.0.3) + + + + + +## [1.0.2](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.0.2) (2014-05-21) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/1.0.1...1.0.2) + + + +### Merged pull requests: + +- Get tint color for actionsheet buttons from application window [\#1](https://github.com/skywinder/ActionSheetPicker-3.0/pull/1) ([Mau04](https://github.com/Mau04)) + + + + + +## [1.0.1](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.0.1) (2014-05-19) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/0.1...1.0.1) + + + + + +## [0.1](https://github.com/skywinder/ActionSheetPicker-3.0/tree/0.1) (2012-05-11) +[Full Changelog](https://github.com/skywinder/ActionSheetPicker-3.0/compare/v0.1...0.1) + + + + + +## [v0.1](https://github.com/skywinder/ActionSheetPicker-3.0/tree/v0.1) (2012-05-11) + + + + + + + +\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* \ No newline at end of file diff --git a/lib/github_changelog_generator.rb b/lib/github_changelog_generator.rb index 1eb3874..fb7a76e 100755 --- a/lib/github_changelog_generator.rb +++ b/lib/github_changelog_generator.rb @@ -61,7 +61,7 @@ module GitHubChangelogGenerator def detect_actual_closed_dates if @options[:verbose] - print "Fetching close commit date for issues...\r" + print "Fetching closed dates for issues...\r" end threads = [] @@ -73,7 +73,7 @@ module GitHubChangelogGenerator threads.each { |thr| thr.join } if @options[:verbose] - puts 'Fetching close commit date for issues: Done!' + puts 'Fetching closed dates for issues: Done!' end end @@ -118,14 +118,14 @@ module GitHubChangelogGenerator print "Fetching pull requests... #{page_i}/#{count_pages * PER_PAGE_NUMBER}\r" pull_requests.concat(page) end - print " \r" + print " \r" if @options[:verbose] puts "Received pull requests: #{pull_requests.count}" end - @pull_requests.each{|pr| - fetched_pr = pull_requests.find{ |fpr| + @pull_requests.each { |pr| + fetched_pr = pull_requests.find { |fpr| fpr.number == pr.number } pr[:merged_at] = fetched_pr[:merged_at] pull_requests.delete(fetched_pr) @@ -207,7 +207,7 @@ module GitHubChangelogGenerator def compund_changelog - log = "# Changelog\n\n" + log = "# Change Log\n\n" if @options[:unreleased_only] log += self.generate_log_between_tags(self.all_tags[0], nil) @@ -219,7 +219,8 @@ module GitHubChangelogGenerator if tags_strings.include?(tag1) if tags_strings.include?(tag2) - hash = Hash[tags_strings.map.with_index.to_a] + to_a = tags_strings.map.with_index.to_a + hash = Hash[to_a] index1 = hash[tag1] index2 = hash[tag2] log += self.generate_log_between_tags(self.all_tags[index1], self.all_tags[index2]) @@ -235,7 +236,7 @@ module GitHubChangelogGenerator log += self.generate_log_for_all_tags end - log += "\n\n\\* *This changelog was generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*" + log += "\n\n\\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*" output_filename = "#{@options[:output]}" File.open(output_filename, 'w') { |file| file.write(log) } @@ -245,8 +246,39 @@ module GitHubChangelogGenerator end def generate_log_for_all_tags + + fetch_tags_dates + + if @options[:verbose] + puts "Sorting tags.." + end + + @all_tags.sort_by! { |x| self.get_time_of_tag(x) }.reverse! + + if @options[:verbose] + puts "Generating log.." + end + + log = '' + if @options[:unreleased] + unreleased_log = self.generate_log_between_tags(self.all_tags[0], nil) + if unreleased_log + log += unreleased_log + end + end + + (1 ... self.all_tags.size).each { |index| + log += self.generate_log_between_tags(self.all_tags[index], self.all_tags[index-1]) + } + + log += generate_log_between_tags(nil, self.all_tags.last) + + log + end + + def fetch_tags_dates if @options[:verbose] print "Fetching tags dates..\r" end @@ -274,27 +306,6 @@ module GitHubChangelogGenerator if @options[:verbose] puts 'Fetching tags: Done!' end - if @options[:verbose] - puts "Sorting tags.." - end - - @all_tags.sort_by! { |x| self.get_time_of_tag(x) }.reverse! - - if @options[:verbose] - puts "Generating log.." - end - - if @options[:unreleased] - log += self.generate_log_between_tags(self.all_tags[0], nil) - end - - (1 ... self.all_tags.size).each { |index| - log += self.generate_log_between_tags(self.all_tags[index], self.all_tags[index-1]) - } - - log += generate_log_between_tags(nil, self.all_tags.last) - - log end def is_megred(number) @@ -341,13 +352,13 @@ module GitHubChangelogGenerator end - def generate_log_between_tags(older_tag, newer_tag) - + # older_tag nil - means it's first tag, newer_tag nil - means it unreleased section filtered_pull_requests = delete_by_time(@pull_requests, :merged_at, older_tag, newer_tag) filtered_issues = delete_by_time(@issues, :actual_date, older_tag, newer_tag) newer_tag_name = newer_tag.nil? ? nil : newer_tag['name'] + older_tag_name = older_tag.nil? ? nil : older_tag['name'] if @options[:filter_issues_by_milestone] #delete excess irrelevant issues (according milestones) @@ -355,10 +366,12 @@ module GitHubChangelogGenerator filtered_pull_requests = filter_by_milestone(filtered_pull_requests, newer_tag_name, @pull_requests) end - older_tag_name = older_tag.nil? ? nil : older_tag['name'] + if filtered_issues.empty? && filtered_pull_requests.empty? && newer_tag.nil? + # do not generate empty unreleased section + return nil + end self.create_log(filtered_pull_requests, filtered_issues, newer_tag, older_tag_name) - end def filter_by_milestone(filtered_issues, newer_tag_name, src_array) @@ -443,79 +456,81 @@ module GitHubChangelogGenerator if newer_tag.nil? newer_tag_name = 'Unreleased' - newer_tag_name2 = 'HEAD' + newer_tag_link = 'HEAD' newer_tag_time = Time.new else - newer_tag_name2 = newer_tag_name + newer_tag_link = newer_tag_name end + log = '' + + log += generate_header(log, newer_tag_name, newer_tag_link, newer_tag_time, older_tag_name, project_url) + + if @options[:issues] + # Generate issues: + issues_a = [] + enhancement_a = [] + bugs_a =[] + + issues.each { |dict| + added = false + dict.labels.each { |label| + if label.name == 'bug' + bugs_a.push dict + added = true + next + end + if label.name == 'enhancement' + enhancement_a.push dict + added = true + next + end + } + unless added + issues_a.push dict + end + } + + log += generate_log_from_array(enhancement_a, @options[:enhancement_prefix]) + log += generate_log_from_array(bugs_a, @options[:bug_prefix]) + log += generate_log_from_array(issues_a, @options[:issue_prefix]) + + if @options[:pulls] + # Generate pull requests: + log += generate_log_from_array(pull_requests, @options[:merge_prefix]) + end + + end + + log +="\n" + log + end + + def generate_log_from_array(issues, prefix) + log = '' + if options[:simple_list].nil? && issues.any? + log += "#{prefix}\n\n" + end + + issues.each { |issue| + merge_string = @generator.get_string_for_issue(issue) + log += "- #{merge_string}\n" + + } if issues + log +="\n" + end + + def generate_header(log, newer_tag_name, newer_tag_name2, newer_tag_time, older_tag_name, project_url) + #Generate date string: time_string = newer_tag_time.strftime @options[:format] # Generate tag name and link - log = "## [#{newer_tag_name}](#{project_url}/tree/#{newer_tag_name2}) (#{time_string})\n" + log += "## [#{newer_tag_name}](#{project_url}/tree/#{newer_tag_name2}) (#{time_string})\n\n" if @options[:compare_link] && older_tag_name # Generate compare link log += "[Full Changelog](#{project_url}/compare/#{older_tag_name}...#{newer_tag_name2})\n\n" - else - log += "\n" - end - - if @options[:pulls] - # Generate pull requests: - pull_requests.each { |pull_request| - merge = @generator.get_string_for_pull_request(pull_request) - log += "- #{merge}" - - } if pull_requests - end - - if @options[:issues] - # Generate issues: - if issues - issues.sort! { |x, y| - if x.labels.any? && y.labels.any? - x.labels[0].name <=> y.labels[0].name - else - if x.labels.any? - 1 - else - if y.labels.any? - -1 - else - 0 - end - end - end - }.reverse! - end - issues.each { |dict| - is_bug = false - is_enhancement = false - dict.labels.each { |label| - if label.name == 'bug' - is_bug = true - end - if label.name == 'enhancement' - is_enhancement = true - end - } - - intro = 'Closed issue' - if is_bug - intro = 'Fixed bug' - end - - if is_enhancement - intro = 'Implemented enhancement' - end - - enc_string = @generator.encapsulate_string dict[:title] - - merge = "*#{intro}:* #{enc_string} [\\##{dict[:number]}](#{dict.html_url})\n\n" - log += "- #{merge}" - } end log @@ -596,7 +611,7 @@ module GitHubChangelogGenerator end # remove pull request from issues: - issues_wo_pr = issues.select { |x| + issues_wo_pr = issues.select { |x| x.pull_request == nil } pull_requests = issues.select { |x| diff --git a/lib/github_changelog_generator/generator.rb b/lib/github_changelog_generator/generator.rb index 0c08a3d..b8ccdb4 100644 --- a/lib/github_changelog_generator/generator.rb +++ b/lib/github_changelog_generator/generator.rb @@ -5,20 +5,20 @@ module GitHubChangelogGenerator @options = options end - def get_string_for_pull_request(pull_request) - encapsulated_title = self.encapsulate_string pull_request[:title] + def get_string_for_issue(issue) + encapsulated_title = self.encapsulate_string issue[:title] - merge = "#{@options[:merge_prefix]}#{encapsulated_title} [\\##{pull_request[:number]}](#{pull_request.html_url})" - if @options[:author] - if pull_request.user.nil? - merge += " ({Null user})\n\n" - else - merge += " ([#{pull_request.user.login}](#{pull_request.user.html_url}))\n\n" + merge = "#{encapsulated_title} [\\##{issue[:number]}](#{issue.html_url})" + unless issue.pull_request.nil? + if @options[:author] + if issue.user.nil? + merge += " ({Null user})\n\n" + else + merge += " ([#{issue.user.login}](#{issue.user.html_url}))\n\n" + end end - else - merge += "\n\n" end - merge + merge += "\n" end def encapsulate_string(string) @@ -26,7 +26,7 @@ module GitHubChangelogGenerator string.gsub! '\\', '\\\\' encpas_chars = %w(> * _ \( \) [ ]) - encpas_chars.each{ |char| + encpas_chars.each { |char| string.gsub! char, "\\#{char}" } diff --git a/lib/github_changelog_generator/parser.rb b/lib/github_changelog_generator/parser.rb index 2f21aca..e6f10ba 100644 --- a/lib/github_changelog_generator/parser.rb +++ b/lib/github_changelog_generator/parser.rb @@ -7,7 +7,27 @@ module GitHubChangelogGenerator class Parser def self.parse_options # :include_labels => %w(bug enhancement), - options = {:tag1 => nil, :tag2 => nil, :format => '%Y-%m-%d', :output => 'CHANGELOG.md', :exclude_labels => %w(duplicate question invalid wontfix), :pulls => true, :issues => true, :verbose => true, :add_issues_wo_labels => true, :add_pr_wo_labels => true, :merge_prefix => '*Merged pull-request:* ', :author => true, :filter_issues_by_milestone => true, :compare_link => true, :unreleased => true} + hash = { + :tag1 => nil, + :tag2 => nil, + :format => '%Y-%m-%d', + :output => 'CHANGELOG.md', + :exclude_labels => %w(duplicate question invalid wontfix), + :pulls => true, + :issues => true, + :verbose => true, + :add_issues_wo_labels => true, + :add_pr_wo_labels => true, + :merge_prefix => '#### Merged pull requests:', + :issue_prefix => '#### Closed issues:', + :bug_prefix => '#### Fixed bugs:', + :enhancement_prefix => '#### Implemented enhancements:', + :author => true, + :filter_issues_by_milestone => true, + :compare_link => true, + :unreleased => true + } + options = hash parser = OptionParser.new { |opts| opts.banner = 'Usage: changelog_generator [options]' @@ -26,9 +46,6 @@ module GitHubChangelogGenerator opts.on('-o', '--output [NAME]', 'Output file. Default is CHANGELOG.md') do |last| options[:output] = last end - opts.on('--[no-]verbose', 'Run verbosely. Default is true') do |v| - options[:verbose] = v - end opts.on('--[no-]issues', 'Include closed issues to changelog. Default is true') do |v| options[:issues] = v end @@ -53,7 +70,7 @@ module GitHubChangelogGenerator opts.on('--[no-]unreleased', 'Add to log unreleased closed issues. Default is true') do |v| options[:unreleased] = v end - opts.on('--[no-]compare-link', 'Include compare link between older version and newer version. Default is true') do |v| + opts.on('--[no-]compare-link', 'Include compare link (Full Changelog) between older version and newer version. Default is true') do |v| options[:compare_link] = v end opts.on('--include-labels x,y,z', Array, 'Issues only with that labels will be included to changelog. Default is \'bug,enhancement\'') do |list| @@ -68,6 +85,12 @@ module GitHubChangelogGenerator opts.on('--github-api [URL]', 'The enterprise endpoint to use for your Github API.') do |last| options[:github_endpoint] = last end + opts.on('--simple-list', 'Create simple list from issues and pull requests. Default is false.') do |v| + options[:simple_list] = v + end + opts.on('--[no-]verbose', 'Run verbosely. Default is true') do |v| + options[:verbose] = v + end opts.on('-v', '--version', 'Print version number') do |v| puts "Version: #{GitHubChangelogGenerator::VERSION}" exit @@ -86,7 +109,7 @@ module GitHubChangelogGenerator match = /(?:.+#{Regexp.escape(github_site)}\/)?(.+)\/(.+)/.match(ARGV[0]) begin - param = match[2].nil? + param = match[2].nil? rescue puts "Can't detect user and name from first parameter: '#{ARGV[0]}' -> exit'" exit diff --git a/lib/github_changelog_generator/version.rb b/lib/github_changelog_generator/version.rb index 361039c..9f77e5e 100644 --- a/lib/github_changelog_generator/version.rb +++ b/lib/github_changelog_generator/version.rb @@ -1,3 +1,3 @@ module GitHubChangelogGenerator - VERSION = '1.2.8' + VERSION = '1.3.0' end