milestoner 19.2.0 → 19.3.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: 7d957f55958fe682de293955b8ae7d1762722654ab97323da41473e21a76c3b1
4
- data.tar.gz: ed92635b6e20f6dbfb0ef8c43f11368bff7114aac753c8057753414e95e2e055
3
+ metadata.gz: b1216fdfa3ee558e0f321b79ad864c5fdca540233896721aaa416841a061423c
4
+ data.tar.gz: 203a5d11b22360d123413129ba3a83ae6f93fc8cf44d09ccfb7f40f1cf2c5ecc
5
5
  SHA512:
6
- metadata.gz: 7f78eb0132c2c5ea28e8d456bbd438cc0536785d085234cbc55fb431f712df51387bfa72102b127929cee70aba359b6bc507a97241498382f02be1a930334cd9
7
- data.tar.gz: da79e4b9aa49da378d9e037799a85c63c66d5b9c743e1e0854157d9e525416eee21b4f24f65310b493984157ec2c61464c71e00d95c55c18575604ec8354c337
6
+ metadata.gz: 4394df1c89804ceafbbbe5b85e67239288430b23216bb251ec11f1bb00f67fee947d3b06cc1da6f3792e222453d6a986c154561390e1da04c74c38c32482f29b
7
+ data.tar.gz: b4769cd20edf13fea347875433974c6b510ec22aaa58c4b7d345685103e6e5e92a8a80ac823601f62ac71b54b23d346e0b35ffe2bf8b2ba5087729ef4b390887
checksums.yaml.gz.sig CHANGED
Binary file
data/README.adoc CHANGED
@@ -359,7 +359,7 @@ image:https://alchemists.io/images/projects/milestoner/screenshots/no_cache.png[
359
359
 
360
360
  === Build
361
361
 
362
- image:https://alchemists.io/images/projects/milestoner/screenshots/usage-build.png[Usage,width=787,height=675,role=focal_point]
362
+ image:https://alchemists.io/images/projects/milestoner/screenshots/usage-build.png[Usage,width=786,height=708,role=focal_point]
363
363
 
364
364
  The build command allows you to quickly build release notes to check the current status of your project or deploy a new milestone. By default, the build command uses either the default or custom configuration as documented in the _Configuration_ section above. This means, when using the defaults, you can immediately build the release notes for your project in a temporary directory:
365
365
 
@@ -40,6 +40,11 @@
40
40
  integrity="sha384-HGfztofotfshcF7+8n44JQL2oJmowVChPTg48S+jvZoztPfvwD79OC/LTtG6dMp+"
41
41
  crossorigin="anonymous">
42
42
  </script>
43
+
44
+ <script src="https://unpkg.com/htmx-select@0.0.0"
45
+ integrity="sha384-sHXxspXI+1G3Mb+k1zPcNdkBRL2Q+nKLcOtkbUPE0USxJFJtjf5pQpuykwTDAcPc"
46
+ crossorigin="anonymous">
47
+ </script>
43
48
  </head>
44
49
 
45
50
  <body class="milestoner">
@@ -1,14 +1,13 @@
1
1
  <details id="<%= commit.sha %>" class="row" x-bind:open="open">
2
2
  <summary class="summary <%= commit.kind %>">
3
- <div class="title">
4
- <img src="https://alchemists.io/images/projects/milestoner/icons/<%= commit.icon %>.png"
5
- alt="<%= commit.kind %>"
6
- class="icon"
7
- width="24"
8
- height="24"
9
- loading="lazy">
10
- <span class="subject"><%= commit.subject %></span>
11
- </div>
3
+ <img src="https://alchemists.io/images/projects/milestoner/icons/<%= commit.icon %>.png"
4
+ alt="<%= commit.kind %>"
5
+ class="icon"
6
+ width="24"
7
+ height="24"
8
+ loading="lazy">
9
+
10
+ <span class="subject"><%= commit.subject %></span>
12
11
 
13
12
  <a href="<%= commit.author.profile_url %>" class="author">
14
13
  <%= render :avatar, user: commit.author %>
@@ -1,6 +1,6 @@
1
1
  <section class="milestones">
2
2
  <h1 class="title">
3
- <a href="<%= project_uri_home %>" class="label"><%= project_label %></a> Versions
3
+ <a href="<%= project_uri_home %>" class="label"><%= project_label %></a>
4
4
  </h1>
5
5
 
6
6
  <p>All versions adhere to the <a href="https://alchemists.io/articles/strict_semantic_versioning">Strict Semantic Versioning</a> as enforced with <a href="https://alchemists.io/projects/versionaire">Versionaire</a> and automated by <a href="<%= generator_uri %>"><%= generator_label %></a>. Briefly, this means:</p>
@@ -11,21 +11,30 @@
11
11
  <li><strong>Patch</strong> (x.y.Z): Incremented for small, backwards compatible, bug fixes.</li>
12
12
  </ul>
13
13
 
14
- <ul class="list">
15
- <% tags.each do |tag| %>
16
- <li class="item">
17
- <a href="/<%= tag.version %>/"
18
- class="version"
19
- hx-get="/<%= tag.version %>/"
20
- hx-select=".milestone"
21
- hx-target=".milestones"
22
- hx-swap="outerHTML"
23
- hx-push-url="true">
24
- <%= tag.version %>
25
- </a>
14
+ <div class="selection fragment">
15
+ <label for="version" class="label">Version:</label>
26
16
 
27
- <span class="date"><%= tag.committed_date %></span>
28
- </li>
29
- <% end %>
30
- </ul>
17
+ <select id="version"
18
+ name="version"
19
+ class="versions"
20
+ hx-get=""
21
+ hx-trigger="change"
22
+ hx-select=".milestone"
23
+ hx-target=".milestones"
24
+ hx-swap="outerHTML"
25
+ hx-push-url="true"
26
+ hx-indicator=".spinner"
27
+ hx-ext="select">
28
+
29
+ <option value="" class="option">Select...</option>
30
+
31
+ <% tags.each do |tag| %>
32
+ <option value="<%= tag.version %>/" class="option">
33
+ <%= tag.version %> (<%= tag.committed_date %>)
34
+ </option>
35
+ <% end %>
36
+ </select>
37
+
38
+ <div class="spinner htmx-indicator"></div>
39
+ </div>
31
40
  </section>
@@ -13,5 +13,5 @@
13
13
  *<%= tag.total_commits %>. <%= tag.total_files %>. <%= tag.total_deletions %>. <%= tag.total_insertions %>.* +
14
14
  *<%= tag.total_duration %>.*
15
15
 
16
- link:<%= past.version %>/[Previous (<%= past.version %>)] | link:<%= future.version %>/[Next (<%= future.version %>)]
16
+ link:../<%= past.version %>/[Previous (<%= past.version %>)] | link:../<%= future.version %>/[Next (<%= future.version %>)]
17
17
  <% end %>
@@ -1,16 +1,21 @@
1
1
  <article class="milestone">
2
2
  <header class="header">
3
3
  <% if tag.index? %>
4
- <a href="../"
5
- class="root"
6
- hx-get="../"
7
- hx-select=".milestones"
8
- hx-trigger="click, keyup[key=='v'] from:body"
9
- hx-target=".milestone"
10
- hx-swap="outerHTML"
11
- hx-push-url="true">
12
- Versions
13
- </a>
4
+ <div class="fragment">
5
+ <a href="../"
6
+ class="root"
7
+ hx-get="../"
8
+ hx-select=".milestones"
9
+ hx-trigger="click, keyup[key=='v'] from:body"
10
+ hx-target=".milestone"
11
+ hx-swap="outerHTML"
12
+ hx-push-url="true"
13
+ hx-indicator=".index">
14
+ Versions
15
+ </a>
16
+
17
+ <div class="index spinner htmx-indicator"></div>
18
+ </div>
14
19
  <% end %>
15
20
 
16
21
  <h1 class="title">
@@ -71,19 +76,22 @@
71
76
  </p>
72
77
 
73
78
  <ul class="actions">
74
- <li>
75
- <a href="/<%= past.version %>/"
79
+ <li class="fragment">
80
+ <a href="../<%= past.version %>/"
76
81
  class="action"
77
82
  data-direction="previous"
78
- hx-get="/<%= past.version %>/"
83
+ hx-get="../<%= past.version %>/"
79
84
  hx-select=".milestone"
80
85
  hx-trigger="click, keyup[key=='ArrowLeft'] from:body"
81
86
  hx-target=".milestone"
82
87
  hx-swap="outerHTML"
83
- hx-push-url="true">
88
+ hx-push-url="true"
89
+ hx-indicator=".previous">
84
90
  Previous
85
91
  (<%= past.version %>)
86
92
  </a>
93
+
94
+ <div class="previous spinner htmx-indicator"></div>
87
95
  </li>
88
96
 
89
97
  <li>
@@ -100,16 +108,19 @@
100
108
  </div>
101
109
  </li>
102
110
 
103
- <li>
104
- <a href="/<%= future.version %>/"
111
+ <li class="fragment">
112
+ <div class="next spinner htmx-indicator"></div>
113
+
114
+ <a href="../<%= future.version %>/"
105
115
  class="action"
106
116
  data-direction="next"
107
- hx-get="/<%= future.version %>/"
117
+ hx-get="../<%= future.version %>/"
108
118
  hx-select=".milestone"
109
119
  hx-trigger="click, keyup[key=='ArrowRight'] from:body"
110
120
  hx-target=".milestone"
111
121
  hx-swap="outerHTML"
112
- hx-push-url="true">
122
+ hx-push-url="true"
123
+ hx-indicator=".next">
113
124
  Next
114
125
  (<%= future.version %>)
115
126
  </a>
@@ -12,5 +12,5 @@
12
12
  **<%= tag.total_commits %>. <%= tag.total_files %>. <%= tag.total_deletions %>. <%= tag.total_insertions %>.**
13
13
  **<%= tag.total_duration %>.**
14
14
 
15
- [Previous (<%= past.version %>)](<%= past.version %>/) | [Next (<%= future.version %>)](<%= future.version %>/)
15
+ [Previous (<%= past.version %>)](../<%= past.version %>/) | [Next (<%= future.version %>)](../<%= future.version %>/)
16
16
  <% end %>
@@ -1,3 +1,8 @@
1
+ @keyframes spin {
2
+ 0% { transform: rotate(0deg); }
3
+ 100% { transform: rotate(360deg); }
4
+ }
5
+
1
6
  /* Rouge (https://rouge.jneen.net) */
2
7
  .rouge.highlight {
3
8
  --color-berry: hsl(240, 18%, 40%);
@@ -479,6 +484,21 @@
479
484
  }
480
485
  }
481
486
 
487
+ .spinner {
488
+ animation: spin 1.5s linear infinite;
489
+ border-radius: 50%;
490
+ border: 0.3rem solid var(--color-grey);
491
+ border-top: 0.3rem solid var(--color-green);
492
+ height: 1rem;
493
+ width: 1rem;
494
+ }
495
+
496
+ .fragment {
497
+ align-items: center;
498
+ display: flex;
499
+ gap: 0.5rem;
500
+ }
501
+
482
502
  .toggle {
483
503
  background-color: var(--color-white);
484
504
  border: 0.15rem solid var(--color-smoke);
@@ -500,24 +520,20 @@
500
520
  flex-direction: column;
501
521
  margin: 0 12vw;
502
522
 
503
- .list {
504
- background-color: var(--color-grey);
505
- border: 0.1rem solid var(--color-black);
506
- border-radius: 0.5rem;
507
- display: flex;
508
- gap: 0.5rem;
509
- flex-direction: column;
510
- margin: 1rem 0;
511
- padding: 1rem;
523
+ .label {
524
+ font-weight: 600;
525
+ }
512
526
 
513
- .item {
514
- flex-wrap: wrap;
515
- justify-content: space-between;
516
- }
527
+ .selection {
528
+ margin: 1rem 0 0.5rem 0;
517
529
  }
518
530
 
519
- .date {
520
- color: var(--color-slate);
531
+ .versions {
532
+ background-color: var(--color-ice);
533
+ border-radius: 0.5rem;
534
+ border: 0.15rem solid var(--color-black);
535
+ font-size: 1rem;
536
+ padding: 0.2rem 0.5rem;
521
537
  }
522
538
  }
523
539
 
@@ -551,21 +567,6 @@
551
567
  color: var(--color-white);
552
568
  }
553
569
 
554
- .columns {
555
- background-color: var(--color-black);
556
- border-top-left-radius: 0.5rem;
557
- border-top-right-radius: 0.5rem;
558
- color: var(--color-white);
559
- display: grid;
560
- grid-template: 1fr / 4.7fr 1fr 1fr 1fr 1fr 1fr;
561
- padding: 0.3rem 0;
562
-
563
- .label {
564
- font-weight: 600;
565
- text-align: center;
566
- }
567
- }
568
-
569
570
  .header {
570
571
  align-items: center;
571
572
  display: grid;
@@ -621,7 +622,6 @@
621
622
  }
622
623
 
623
624
  .owner {
624
- align-items: center;
625
625
  display: flex;
626
626
  gap: 0.5rem;
627
627
  justify-content: center;
@@ -634,6 +634,27 @@
634
634
  }
635
635
  }
636
636
 
637
+ .columns {
638
+ background-color: var(--color-black);
639
+ border-top-left-radius: 0.5rem;
640
+ border-top-right-radius: 0.5rem;
641
+ color: var(--color-white);
642
+ display: none;
643
+ padding: 0.3rem 0;
644
+
645
+ @media (width >= 700px) {
646
+ display: grid;
647
+ grid-template: 1fr / 4.7fr repeat(5, 1fr);
648
+ }
649
+
650
+ .label {
651
+ font-weight: 600;
652
+ overflow: hidden;
653
+ texdt-overflow: ellipsis;
654
+ text-align: center;
655
+ }
656
+ }
657
+
637
658
  .row {
638
659
  .label {
639
660
  font-weight: 600;
@@ -650,18 +671,22 @@
650
671
  border-radius: 0.5rem;
651
672
  display: grid;
652
673
  gap: 0 1rem;
653
- grid-template: 1fr / auto 5fr 1fr 1fr 1fr 1fr 1fr;
674
+ grid-template: 1fr 1fr / auto auto auto repeat(5, 1fr);
675
+ grid-template-areas:
676
+ "toggle icon subject subject subject subject subject subject"
677
+ "toggle icon author files lines issue review review";
654
678
  padding: 0.15rem 0;
655
679
  margin: 0.25rem 0 0 0;
656
680
 
657
681
  &::-webkit-details-marker {
658
- display:none;
682
+ display: none;
659
683
  }
660
684
 
661
685
  &::before {
662
686
  color: var(--color-carbon);
663
- content: "\25B6";
687
+ content: "\25B6\FE0E";
664
688
  cursor: pointer;
689
+ grid-area: toggle;
665
690
  width: 0.5rem;
666
691
  }
667
692
 
@@ -690,10 +715,25 @@
690
715
  border-radius: 0.5rem;
691
716
  }
692
717
 
693
- .title {
694
- align-items: center;
695
- display: flex;
696
- gap: 0 0.5rem;
718
+ @media (width >= 700px) {
719
+ grid-template: 1fr / auto auto 5fr repeat(5, 1fr);
720
+ grid-template-areas: "toggle icon subject author files lines issue review";
721
+ }
722
+
723
+ .icon {
724
+ grid-area: icon;
725
+ }
726
+
727
+ .subject {
728
+ grid-area: subject;
729
+ }
730
+
731
+ .author {
732
+ grid-area: author;
733
+ }
734
+
735
+ .files {
736
+ grid-area: files;
697
737
  }
698
738
 
699
739
  .author,
@@ -709,6 +749,13 @@
709
749
  }
710
750
 
711
751
  .lines {
752
+ grid-area: lines;
753
+ white-space: nowrap;
754
+
755
+ @media (width >= 700px) {
756
+ white-space: normal;
757
+ }
758
+
712
759
  .deletions {
713
760
  color: var(--color-green);
714
761
  }
@@ -717,6 +764,14 @@
717
764
  color: var(--color-red);
718
765
  }
719
766
  }
767
+
768
+ .issue {
769
+ grid-area: issue;
770
+ }
771
+
772
+ .review {
773
+ grid-area: review;
774
+ }
720
775
  }
721
776
 
722
777
  .details {
@@ -736,7 +791,6 @@
736
791
  }
737
792
 
738
793
  .tag {
739
- align-self: stretch;
740
794
  border-radius: 0.3rem;
741
795
  grid-area: tag;
742
796
  margin: 1rem 0;
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 = "19.2.0"
5
+ spec.version = "19.3.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/milestoner"
data.tar.gz.sig CHANGED
@@ -1,3 +1,2 @@
1
- �0hU���i�&(xD���Ď�ljLs\��XZ�\�v��_���)|�?�fEr��xdXV��v�^{/�UK��g�r�;C��wRO��\���m�+��؛�� ��\8Z����*yuKx0*�#Δ��
2
- A/�Dc-b�y���ɾ%{��d)�-> �ρO��Q��8i)Q8j��E���{��!G#�ٵ�����J9�&6� b�����,(ݮO'OuWuUmR4g��^�� `@�J��\��Z~F3c5r\�z,=��[�9�IV`��S&���c�M��
3
- #o⧩5 _ͯ���Z�_���;��Pc]_�� |��<�����S������1sj�/�k���pO ;�V�O���T�쯑d�= �s'
1
+ ����]�(0��Ub����}����zո� Kq5��fW�OҺ~rd)��AL�;Mg�u3��`���� �������Q�Բ��>��C��6�B��"В<z1�=���>����X�̀q�q��I�x��ߌrL����zJ٥�F���A��'��� +���9�ar���oDxg"�R]*�AeQU|��͊�U!W��t׊�5}���*=]�3
2
+ ��Y��3=$U��EFY���/]��� ��\��4�˱؎ .���6��@D��AMZg�xY��R�èpy$ I�&����{q!��KCE��saiWS��ճV}MHRh�y'�-�a&�9�����:����r�x3]h��̆�����l�ʮ�0��
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: 19.2.0
4
+ version: 19.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -34,7 +34,7 @@ cert_chain:
34
34
  3n5C8/6Zh9DYTkpcwPSuIfAga6wf4nXc9m6JAw8AuMLaiWN/r/2s4zJsUHYERJEu
35
35
  gZGm4JqtuSg8pYjPeIJxS960owq+SfuC+jxqmRA54BisFCv/0VOJi7tiJVY=
36
36
  -----END CERTIFICATE-----
37
- date: 2025-02-06 00:00:00.000000000 Z
37
+ date: 2025-02-20 00:00:00.000000000 Z
38
38
  dependencies:
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: asciidoctor
@@ -555,7 +555,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
555
555
  - !ruby/object:Gem::Version
556
556
  version: '0'
557
557
  requirements: []
558
- rubygems_version: 3.6.3
558
+ rubygems_version: 3.6.4
559
559
  specification_version: 4
560
560
  summary: A command line interface for automated Git repository milestones.
561
561
  test_files: []
metadata.gz.sig CHANGED
Binary file