milestoner 18.0.1 → 18.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9888c9ada1acc15633b75033d7fa867f9ce726de015e8eecdd61bf17c65d1db9
4
- data.tar.gz: 3dc30214f99ac8da3f7245c953cec6e4af593bd18283543f760b9ceec1e3fea5
3
+ metadata.gz: 5fcc6f3ede7fdff901296a42d3df49c74122288784e6ec31269581d66281cd34
4
+ data.tar.gz: 996593d578f7d4cddd5cc57a15c4c0babc996cca92fb9c92ce3b25fdda0e547c
5
5
  SHA512:
6
- metadata.gz: f120d8414ac38e182b72eead7588c2ef3ec6fec02f1d781ed7e90783ee478eedec9c985311617bf2438d7b3775f6a45ad875374f0e84f550dd2b5c5a2593e5bd
7
- data.tar.gz: 0fc33409f7fd90d29b9187c226a63544e8189442c28ee4908543b6ffdb03ffb5321c9c7844adb5f4a60ad93ded831cf59a837dcc77ffd593175ecb9e100ab4b3
6
+ metadata.gz: 38714a95ec74eaf9121877b8f9590db3517f7034ec83781c9be719b57b077423fc434004dd01490782abdaba75d2613d3c9f39e4bcf12834cdcbe5485766b2c7
7
+ data.tar.gz: 0ec2e026f3ffedcfba5f19c84218431c0e6faa04b54ffbdf748d17d6a2c69135e5a2f5ed7bb6368d1183be3746640b4fa50f31d3e97813e08044428c6410f66b
checksums.yaml.gz.sig CHANGED
Binary file
data/README.adoc CHANGED
@@ -12,6 +12,7 @@
12
12
  :git_link: link:https://git-scm.com[Git]
13
13
  :git_lint_link: link:https://alchemists.io/projects/git-lint[Git Lint]
14
14
  :git_trailers_link: link:https://alchemists.io/articles/git_trailers[Git Trailers]
15
+ :git_notes_link: link:https://alchemists.io/articles/git_notes[Git Notes]
15
16
  :hanami_link: link:https://hanamirb.org[Hanami]
16
17
  :hanami_views_link: link:https://alchemists.io/articles/hanami_views[Hanami Views]
17
18
  :hanamismith_link: link:https://alchemists.io/projects/hanamismith[Hanamismith]
@@ -38,7 +39,7 @@ You can use Milestoner to inspect the current state of the next milestone, celeb
38
39
 
39
40
  Milestoner pairs well with the following gems:
40
41
 
41
- * {git_lint_link}: Lints each {git_link} commit to ensure they are of high quality for historic inspection and release note generation.
42
+ * {git_lint_link}: Lints each {git_link} commit to ensure they are of high quality for readability, historic inspection, and release note generation.
42
43
  * {rubysmith_link}: Automates building new {ruby_link} projects.
43
44
  * {gemsmith_link}: Automates building new {rubygems_link} projects.
44
45
  * {hanamismith_link}: Automates building new {hanami_link} projects.
@@ -47,43 +48,43 @@ toc::[]
47
48
 
48
49
  == Screenshots
49
50
 
50
- The following are screenshots of using this gem to render release notes for the {lode_link} gem. Even though {lode_link} is used for example purposes, please keep in mind that Milestoner can be used for _any project, any programming language_.
51
+ The following are screenshots of using this gem to render release notes for the {lode_link} gem. Even though {lode_link} is used for example purposes, keep in mind that Milestoner can be used for _any project and/or programming language_.
51
52
 
52
53
  === ASCII Doc Format
53
54
 
54
- image:https://alchemists.io/images/projects/milestoner/screenshots/build-ascii_doc-rendered.png[Release Notes,width=890,height=742,role=focal_point]
55
+ image:https://alchemists.io/images/projects/milestoner/screenshots/build-ascii_doc.png[Release Notes,width=882,height=738,role=focal_point]
55
56
 
56
57
  * *Command*: `milestoner build --format ascii_doc`
57
58
  * *Renderer*: {ascii_doc_link}
58
59
 
59
60
  === Feed Format
60
61
 
61
- image:https://alchemists.io/images/projects/milestoner/screenshots/build-feed-rendered-collapsed.png[Release Notes,width=1121,height=1154,role=focal_point]
62
+ image:https://alchemists.io/images/projects/milestoner/screenshots/build-feed-collapsed.png[Release Notes,width=1109,height=1143,role=focal_point]
62
63
 
63
- image:https://alchemists.io/images/projects/milestoner/screenshots/build-feed-rendered-expanded.png[Release Notes,width=1121,height=1154,role=focal_point]
64
+ image:https://alchemists.io/images/projects/milestoner/screenshots/build-feed-expanded.png[Release Notes,width=1109,height=1143,role=focal_point]
64
65
 
65
66
  * *Command*: `milestoner build --format feed`
66
67
  * *Renderer*: {net_news_wire_link}
67
68
 
68
69
  === Markdown Format
69
70
 
70
- image:https://alchemists.io/images/projects/milestoner/screenshots/build-markdown-rendered.png[Release Notes,width=712,height=717,role=focal_point]
71
+ image:https://alchemists.io/images/projects/milestoner/screenshots/build-markdown.png[Release Notes,width=789,height=718,role=focal_point]
71
72
 
72
73
  * *Command*: `milestoner build --format markdown`
73
74
  * *Renderer*: {marked_link}
74
75
 
75
76
  === Stream Format
76
77
 
77
- image:https://alchemists.io/images/projects/milestoner/screenshots/build-stream.png[Release Notes,width=451,height=370,role=focal_point]
78
+ image:https://alchemists.io/images/projects/milestoner/screenshots/build-stream.png[Release Notes,width=586,height=341,role=focal_point]
78
79
 
79
80
  * *Command*: `milestoner build --format stream`
80
81
  * *Renderer*: {iterm_link}
81
82
 
82
83
  === Web Format
83
84
 
84
- image:https://alchemists.io/images/projects/milestoner/screenshots/build-web-collapsed.png[Release Notes,width=1150,height=878,role=focal_point]
85
+ image:https://alchemists.io/images/projects/milestoner/screenshots/build-web-collapsed.png[Release Notes,width=1195,height=878,role=focal_point]
85
86
 
86
- image:https://alchemists.io/images/projects/milestoner/screenshots/build-web-expanded.png[Release Notes,width=1150,height=878,role=focal_point]
87
+ image:https://alchemists.io/images/projects/milestoner/screenshots/build-web-expanded.png[Release Notes,width=1195,height=878,role=focal_point]
87
88
 
88
89
  * *Command*: `milestoner build --format web`
89
90
  * *Renderer*: {firefox_link}
@@ -95,14 +96,21 @@ image:https://alchemists.io/images/projects/milestoner/screenshots/build-web-exp
95
96
  ** Example: `0.0.0`.
96
97
  * Defaults to including {git_link} commits since last tag (or initialization of repository) when building release notes. This can be customized further if desired.
97
98
  * Ensures {git_link} commit messages are grouped by prefix, in order defined, for categorization. For more details, see link:https://alchemists.io/projects/git-lint/#_commit_subject_prefix[Git Lint Commit Subject Prefix]. Defaults (can be customized):
98
- ** image:https://alchemists.io/images/projects/milestoner/icons/commits/fixed.png[Fixed] Fixed
99
- ** image:https://alchemists.io/images/projects/milestoner/icons/commits/added.png[Added] Added
100
- ** image:https://alchemists.io/images/projects/milestoner/icons/commits/updated.png[Updated] Updated
101
- ** image:https://alchemists.io/images/projects/milestoner/icons/commits/removed.png[Removed] Removed
102
- ** image:https://alchemists.io/images/projects/milestoner/icons/commits/refactored.png[Refactored] Refactored
99
+ ** image:https://alchemists.io/images/projects/milestoner/icons/fixed.png[Fixed] Fixed
100
+ ** image:https://alchemists.io/images/projects/milestoner/icons/added.png[Added] Added
101
+ ** image:https://alchemists.io/images/projects/milestoner/icons/updated.png[Updated] Updated
102
+ ** image:https://alchemists.io/images/projects/milestoner/icons/removed.png[Removed] Removed
103
+ ** image:https://alchemists.io/images/projects/milestoner/icons/refactored.png[Refactored] Refactored
103
104
  * Ensures {git_link} commit messages are alphabetically sorted for release note categorization and readability.
104
105
  * Provides automatic versioning based on last {git_link} tag and {git_trailers_link}. See {git_commit_anatomy_link} for details.
105
- * Supports multiple build formats: {ascii_doc_link}, {syndication_link}, {markdown_link}, Stream (console), and Web (HTML). Each are fully customizable via your personal {xdg_link} and {hanami_views_link} configuration.
106
+ * Supports multiple build formats:
107
+ ** {ascii_doc_link}
108
+ ** {syndication_link}
109
+ ** {markdown_link}
110
+ ** Stream (console)
111
+ ** link:https://html.spec.whatwg.org/multipage[Web]
112
+ * Supports {git_notes_link}.
113
+ * Supports customization via your personal {xdg_link} and {hanami_views_link} configuration.
106
114
 
107
115
  == Requirements
108
116
 
@@ -268,7 +276,7 @@ The above can be customized as follows:
268
276
 
269
277
  As hinted at above, all URIs (including syndication), support {string_formats_link}. This means you can use the `%<key>s` format -- replacing `key` with the key of your choice -- to customize your configuration further.
270
278
 
271
- 💡 If you ever need to know what your current configuration looks like you can jump into your applications IRB console and inspect `Milestoner::Container[:configuration]` to see full details.
279
+ 💡 If you need to know what your current configuration looks like, you can jump into your applications IRB console and inspect `Milestoner::Container[:settings]` to see full details.
272
280
 
273
281
  === Config
274
282
 
@@ -321,7 +329,7 @@ milestoner cache --info
321
329
 
322
330
  Once team member information is stored in your cache, you'll be able to build release notes which automatically link to GitHub user information without constantly hitting the GitHub API. _Users are identified by name so the full author name used for each commit message needs to match the same user name as stored in your source repository hosting service._
323
331
 
324
- If you don't update your cache, your release note display a question mark (?) and _unknown_ for team members as highlighted below:
332
+ If you don't use the cache, your release notes use a question mark (?) and _unknown_ for team members as highlighted below:
325
333
 
326
334
  image:https://alchemists.io/images/projects/milestoner/screenshots/no_cache.png[Usage,width=851,height=571,role=focal_point]
327
335
 
@@ -338,7 +346,7 @@ milestoner build --format web
338
346
  # 🟢 Milestone built: /Users/bkuhlmann/Engineering/OSS/milestoner/tmp/milestone
339
347
  ----
340
348
 
341
- The above command is so useful that I use the following `msw` (i.e. Milestoner Web) Bash alias to build currest release notes or release notes for several tags:
349
+ The above command is so useful that I use the following `msw` (i.e. Milestoner Web) Bash alias to build current release notes or release notes for several tags:
342
350
 
343
351
  [source,bash]
344
352
  ----
@@ -365,7 +373,7 @@ Check out the help documentation (i.e. `milestoner build --help`) for addition u
365
373
 
366
374
  ==== Automatic Versioning
367
375
 
368
- As mentioned earlier, the calculation of version information happens automatically for you based on your last {git_link} tag and any {git_link} commit trailer metadata used. If none of this information is present, then the default version of `0.0.0` is used instead. All of this information is available to you via the following command:
376
+ As mentioned earlier, the calculation of version information happens automatically based on your last {git_link} tag and any {git_link} commit trailer metadata used. If none of this information is present, then the default version of `0.0.0` is used instead. All of this information is available to you via the following command:
369
377
 
370
378
  [source,bash]
371
379
  ----
@@ -383,7 +391,7 @@ milestoner build --format stream
383
391
  milestoner build --format stream --version 1.2.3
384
392
  ----
385
393
 
386
- By default, automatic versioning is based on your last known {git_link} tag and the version is bumped based on {git_link} commit trailer information from untagged commits (i.e. those commits created since the last tag). All of this is managed via the {versionaire_link} gem. To ensure automatic versioning works properly, you only need to add the `Milestone` {git_link} commit trailer with a value of: `patch`, `minor`, or `major`. Here's an example assuming you have published Version 1.0.0:
394
+ By default, automatic versioning is based on your last known {git_link} tag. The version is bumped based on {git_link} commit trailer information from untagged commits (i.e. commits created since the last tag). All of this is managed via the {versionaire_link} gem. To ensure automatic versioning works properly, you only need to add the `Milestone` {git_link} commit trailer with a value of: `patch`, `minor`, or `major`. Here's an example assuming you have published Version 1.0.0:
387
395
 
388
396
  ....
389
397
  # First commit.
@@ -426,7 +434,8 @@ Given the above, the resulting version would be: 2.0.0. This is because the high
426
434
 
427
435
  ==== Templates
428
436
 
429
- Build template functionality is powered by {hanami_views_link} which means you can customize the HTML structure, CSS style, and more. The quickest way to get started is to copy the `templates` folder structure -- included with this gem -- to your preferred {runcom_link} configuration. For example, this gem's template structure is:
437
+ Build template functionality is powered by {hanami_views_link} which means you can completely customize _all_ build formats, templates, partials, stylesheets, images, and so much more.
438
+ The quickest way to start customization is to copy the `templates` folder structure -- included with this gem -- to your preferred {runcom_link} configuration (i.e. global or local). For example, this gem's template structure is:
430
439
 
431
440
  ....
432
441
  lib/milestoner/templates
@@ -468,28 +477,42 @@ lib/milestoner/templates
468
477
  └── page.css.erb
469
478
  ....
470
479
 
471
- This means you could, for example, copy all of this gem's templates to your own {runcom_link} configuration to customize how you like. Example:
480
+ This means you could, for example, copy all of Milestoner's default templates to your own {runcom_link} configuration and customize as you see fit. Example (using global configuration):
472
481
 
473
482
  [source,bash]
474
483
  ----
475
484
  cp -r <milestoner_gem_root>/lib/milestoner/templates $HOME/.config/milestoner/templates
476
485
  ----
477
486
 
478
- Milestoner searches your {runcom_link} configuration first and, if templates are detected, will be used instead. Otherwise, Milestoner falls back to it's own templates. Once {runcom_link} has calculated all possible template locations, {hanami_views_link} handles the final loading and evaluation of your templates.
487
+ Milestoner searches your {runcom_link} configuration first and, if templates are detected, will be used instead. Otherwise, Milestoner falls back to it's own templates. Once {runcom_link} has calculated all possible template locations, {hanami_views_link} handles the final loading and rendering of the templates.
479
488
 
480
- ==== Web Format
489
+ ==== Formats
481
490
 
482
- Of all the build formats supported, the web format is the most powerful and feature rich. The following showcases _some_ of the information rendered in this format based on commit activity.
491
+ Of all build formats supported, the web format is the most powerful and feature rich. The following showcases _some_ of the information rendered in this format based on commit activity.
483
492
 
484
- *Wit Basic Git Commit*
493
+ *With Basic Git Commit*
485
494
 
486
- image:https://alchemists.io/images/projects/milestoner/screenshots/web_format-overview.png[Usage,width=1228,height=808,role=focal_point]
495
+ image:https://alchemists.io/images/projects/milestoner/screenshots/web_format-overview.png[Overview,width=1119,height=910,role=focal_point]
487
496
 
488
- *With Git Commit Notes and Trailers*
497
+ *With Collaborators and Signers*
489
498
 
490
- image:https://alchemists.io/images/projects/milestoner/screenshots/web_format-notes_and_collaborators.png[Usage,width=1228,height=808,role=focal_point]
499
+ image:https://alchemists.io/images/projects/milestoner/screenshots/web_format-collaborators_and_signers.png[Collaborators and Signers,width=1118,height=1003,role=focal_point]
491
500
 
492
- Each milestone is meant to provide you with the right amount of statistical information you can make informed decisions.
501
+ *With Invalid Tag*
502
+
503
+ image:https://alchemists.io/images/projects/milestoner/screenshots/web_format-tag_invalid.png[Invalid Tag,width=1119,height=910,role=focal_point]
504
+
505
+ *With Valid Tag*
506
+
507
+ image:https://alchemists.io/images/projects/milestoner/screenshots/web_format-tag_valid.png[Valid Tag,width=1119,height=910,role=focal_point]
508
+
509
+ *With Notes*
510
+
511
+ image:https://alchemists.io/images/projects/milestoner/screenshots/web_format-notes.png[Notes,width=1119,height=910,role=focal_point]
512
+
513
+ 💡 See {git_notes_link} to learn more.
514
+
515
+ You'll find all formats render similar information with the feed format being the closest but most formats are not as feature rich as the web format. Each milestone is meant to provide you with the right amount of statistical information you can make informed decisions.
493
516
 
494
517
  == Security
495
518
 
@@ -30,7 +30,7 @@ module Milestoner
30
30
 
31
31
  def build tags
32
32
  tags.reduce([]) { |content, tag| content.append render(tag) }
33
- .join(%(\n\n))
33
+ .join(%(\n#{"-" * 80}\n\n))
34
34
  end
35
35
 
36
36
  def render(tag) = view.call tag:, layout: settings.build_layout, format: :stream
@@ -54,6 +54,7 @@ module Milestoner
54
54
 
55
55
  def write tag
56
56
  path = make_path tag
57
+ settings.project_version = tag.version
57
58
 
58
59
  path.write view.call(tag:, layout: settings.build_layout)
59
60
  logger.info { "Built: #{path}." }
@@ -19,7 +19,7 @@ module Milestoner
19
19
 
20
20
  default { Container[:settings].build_basename }
21
21
 
22
- def call(name = nil) = settings.build_basename = name || default
22
+ def call(name = default) = settings.build_basename = name
23
23
  end
24
24
  end
25
25
  end
@@ -16,7 +16,7 @@ module Milestoner
16
16
 
17
17
  default { Container[:settings].build_format }
18
18
 
19
- def call(kind = nil) = settings.build_format = kind || default
19
+ def call(kind = default) = settings.build_format = kind
20
20
  end
21
21
  end
22
22
  end
@@ -16,7 +16,7 @@ module Milestoner
16
16
 
17
17
  default { Container[:settings].project_label }
18
18
 
19
- def call(label = nil) = settings.project_label = label || default
19
+ def call(label = default) = settings.project_label = label
20
20
  end
21
21
  end
22
22
  end
@@ -18,16 +18,8 @@ module Milestoner
18
18
 
19
19
  default { Container[:settings].build_layout }
20
20
 
21
- def call(layout = nil) = settings.build_layout = parse(layout)
22
-
23
- private
24
-
25
- def parse value
26
- case value
27
- in "false" then false
28
- in String then value
29
- else default
30
- end
21
+ def call layout = default
22
+ settings.build_layout = layout == "false" ? false : layout
31
23
  end
32
24
  end
33
25
  end
@@ -16,7 +16,7 @@ module Milestoner
16
16
 
17
17
  default { Container[:settings].build_max }
18
18
 
19
- def call(max = nil) = settings.build_max = max || default
19
+ def call(max = default) = settings.build_max = max
20
20
  end
21
21
  end
22
22
  end
@@ -17,7 +17,7 @@ module Milestoner
17
17
 
18
18
  default { Container[:settings].build_root }
19
19
 
20
- def call(path = nil) = settings.build_root = Pathname(path || default).expand_path
20
+ def call(path = default) = settings.build_root = Pathname(path).expand_path
21
21
  end
22
22
  end
23
23
  end
@@ -18,16 +18,8 @@ module Milestoner
18
18
 
19
19
  default { Container[:settings].build_stylesheet }
20
20
 
21
- def call(name = nil) = settings.build_stylesheet = parse(name)
22
-
23
- private
24
-
25
- def parse value
26
- case value
27
- in "false" then false
28
- in String then value
29
- else default
30
- end
21
+ def call name = default
22
+ settings.build_stylesheet = name == "false" ? false : name
31
23
  end
32
24
  end
33
25
  end
@@ -18,7 +18,7 @@ module Milestoner
18
18
 
19
19
  default { Container[:settings].build_tail }
20
20
 
21
- def call(reference = nil) = settings.build_tail = reference || default
21
+ def call(reference = default) = settings.build_tail = reference
22
22
  end
23
23
  end
24
24
  end
@@ -21,8 +21,8 @@ module Milestoner
21
21
 
22
22
  default { Container[:settings].project_version }
23
23
 
24
- def call version = nil
25
- settings.project_version = Version(version || default)
24
+ def call version = default
25
+ settings.project_version = Version version
26
26
  rescue Versionaire::Error => error
27
27
  logger.error { error.message }
28
28
  end
@@ -27,10 +27,10 @@ module Milestoner
27
27
  @publisher = publisher
28
28
  end
29
29
 
30
- def call version = nil
30
+ def call version = default
31
31
  settings.build_max = 1
32
32
 
33
- case publisher.call Version(version || default)
33
+ case publisher.call Version(version)
34
34
  in Success(version) then version
35
35
  in Failure(message) then log_error message
36
36
  else log_error "Publish failed, unable to parse result."
@@ -2,6 +2,7 @@
2
2
 
3
3
  require "dry/monads"
4
4
  require "refinements/pathname"
5
+ require "refinements/struct"
5
6
  require "versionaire"
6
7
 
7
8
  module Milestoner
@@ -14,6 +15,7 @@ module Milestoner
14
15
 
15
16
  using Refinements::Pathname
16
17
  using Versionaire::Cast
18
+ using Refinements::Struct
17
19
 
18
20
  def initialize(enricher: Commits::Enricher.new, model: Models::Tag, **)
19
21
  @enricher = enricher
@@ -67,9 +69,7 @@ module Milestoner
67
69
  end
68
70
 
69
71
  def author tag
70
- tag = tag.dup
71
- tag.author_name ||= settings.project_author
72
- author_enricher.call tag
72
+ author_enricher.call tag.with(author_name: tag.author_name || settings.project_author)
73
73
  end
74
74
 
75
75
  def committed_at(at) = at ? Time.at(at.to_i).utc : settings.loaded_at
@@ -1,11 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "refinements/binding"
4
+
3
5
  module Milestoner
4
6
  module Renderers
5
7
  # The primary renderer for multiple input formats as HTML.
6
8
  class Universal
7
9
  include Import[:settings]
8
10
 
11
+ using Refinements::Binding
12
+
9
13
  DELEGATES = {asciidoc: Asciidoc.new, markdown: Markdown.new}.freeze
10
14
 
11
15
  def initialize(delegates: DELEGATES, **)
@@ -14,9 +18,7 @@ module Milestoner
14
18
  @default_format = settings.commit_format.to_sym
15
19
  end
16
20
 
17
- def call content, for: default_format
18
- delegates.fetch(binding.local_variable_get(:for)).call content
19
- end
21
+ def call(content, for: default_format) = delegates.fetch(binding[:for]).call content
20
22
 
21
23
  private
22
24
 
@@ -10,7 +10,11 @@ module Milestoner
10
10
  include Import[:git, :logger]
11
11
  include Dry::Monads[:result]
12
12
 
13
- def initialize(collector: Commits::Collector.new, builder: Builders::Stream.new, **)
13
+ def initialize(
14
+ collector: Commits::Collector.new,
15
+ builder: Builders::Stream.new(io: StringIO.new),
16
+ **
17
+ )
14
18
  @collector = collector
15
19
  @builder = builder
16
20
  super(**)
@@ -10,24 +10,33 @@
10
10
  <meta name="author" content="<%= project_author %>">
11
11
  <meta name="generator" content="<%= generator_label %> <%= generator_version %>">
12
12
 
13
- <link title="<%= project_label %>: Favorite Icon"
14
- rel="icon"
15
- href="https://alchemists.io/images/projects/milestoner/favicon.ico"
16
- sizes="32x32">
17
- <link title="<%= project_label %>: Apple Icon"
18
- rel="apple-touch-icon"
19
- href="https://alchemists.io/images/projects/milestoner/logo.png"
20
- type="image/png"
21
- sizes="200x200">
22
-
23
- <% if build_stylesheet %>
24
- <link title="<%= project_label %>: Stylesheet"
25
- rel="stylesheet"
26
- href="<%= build_stylesheet %>.css"
27
- type="text/css">
28
- <% end %>
29
-
30
- <script src="https://unpkg.com/alpinejs@3.14" defer></script>
13
+ <% if project_uri_icon %>
14
+ <link title="<%= project_label %>: Favorite Icon"
15
+ rel="icon"
16
+ href="<%= project_uri_icon %>"
17
+ sizes="32x32">
18
+ <% end %>
19
+
20
+ <% if project_uri_logo %>
21
+ <link title="<%= project_label %>: Apple Icon"
22
+ rel="apple-touch-icon"
23
+ href="<%= project_uri_logo %>"
24
+ type="image/png"
25
+ sizes="200x200">
26
+ <% end %>
27
+
28
+ <% if build_stylesheet %>
29
+ <link title="<%= project_label %>: Stylesheet"
30
+ rel="stylesheet"
31
+ href="<%= build_stylesheet %>.css"
32
+ type="text/css">
33
+ <% end %>
34
+
35
+ <script src="https://unpkg.com/alpinejs@3.14.1"
36
+ integrity="sha384-l8f0VcPi/M1iHPv8egOnY/15TDwqgbOR1anMIJWvU6nLRgZVLTLSaNqi/TOoT5Fh"
37
+ crossorigin="anonymous"
38
+ defer>
39
+ </script>
31
40
  </head>
32
41
 
33
42
  <body>
@@ -1,2 +1 @@
1
- <%= yield %>
2
- Generated by <%= generator_label %> <%= generator_version %>.
1
+ <%= yield %>Generated by <%= generator_label %> <%= generator_version %>.
@@ -4,8 +4,8 @@
4
4
  <%= tag.total_commits %>. <%= tag.total_files %>. <%= tag.total_deletions %>. <%= tag.total_insertions %>.
5
5
  <% else %>
6
6
  <%= project_label %> <%= tag.version %> (<%= tag.committed_date %>)
7
-
8
7
  <% if tag.version != project_version %>
8
+
9
9
  <%= tag.author.name %> | <%= tag.security %>
10
10
  <% end %>
11
11
 
@@ -10,16 +10,15 @@
10
10
  --color-cheese: hsl(51, 100%, 93%);
11
11
  --color-cloud: hsl(219, 100%, 93%);
12
12
  --color-ghost: hsl(171.4, 17.1%, 92%);
13
- --color-green: hsl(112.6, 85.6%, 46.3%);
13
+ --color-green: hsl(121, 73%, 35%);
14
14
  --color-grey: hsl(240, 7%, 97%);
15
- --color-sea: hsl(210, 24%, 15%);
16
15
  --color-ice: hsl(216, 100%, 98%);
17
16
  --color-major: hsl(7, 79%, 32%);
18
17
  --color-minor: hsl(221, 79%, 32%);
19
18
  --color-orange: hsl(24.8, 100%, 50.2%);
20
19
  --color-patch: hsl(156, 79%, 32%);
21
20
  --color-powder: hsl(0, 0%, 98%);
22
- --color-red: hsl(0, 100%, 50%);
21
+ --color-red: hsl(0, 84.1%, 44.5%);
23
22
  --color-slate: hsl(211, 23%, 41%);
24
23
  --color-smoke: hsl(229, 31%, 93%);
25
24
  --color-white: hsl(0, 0%, 100%);
data/milestoner.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "milestoner"
5
- spec.version = "18.0.1"
5
+ spec.version = "18.2.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/milestoner"
@@ -30,17 +30,17 @@ Gem::Specification.new do |spec|
30
30
  spec.add_dependency "core", "~> 1.3"
31
31
  spec.add_dependency "dry-monads", "~> 1.6"
32
32
  spec.add_dependency "dry-schema", "~> 1.13"
33
- spec.add_dependency "etcher", "~> 2.0"
33
+ spec.add_dependency "etcher", "~> 2.1"
34
34
  spec.add_dependency "gitt", "~> 3.6"
35
35
  spec.add_dependency "hanami-view", "~> 2.1"
36
36
  spec.add_dependency "infusible", "~> 3.8"
37
37
  spec.add_dependency "lode", "~> 1.4"
38
38
  spec.add_dependency "redcarpet", "~> 3.6"
39
- spec.add_dependency "refinements", "~> 12.5"
39
+ spec.add_dependency "refinements", "~> 12.7"
40
40
  spec.add_dependency "rss", "~> 0.3"
41
41
  spec.add_dependency "runcom", "~> 11.5"
42
42
  spec.add_dependency "sanitize", "~> 6.1"
43
- spec.add_dependency "sod", "~> 0.12"
43
+ spec.add_dependency "sod", "~> 0.14"
44
44
  spec.add_dependency "spek", "~> 3.0"
45
45
  spec.add_dependency "versionaire", "~> 13.0"
46
46
  spec.add_dependency "zeitwerk", "~> 2.6"
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: milestoner
3
3
  version: !ruby/object:Gem::Version
4
- version: 18.0.1
4
+ version: 18.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -35,7 +35,7 @@ cert_chain:
35
35
  3n5C8/6Zh9DYTkpcwPSuIfAga6wf4nXc9m6JAw8AuMLaiWN/r/2s4zJsUHYERJEu
36
36
  gZGm4JqtuSg8pYjPeIJxS960owq+SfuC+jxqmRA54BisFCv/0VOJi7tiJVY=
37
37
  -----END CERTIFICATE-----
38
- date: 2024-07-08 00:00:00.000000000 Z
38
+ date: 2024-08-11 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: asciidoctor
@@ -141,14 +141,14 @@ dependencies:
141
141
  requirements:
142
142
  - - "~>"
143
143
  - !ruby/object:Gem::Version
144
- version: '2.0'
144
+ version: '2.1'
145
145
  type: :runtime
146
146
  prerelease: false
147
147
  version_requirements: !ruby/object:Gem::Requirement
148
148
  requirements:
149
149
  - - "~>"
150
150
  - !ruby/object:Gem::Version
151
- version: '2.0'
151
+ version: '2.1'
152
152
  - !ruby/object:Gem::Dependency
153
153
  name: gitt
154
154
  requirement: !ruby/object:Gem::Requirement
@@ -225,14 +225,14 @@ dependencies:
225
225
  requirements:
226
226
  - - "~>"
227
227
  - !ruby/object:Gem::Version
228
- version: '12.5'
228
+ version: '12.7'
229
229
  type: :runtime
230
230
  prerelease: false
231
231
  version_requirements: !ruby/object:Gem::Requirement
232
232
  requirements:
233
233
  - - "~>"
234
234
  - !ruby/object:Gem::Version
235
- version: '12.5'
235
+ version: '12.7'
236
236
  - !ruby/object:Gem::Dependency
237
237
  name: rss
238
238
  requirement: !ruby/object:Gem::Requirement
@@ -281,14 +281,14 @@ dependencies:
281
281
  requirements:
282
282
  - - "~>"
283
283
  - !ruby/object:Gem::Version
284
- version: '0.12'
284
+ version: '0.14'
285
285
  type: :runtime
286
286
  prerelease: false
287
287
  version_requirements: !ruby/object:Gem::Requirement
288
288
  requirements:
289
289
  - - "~>"
290
290
  - !ruby/object:Gem::Version
291
- version: '0.12'
291
+ version: '0.14'
292
292
  - !ruby/object:Gem::Dependency
293
293
  name: spek
294
294
  requirement: !ruby/object:Gem::Requirement
@@ -485,7 +485,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
485
485
  - !ruby/object:Gem::Version
486
486
  version: '0'
487
487
  requirements: []
488
- rubygems_version: 3.5.14
488
+ rubygems_version: 3.5.17
489
489
  signing_key:
490
490
  specification_version: 4
491
491
  summary: A command line interface for automated Git repository milestones.
metadata.gz.sig CHANGED
Binary file