Merge branch 'release/1.3.0'

This commit is contained in:
Petr Korolev 2015-02-26 12:49:15 +02:00
commit 92066155ea
6 changed files with 898 additions and 220 deletions

View File

@ -20,7 +20,7 @@ GitHub Changelog Generator
Changelog generation has never been so easy. 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 ## 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. Type `github_changelog_generator --help` for detailed usage.
Usage: changelog_generator [options] Usage: changelog_generator [options]
-u, --user [USER] Username of the owner of target GitHub repo -u, --user [USER] Username of the owner of target GitHub repo
-p, --project [PROJECT] Name of project on GitHub -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 -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
-h, --help Displays Help -f, --date-format [FORMAT] Date format. Default is %d/%m/%y
--[no-]verbose Run verbosely. Default is true -o, --output [NAME] Output file. Default is CHANGELOG.md
--[no-]issues Include closed issues to changelog. Default is true --[no-]verbose Run verbosely. Default is true
--[no-]issues-without-labels Include closed issues without any labels to changelog. Default is true --[no-]issues Include closed issues to changelog. Default is true
--[no-]pull-requests Include pull-requests to changelog. Default is true --[no-]issues-wo-labels Include closed issues without labels to changelog. Default is true
-l, --last-changes Generate log between last 2 tags only --[no-]pr-wo-labels Include pull requests without labels to changelog. Default is true
--[no-]author Add author of pull-request in the end. Default is true --[no-]pull-requests Include pull-requests to changelog. Default is true
-f, --date-format [FORMAT] Date format. Default is %d/%m/%y --[no-]filter-by-milestone Use milestone to detect when issue was resolved. Default is true
-o, --output [NAME] Output file. Default is CHANGELOG.md --[no-]author Add author of pull-request in the end. Default is true
--labels x,y,z List of labels. Issues with that labels will be included to changelog. Default is 'bug,enhancement' --unreleased-only Generate log from unreleased closed issues only.
-v, --version Print version number --[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 ### 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. 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 ##Features and advantages of this project
- Generate cannonical changelog file, followed by [keepachangelog.com guidlines](http://keepachangelog.com/) - Generate canonical change log file, followed by [keepachangelog.com guidlines](http://keepachangelog.com/)
- Support **Unreleased** issues (closed issues that have not yet released) - Simply add links for all closed issues and merged pull requests
- Customize issues, that should be added to changelog - Possible to generate **Unreleased** changes (closed issues that have not released yet)
- Custom date format supported - Flexible format customisation:
- 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 - Customize issues, that should be added to changelog
- Ability to exclude specific issues from changelog (by labels) - Custom date format supported
- Automatically exclude "questions" - issues marked as `question` labels (and other issues, that should'n be in changelog file: with `duplicate invalid wontfix` labels) - 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
- Automatically split issues by type - 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) - **Issues** (closed issues w/o any labels)
- **Merged pull-requests** (all merged pull-requests) - **Merged pull-requests** (all merged pull-requests)
- **Bug-fixes** (by label `bug` in issue) - **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 ### Projects using this library
[Wikipage with list of projects](https://github.com/skywinder/Github-Changelog-Generator/wiki/Projects-using-Github-Changelog-Generator) [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? ## Am I missed some essential feature?

View File

@ -1,147 +1,778 @@
# Changelog # Change Log
## [Unreleased](https://github.com/skywinder/Github-Changelog-Generator/tree/HEAD) (2015-02-18) ## [Unreleased](https://github.com/skywinder/ActionSheetPicker-3.0/tree/HEAD) (2015-02-26)
[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.2.8...HEAD) [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) ### Fixed bugs:
[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.2.4...1.2.5)
- *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) - 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))
[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.2.3...1.2.4)
- *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) ## [1.3.11](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.3.11) (2015-01-15)
[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.2.0...1.2.1) [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) - 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))
[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.1.4...1.2.0)
- *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) - Swift; Does not conform to protocol [\#120](https://github.com/skywinder/ActionSheetPicker-3.0/issues/120)
[Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.0.1...1.1.0)
- *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)* ## [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)*

View File

@ -61,7 +61,7 @@ module GitHubChangelogGenerator
def detect_actual_closed_dates def detect_actual_closed_dates
if @options[:verbose] if @options[:verbose]
print "Fetching close commit date for issues...\r" print "Fetching closed dates for issues...\r"
end end
threads = [] threads = []
@ -73,7 +73,7 @@ module GitHubChangelogGenerator
threads.each { |thr| thr.join } threads.each { |thr| thr.join }
if @options[:verbose] if @options[:verbose]
puts 'Fetching close commit date for issues: Done!' puts 'Fetching closed dates for issues: Done!'
end end
end end
@ -118,14 +118,14 @@ module GitHubChangelogGenerator
print "Fetching pull requests... #{page_i}/#{count_pages * PER_PAGE_NUMBER}\r" print "Fetching pull requests... #{page_i}/#{count_pages * PER_PAGE_NUMBER}\r"
pull_requests.concat(page) pull_requests.concat(page)
end end
print " \r" print " \r"
if @options[:verbose] if @options[:verbose]
puts "Received pull requests: #{pull_requests.count}" puts "Received pull requests: #{pull_requests.count}"
end end
@pull_requests.each{|pr| @pull_requests.each { |pr|
fetched_pr = pull_requests.find{ |fpr| fetched_pr = pull_requests.find { |fpr|
fpr.number == pr.number } fpr.number == pr.number }
pr[:merged_at] = fetched_pr[:merged_at] pr[:merged_at] = fetched_pr[:merged_at]
pull_requests.delete(fetched_pr) pull_requests.delete(fetched_pr)
@ -207,7 +207,7 @@ module GitHubChangelogGenerator
def compund_changelog def compund_changelog
log = "# Changelog\n\n" log = "# Change Log\n\n"
if @options[:unreleased_only] if @options[:unreleased_only]
log += self.generate_log_between_tags(self.all_tags[0], nil) 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?(tag1)
if tags_strings.include?(tag2) 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] index1 = hash[tag1]
index2 = hash[tag2] index2 = hash[tag2]
log += self.generate_log_between_tags(self.all_tags[index1], self.all_tags[index2]) 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 log += self.generate_log_for_all_tags
end 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]}" output_filename = "#{@options[:output]}"
File.open(output_filename, 'w') { |file| file.write(log) } File.open(output_filename, 'w') { |file| file.write(log) }
@ -245,8 +246,39 @@ module GitHubChangelogGenerator
end end
def generate_log_for_all_tags 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 = '' 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] if @options[:verbose]
print "Fetching tags dates..\r" print "Fetching tags dates..\r"
end end
@ -274,27 +306,6 @@ module GitHubChangelogGenerator
if @options[:verbose] if @options[:verbose]
puts 'Fetching tags: Done!' puts 'Fetching tags: Done!'
end 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 end
def is_megred(number) def is_megred(number)
@ -341,13 +352,13 @@ module GitHubChangelogGenerator
end end
def generate_log_between_tags(older_tag, newer_tag) 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_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) filtered_issues = delete_by_time(@issues, :actual_date, older_tag, newer_tag)
newer_tag_name = newer_tag.nil? ? nil : newer_tag['name'] 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] if @options[:filter_issues_by_milestone]
#delete excess irrelevant issues (according milestones) #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) filtered_pull_requests = filter_by_milestone(filtered_pull_requests, newer_tag_name, @pull_requests)
end 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) self.create_log(filtered_pull_requests, filtered_issues, newer_tag, older_tag_name)
end end
def filter_by_milestone(filtered_issues, newer_tag_name, src_array) def filter_by_milestone(filtered_issues, newer_tag_name, src_array)
@ -443,79 +456,81 @@ module GitHubChangelogGenerator
if newer_tag.nil? if newer_tag.nil?
newer_tag_name = 'Unreleased' newer_tag_name = 'Unreleased'
newer_tag_name2 = 'HEAD' newer_tag_link = 'HEAD'
newer_tag_time = Time.new newer_tag_time = Time.new
else else
newer_tag_name2 = newer_tag_name newer_tag_link = newer_tag_name
end 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: #Generate date string:
time_string = newer_tag_time.strftime @options[:format] time_string = newer_tag_time.strftime @options[:format]
# Generate tag name and link # 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 if @options[:compare_link] && older_tag_name
# Generate compare link # Generate compare link
log += "[Full Changelog](#{project_url}/compare/#{older_tag_name}...#{newer_tag_name2})\n\n" 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 end
log log
@ -596,7 +611,7 @@ module GitHubChangelogGenerator
end end
# remove pull request from issues: # remove pull request from issues:
issues_wo_pr = issues.select { |x| issues_wo_pr = issues.select { |x|
x.pull_request == nil x.pull_request == nil
} }
pull_requests = issues.select { |x| pull_requests = issues.select { |x|

View File

@ -5,20 +5,20 @@ module GitHubChangelogGenerator
@options = options @options = options
end end
def get_string_for_pull_request(pull_request) def get_string_for_issue(issue)
encapsulated_title = self.encapsulate_string pull_request[:title] encapsulated_title = self.encapsulate_string issue[:title]
merge = "#{@options[:merge_prefix]}#{encapsulated_title} [\\##{pull_request[:number]}](#{pull_request.html_url})" merge = "#{encapsulated_title} [\\##{issue[:number]}](#{issue.html_url})"
if @options[:author] unless issue.pull_request.nil?
if pull_request.user.nil? if @options[:author]
merge += " ({Null user})\n\n" if issue.user.nil?
else merge += " ({Null user})\n\n"
merge += " ([#{pull_request.user.login}](#{pull_request.user.html_url}))\n\n" else
merge += " ([#{issue.user.login}](#{issue.user.html_url}))\n\n"
end
end end
else
merge += "\n\n"
end end
merge merge += "\n"
end end
def encapsulate_string(string) def encapsulate_string(string)
@ -26,7 +26,7 @@ module GitHubChangelogGenerator
string.gsub! '\\', '\\\\' string.gsub! '\\', '\\\\'
encpas_chars = %w(> * _ \( \) [ ]) encpas_chars = %w(> * _ \( \) [ ])
encpas_chars.each{ |char| encpas_chars.each { |char|
string.gsub! char, "\\#{char}" string.gsub! char, "\\#{char}"
} }

View File

@ -7,7 +7,27 @@ module GitHubChangelogGenerator
class Parser class Parser
def self.parse_options def self.parse_options
# :include_labels => %w(bug enhancement), # :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| parser = OptionParser.new { |opts|
opts.banner = 'Usage: changelog_generator [options]' 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| opts.on('-o', '--output [NAME]', 'Output file. Default is CHANGELOG.md') do |last|
options[:output] = last options[:output] = last
end 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| opts.on('--[no-]issues', 'Include closed issues to changelog. Default is true') do |v|
options[:issues] = v options[:issues] = v
end end
@ -53,7 +70,7 @@ module GitHubChangelogGenerator
opts.on('--[no-]unreleased', 'Add to log unreleased closed issues. Default is true') do |v| opts.on('--[no-]unreleased', 'Add to log unreleased closed issues. Default is true') do |v|
options[:unreleased] = v options[:unreleased] = v
end 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 options[:compare_link] = v
end 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| 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| opts.on('--github-api [URL]', 'The enterprise endpoint to use for your Github API.') do |last|
options[:github_endpoint] = last options[:github_endpoint] = last
end 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| opts.on('-v', '--version', 'Print version number') do |v|
puts "Version: #{GitHubChangelogGenerator::VERSION}" puts "Version: #{GitHubChangelogGenerator::VERSION}"
exit exit
@ -86,7 +109,7 @@ module GitHubChangelogGenerator
match = /(?:.+#{Regexp.escape(github_site)}\/)?(.+)\/(.+)/.match(ARGV[0]) match = /(?:.+#{Regexp.escape(github_site)}\/)?(.+)\/(.+)/.match(ARGV[0])
begin begin
param = match[2].nil? param = match[2].nil?
rescue rescue
puts "Can't detect user and name from first parameter: '#{ARGV[0]}' -> exit'" puts "Can't detect user and name from first parameter: '#{ARGV[0]}' -> exit'"
exit exit

View File

@ -1,3 +1,3 @@
module GitHubChangelogGenerator module GitHubChangelogGenerator
VERSION = '1.2.8' VERSION = '1.3.0'
end end