parse_a_changelog 1.0.2 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -1
- data/VERSION +1 -1
- data/lib/grammar.tt +27 -19
- data/lib/parse_a_changelog.rb +7 -5
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e045590cfc9f23d38e8f2defb7eef9e0922d03abb4912a8b7b89f241e71e1163
|
4
|
+
data.tar.gz: 22fb2fbc1e1a1cdee66307a2808b83ca1469028d9bae4f94e86f260f6169e1f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c7f832c309f8ce46d459ba44016213b89ecd5465e6a6395f8b8fe2142deae05da2894a133fead184b0fc9d555eba54cc6251c211c267dfe8e1feff98496aa44
|
7
|
+
data.tar.gz: 3dd90696a9fd42f3e05ec0d3c3f2faed89dc0fb50089382cd144f3772288ad6ef3272da5a31ed440ef38fc323582b0a73cd20dce1b0a29b3082bdf1c1259c713
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
## [1.1.0] - 2020-11-12
|
10
|
+
### Added
|
11
|
+
- Allow for metadata section in version string.
|
12
|
+
[cyberark/parse-a-changelog#34](https://github.com/cyberark/parse-a-changelog/issues/34)
|
13
|
+
|
9
14
|
## [1.0.2] - 2020-08-26
|
10
15
|
### Fixed
|
11
16
|
- Added support for semver pre-releases.
|
@@ -67,7 +72,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
67
72
|
- Open source license and contributing information
|
68
73
|
- Change log and versioning information
|
69
74
|
|
70
|
-
[Unreleased]: https://github.com/cyberark/parse-a-changelog/compare/v1.0
|
75
|
+
[Unreleased]: https://github.com/cyberark/parse-a-changelog/compare/v1.1.0...HEAD
|
76
|
+
[1.1.0]: https://github.com/cyberark/parse-a-changelog/compare/v1.0.2...v1.1.0
|
71
77
|
[1.0.2]: https://github.com/cyberark/parse-a-changelog/compare/v1.0.1...v1.0.2
|
72
78
|
[1.0.1]: https://github.com/cyberark/parse-a-changelog/compare/v1.0.0...v1.0.1
|
73
79
|
[1.0.0]: https://github.com/cyberark/parse-a-changelog/compare/v0.2.3...v1.0.0
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0
|
1
|
+
1.1.0
|
data/lib/grammar.tt
CHANGED
@@ -4,20 +4,20 @@ grammar KeepAChangelog
|
|
4
4
|
end
|
5
5
|
|
6
6
|
rule changelog_header
|
7
|
-
'# Changelog'
|
8
|
-
'All notable changes to this project will be documented in this file.'
|
9
|
-
|
10
|
-
'The format is based on [Keep a Changelog](http' 's'? '://keepachangelog.com/en/1.0.0/)'
|
11
|
-
'and this project adheres to [Semantic Versioning](http' 's'? '://semver.org/spec/v2.0.0.html).'
|
12
|
-
|
7
|
+
'# Changelog' new_line
|
8
|
+
'All notable changes to this project will be documented in this file.' new_line
|
9
|
+
new_line
|
10
|
+
'The format is based on [Keep a Changelog](http' 's'? '://keepachangelog.com/en/1.0.0/)' new_line
|
11
|
+
'and this project adheres to [Semantic Versioning](http' 's'? '://semver.org/spec/v2.0.0.html).' new_line
|
12
|
+
new_line
|
13
13
|
end
|
14
14
|
|
15
15
|
rule unreleased_section
|
16
|
-
unreleased_header change_section? (
|
16
|
+
unreleased_header change_section? (new_line change_section)*
|
17
17
|
end
|
18
18
|
|
19
19
|
rule unreleased_header
|
20
|
-
'## ' '['? 'Unreleased' ']'?
|
20
|
+
'## ' '['? 'Unreleased' ']'? new_line
|
21
21
|
end
|
22
22
|
|
23
23
|
rule change_section
|
@@ -25,11 +25,11 @@ grammar KeepAChangelog
|
|
25
25
|
end
|
26
26
|
|
27
27
|
rule change_header
|
28
|
-
'### ' ('Added' / 'Changed' / 'Deprecated' / 'Removed' / 'Fixed' / 'Security')
|
28
|
+
'### ' ('Added' / 'Changed' / 'Deprecated' / 'Removed' / 'Fixed' / 'Security') new_line
|
29
29
|
end
|
30
30
|
|
31
31
|
rule change
|
32
|
-
('- ' / ' ') (!
|
32
|
+
('- ' / ' ') (!new_line .)+ new_line?
|
33
33
|
end
|
34
34
|
|
35
35
|
rule releases_section
|
@@ -37,22 +37,26 @@ grammar KeepAChangelog
|
|
37
37
|
end
|
38
38
|
|
39
39
|
rule release
|
40
|
-
|
40
|
+
new_line release_header change_section? (new_line change_section)*
|
41
41
|
end
|
42
42
|
|
43
43
|
rule release_header
|
44
|
-
'## ' '['? release_version ']'? ' - ' release_date
|
44
|
+
'## ' '['? release_version ']'? ' - ' release_date new_line
|
45
45
|
end
|
46
46
|
|
47
47
|
rule release_version
|
48
|
-
[0-9]+ '.' [0-9]+ '.' [0-9]+ pre_release_version
|
48
|
+
[0-9]+ '.' [0-9]+ '.' [0-9]+ pre_release_version metadata
|
49
49
|
end
|
50
50
|
|
51
51
|
rule pre_release_version
|
52
|
-
( '-' [0-9A-Za-z-]+
|
52
|
+
( '-' [0-9A-Za-z-]+ dot_separated_group* ) / ''
|
53
|
+
end
|
54
|
+
|
55
|
+
rule metadata
|
56
|
+
( '+' [0-9A-Za-z-]+ dot_separated_group* ) / ''
|
53
57
|
end
|
54
58
|
|
55
|
-
rule
|
59
|
+
rule dot_separated_group
|
56
60
|
'.' [0-9A-Za-z-]+
|
57
61
|
end
|
58
62
|
|
@@ -61,19 +65,19 @@ grammar KeepAChangelog
|
|
61
65
|
end
|
62
66
|
|
63
67
|
rule diff_section
|
64
|
-
|
68
|
+
new_line unreleased_diff release_diff* initial_release?
|
65
69
|
end
|
66
70
|
|
67
71
|
rule unreleased_diff
|
68
|
-
'[Unreleased]: ' release_url
|
72
|
+
'[Unreleased]: ' release_url new_line
|
69
73
|
end
|
70
74
|
|
71
75
|
rule initial_release
|
72
|
-
'[' release_version ']: ' 'https://github.com/' (!'/' .)+ '/' (!'/' .)+ '/releases/tag/v' release_version
|
76
|
+
'[' release_version ']: ' 'https://github.com/' (!'/' .)+ '/' (!'/' .)+ '/releases/tag/v' release_version new_line
|
73
77
|
end
|
74
78
|
|
75
79
|
rule release_diff
|
76
|
-
'[' release_version ']: ' release_url
|
80
|
+
'[' release_version ']: ' release_url new_line
|
77
81
|
end
|
78
82
|
|
79
83
|
rule release_url
|
@@ -83,4 +87,8 @@ grammar KeepAChangelog
|
|
83
87
|
rule diff_version
|
84
88
|
'HEAD' / ( 'v' release_version )
|
85
89
|
end
|
90
|
+
|
91
|
+
rule new_line
|
92
|
+
"\n"
|
93
|
+
end
|
86
94
|
end
|
data/lib/parse_a_changelog.rb
CHANGED
@@ -10,15 +10,17 @@ module ParseAChangelog
|
|
10
10
|
parser = KeepAChangelogParser.new
|
11
11
|
result = parser.parse(file)
|
12
12
|
|
13
|
-
|
14
|
-
raise
|
13
|
+
unless result
|
14
|
+
raise parser_error(
|
15
|
+
parser.failure_line, parser.failure_column, parser.failure_reason
|
16
|
+
)
|
15
17
|
end
|
16
|
-
|
18
|
+
|
17
19
|
result
|
18
20
|
end
|
19
21
|
|
20
|
-
def
|
21
|
-
|
22
|
+
def parser_error(line, column, reason)
|
23
|
+
ParseError.new("line #{line}, column #{column}: #{reason}")
|
22
24
|
end
|
23
25
|
end
|
24
26
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parse_a_changelog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Tuttle
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: treetop
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.4.1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry-byebug
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 3.9.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 3.9.0
|
55
69
|
description: Uses a grammar describing the keep-a-changelog format to attempt to parse
|
56
70
|
a given file.
|
57
71
|
email: jtuttle.develops@gmail.com
|