hoe-halostatue 2.1.1 → 2.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '09d09b45270163489fd36ade505dcb66cf044390f8d9b63aea69cc49081810c5'
4
- data.tar.gz: 9d8446c649e176013cb993e7117d4ece92f76b206484a7978db68332d2942182
3
+ metadata.gz: c93b2f03ae032c392bc6856ffbd2d06a350d631e3ff859d100e613c289bb57ce
4
+ data.tar.gz: 64031107e56a836f7546668403e47920f7a90545e921994e751e8dda0a0e1557
5
5
  SHA512:
6
- metadata.gz: 947cba8ab26ebdd6aa08056ebd951bdfa8e19fa59c33ac68d9fb2ec4573d04c85f655e9e4aee1ae951461233c42e92f4d227968e80734155e2cb97dc12685287
7
- data.tar.gz: bee5f811aea36c6123bb017555eb3c752760d7a52a18a78e8035242cfb3fa80d90bf9b6dd9a50aab6c57e9cb59c3b042ebe4782019a2e34af546ede07f55177c
6
+ metadata.gz: c8445ded0b456a5bac27a042c44f33c867a4055bf8df4116cbe0c9b2f24fa340eb90856eea7c4699c115a90e9121ea303d98cd3804418735d89560441cbcb028
7
+ data.tar.gz: 99d4f6c97b6fb790694259a44d1f57f55e7fcba833a8cf332807faae8a20f13780e687bd31733580eaae815194633f3ebfc405c6f0ee2931e2110bb5de9a4a7a
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # hoe-halostatue Changelog
2
2
 
3
+ ## 2.1.2 / 2026-01-17
4
+
5
+ - Simplified several functions around git execution.
6
+
3
7
  ## 2.1.1 / 2025-06-26
4
8
 
5
9
  - Actually include strict warnings support files.
data/CODE_OF_CONDUCT.md CHANGED
@@ -1,130 +1,166 @@
1
- # Contributor Covenant Code of Conduct
1
+ # Contributor Covenant 3.0 Code of Conduct
2
2
 
3
3
  ## Our Pledge
4
4
 
5
- We as members, contributors, and leaders pledge to make participation in our
6
- community a harassment-free experience for everyone, regardless of age, body
7
- size, visible or invisible disability, ethnicity, sex characteristics, gender
8
- identity and expression, level of experience, education, socio-economic status,
9
- nationality, personal appearance, race, caste, color, religion, or sexual
10
- identity and orientation.
11
-
12
- We pledge to act and interact in ways that contribute to an open, welcoming,
13
- diverse, inclusive, and healthy community.
14
-
15
- ## Our Standards
16
-
17
- Examples of behavior that contributes to a positive environment for our
18
- community include:
19
-
20
- - Demonstrating empathy and kindness toward other people
21
- - Being respectful of differing opinions, viewpoints, and experiences
22
- - Giving and gracefully accepting constructive feedback
23
- - Accepting responsibility and apologizing to those affected by our mistakes,
24
- and learning from the experience
25
- - Focusing on what is best not just for us as individuals, but for the overall
26
- community
27
-
28
- Examples of unacceptable behavior include:
29
-
30
- - The use of sexualized language or imagery, and sexual attention or advances of
31
- any kind
32
- - Trolling, insulting or derogatory comments, and personal or political attacks
33
- - Public or private harassment
34
- - Publishing others' private information, such as a physical or email address,
35
- without their explicit permission
36
- - Other conduct which could reasonably be considered inappropriate in a
37
- professional setting
38
-
39
- ## Enforcement Responsibilities
40
-
41
- Community leaders are responsible for clarifying and enforcing our standards of
42
- acceptable behavior and will take appropriate and fair corrective action in
43
- response to any behavior that they deem inappropriate, threatening, offensive,
44
- or harmful.
45
-
46
- Community leaders have the right and responsibility to remove, edit, or reject
47
- comments, commits, code, wiki edits, issues, and other contributions that are
48
- not aligned to this Code of Conduct, and will communicate reasons for moderation
49
- decisions when appropriate.
5
+ We pledge to make our community welcoming, safe, and equitable for all.
6
+
7
+ We are committed to fostering an environment that respects and promotes the
8
+ dignity, rights, and contributions of all individuals, regardless of
9
+ characteristics including race, ethnicity, caste, color, age, physical
10
+ characteristics, neurodiversity, disability, sex or gender, gender identity or
11
+ expression, sexual orientation, language, philosophy or religion, national or
12
+ social origin, socio-economic position, level of education, or other status. The
13
+ same privileges of participation are extended to everyone who participates in
14
+ good faith and in accordance with this Covenant.
15
+
16
+ ## Encouraged Behaviors
17
+
18
+ While acknowledging differences in social norms, we all strive to meet our
19
+ community's expectations for positive behavior. We also understand that our
20
+ words and actions may be interpreted differently than we intend based on
21
+ culture, background, or native language.
22
+
23
+ With these considerations in mind, we agree to behave mindfully toward each
24
+ other and act in ways that center our shared values, including:
25
+
26
+ 1. Respecting the **purpose of our community**, our activities, and our ways of
27
+ gathering.
28
+ 2. Engaging **kindly and honestly** with others.
29
+ 3. Respecting **different viewpoints** and experiences.
30
+ 4. **Taking responsibility** for our actions and contributions.
31
+ 5. Gracefully giving and accepting **constructive feedback**.
32
+ 6. Committing to **repairing harm** when it occurs.
33
+ 7. Behaving in other ways that promote and sustain the **well-being of our
34
+ community**.
35
+
36
+ ## Restricted Behaviors
37
+
38
+ We agree to restrict the following behaviors in our community. Instances,
39
+ threats, and promotion of these behaviors are violations of this Code of
40
+ Conduct.
41
+
42
+ 1. **Harassment.** Violating explicitly expressed boundaries or engaging in
43
+ unnecessary personal attention after any clear request to stop.
44
+ 2. **Character attacks.** Making insulting, demeaning, or pejorative comments
45
+ directed at a community member or group of people.
46
+ 3. **Stereotyping or discrimination.** Characterizing anyone’s personality or
47
+ behavior on the basis of immutable identities or traits.
48
+ 4. **Sexualization.** Behaving in a way that would generally be considered
49
+ inappropriately intimate in the context or purpose of the community.
50
+ 5. **Violating confidentiality**. Sharing or acting on someone's personal or
51
+ private information without their permission.
52
+ 6. **Endangerment.** Causing, encouraging, or threatening violence or other harm
53
+ toward any person or group.
54
+ 7. Behaving in other ways that **threaten the well-being** of our community.
55
+
56
+ ### Other Restrictions
57
+
58
+ 1. **Misleading identity.** Impersonating someone else for any reason, or
59
+ pretending to be someone else to evade enforcement actions.
60
+ 2. **Failing to credit sources.** Not properly crediting the sources of content
61
+ you contribute.
62
+ 3. **Promotional materials**. Sharing marketing or other commercial content in a
63
+ way that is outside the norms of the community.
64
+ 4. **Irresponsible communication.** Failing to responsibly present content which
65
+ includes, links or describes any other restricted behaviors.
66
+
67
+ ## Reporting an Issue
68
+
69
+ Tensions can occur between community members even when they are trying their
70
+ best to collaborate. Not every conflict represents a code of conduct violation,
71
+ and this Code of Conduct reinforces encouraged behaviors and norms that can help
72
+ avoid conflicts and minimize harm.
73
+
74
+ When an incident does occur, it is important to report it promptly. To report a
75
+ possible violation, create a [private security advisory][advisory] — violations
76
+ of this code of conduct are considered security vulnerabilities.
77
+
78
+ Community Moderators take reports of violations seriously and will make every
79
+ effort to respond in a timely manner. They will investigate all reports of code
80
+ of conduct violations, reviewing messages, logs, and recordings, or interviewing
81
+ witnesses and other participants. Community Moderators will keep investigation
82
+ and enforcement actions as transparent as possible while prioritizing safety and
83
+ confidentiality. In order to honor these values, enforcement actions are carried
84
+ out in private with the involved parties, but communicating to the whole
85
+ community may be part of a mutually agreed upon resolution.
86
+
87
+ ## Addressing and Repairing Harm
88
+
89
+ If an investigation by the Community Moderators finds that this Code of Conduct
90
+ has been violated, the following enforcement ladder may be used to determine how
91
+ best to repair harm, based on the incident's impact on the individuals involved
92
+ and the community as a whole. Depending on the severity of a violation, lower
93
+ rungs on the ladder may be skipped.
94
+
95
+ 1. Warning
96
+ 1. Event: A violation involving a single incident or series of incidents.
97
+ 2. Consequence: A private, written warning from the Community Moderators.
98
+ 3. Repair: Examples of repair include a private written apology,
99
+ acknowledgement of responsibility, and seeking clarification on
100
+ expectations.
101
+
102
+ 2. Temporarily Limited Activities
103
+ 1. Event: A repeated incidence of a violation that previously resulted in a
104
+ warning, or the first incidence of a more serious violation.
105
+ 2. Consequence: A private, written warning with a time-limited cooldown
106
+ period designed to underscore the seriousness of the situation and give
107
+ the community members involved time to process the incident. The cooldown
108
+ period may be limited to particular communication channels or interactions
109
+ with particular community members.
110
+ 3. Repair: Examples of repair may include making an apology, using the
111
+ cooldown period to reflect on actions and impact, and being thoughtful
112
+ about re-entering community spaces after the period is over.
113
+
114
+ 3. Temporary Suspension
115
+ 1. Event: A pattern of repeated violation which the Community Moderators have
116
+ tried to address with warnings, or a single serious violation.
117
+ 2. Consequence: A private written warning with conditions for return from
118
+ suspension. In general, temporary suspensions give the person being
119
+ suspended time to reflect upon their behavior and possible corrective
120
+ actions.
121
+ 3. Repair: Examples of repair include respecting the spirit of the
122
+ suspension, meeting the specified conditions for return, and being
123
+ thoughtful about how to reintegrate with the community when the suspension
124
+ is lifted.
125
+
126
+ 4. Permanent Ban
127
+ 1. Event: A pattern of repeated code of conduct violations that other steps
128
+ on the ladder have failed to resolve, or a violation so serious that the
129
+ Community Moderators determine there is no way to keep the community safe
130
+ with this person as a member.
131
+ 2. Consequence: Access to all community spaces, tools, and communication
132
+ channels is removed. In general, permanent bans should be rarely used,
133
+ should have strong reasoning behind them, and should only be resorted to
134
+ if working through other remedies has failed to change the behavior.
135
+ 3. Repair: There is no possible repair in cases of this severity.
136
+
137
+ This enforcement ladder is intended as a guideline. It does not limit the
138
+ ability of Community Managers to use their discretion and judgment, in keeping
139
+ with the best interests of our community.
50
140
 
51
141
  ## Scope
52
142
 
53
143
  This Code of Conduct applies within all community spaces, and also applies when
54
- an individual is officially representing the community in public spaces.
55
- Examples of representing our community include using an official email address,
56
- posting via an official social media account, or acting as an appointed
144
+ an individual is officially representing the community in public or other
145
+ spaces. Examples of representing our community include using an official email
146
+ address, posting via an official social media account, or acting as an appointed
57
147
  representative at an online or offline event.
58
148
 
59
- ## Enforcement
60
-
61
- Instances of abusive, harassing, or otherwise unacceptable behavior may be
62
- privately reported to the community leaders responsible for enforcement as a
63
- [security vulnerability][security vulnerability]. All complaints will be
64
- reviewed and investigated promptly and fairly.
65
-
66
- All community leaders are obligated to respect the privacy and security of the
67
- reporter of any incident.
68
-
69
- ## Enforcement Guidelines
70
-
71
- Community leaders will follow these Community Impact Guidelines in determining
72
- the consequences for any action they deem in violation of this Code of Conduct:
73
-
74
- ### 1. Correction
75
-
76
- **Community Impact**: Use of inappropriate language or other behavior deemed
77
- unprofessional or unwelcome in the community.
78
-
79
- **Consequence**: A private, written warning from community leaders, providing
80
- clarity around the nature of the violation and an explanation of why the
81
- behavior was inappropriate. A public apology may be requested.
82
-
83
- ### 2. Warning
84
-
85
- **Community Impact**: A violation through a single incident or series of
86
- actions.
87
-
88
- **Consequence**: A warning with consequences for continued behavior. No
89
- interaction with the people involved, including unsolicited interaction with
90
- those enforcing the Code of Conduct, for a specified period of time. This
91
- includes avoiding interactions in community spaces as well as external channels
92
- like social media. Violating these terms may lead to a temporary or permanent
93
- ban.
94
-
95
- ### 3. Temporary Ban
96
-
97
- **Community Impact**: A serious violation of community standards, including
98
- sustained inappropriate behavior.
99
-
100
- **Consequence**: A temporary ban from any sort of interaction or public
101
- communication with the community for a specified period of time. No public or
102
- private interaction with the people involved, including unsolicited interaction
103
- with those enforcing the Code of Conduct, is allowed during this period.
104
- Violating these terms may lead to a permanent ban.
105
-
106
- ### 4. Permanent Ban
107
-
108
- **Community Impact**: Demonstrating a pattern of violation of community
109
- standards, including sustained inappropriate behavior, harassment of an
110
- individual, or aggression toward or disparagement of classes of individuals.
111
-
112
- **Consequence**: A permanent ban from any sort of public interaction within the
113
- community.
114
-
115
149
  ## Attribution
116
150
 
117
- This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118
- version 2.1, available at
119
- <https://www.contributor-covenant.org/version/2/1/code_of_conduct.html>.
151
+ This Code of Conduct is adapted from the Contributor Covenant, version 3.0,
152
+ permanently available at <https://www.contributor-covenant.org/version/3/0/>.
120
153
 
121
- Community Impact Guidelines were inspired by
122
- [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
154
+ Contributor Covenant is stewarded by the Organization for Ethical Source and
155
+ licensed under CC BY-SA 4.0. To view a copy of this license, visit
156
+ <https://creativecommons.org/licenses/by-sa/4.0/>.
123
157
 
124
- For answers to common questions about this code of conduct, see the FAQ at
125
- <https://www.contributor-covenant.org/faq>. Translations are available at
126
- <https://www.contributor-covenant.org/translations>.
158
+ For answers to common questions about Contributor Covenant, see the FAQ at
159
+ <https://www.contributor-covenant.org/faq>. Translations are provided at
160
+ <https://www.contributor-covenant.org/translations>. Additional enforcement and
161
+ community guideline resources can be found at
162
+ <https://www.contributor-covenant.org/resources>. The enforcement ladder was
163
+ inspired by the work of [Mozilla’s code of conduct team][inclusion].
127
164
 
128
- [Mozilla CoC]: https://github.com/mozilla/diversity
129
- [homepage]: https://www.contributor-covenant.org
130
- [security vulnerability]: https://github.com/halostatue/hoe-halostatue/security/advisories/new
165
+ [advisory]: https://github.com/halostatue/hoe-halostatue/security/advisories/new
166
+ [inclusion]: https://github.com/mozilla/inclusion
data/CONTRIBUTING.md CHANGED
@@ -1,35 +1,124 @@
1
1
  # Contributing
2
2
 
3
- I value any contribution to Hoe::Halostatue you can provide: a bug report, a
4
- feature request, or code contributions. There are a few guidelines for
5
- contributing to Hoe::Halostatue:
6
-
7
- - Match my coding style.
8
- - Use a thoughtfully-named topic branch that contains your change. Rebase your
9
- commits into logical chunks as necessary.
10
- - Use [quality commit messages][quality commit messages].
11
- - Do not change the version number; when your patch is accepted and a release is
12
- made, the version will be updated at that point.
13
- - Submit a GitHub pull request with your changes.
14
- - New or changed behaviours require appropriate documentation.
15
-
16
- Hoe::Halostatue uses Ryan Davis's [Hoe][Hoe] to manage the release process, and
17
- it adds a number of rake tasks.
18
-
19
- ## Workflow
20
-
21
- Here's the most direct way to get your work merged into the project:
22
-
23
- - Fork the project.
24
- - Clone your fork (`git clone git://github.com/<username>/hoe-halostatue.git`).
25
- - Create a topic branch to contain your change
26
- (`git checkout -b my_awesome_feature`).
27
- - Hack away, add tests. Not necessarily in that order.
28
- - Make sure everything still passes by running `rake`.
29
- - If necessary, rebase your commits into logical chunks, without errors.
30
- - Push the branch up (`git push origin my_awesome_feature`).
31
- - Create a pull request against halostatue/hoe-halostatue and describe what your
32
- change does and the why you think it should be merged.
3
+ Contribution to hoe-halostatue is encouraged: bug reports, feature requests, or
4
+ code contributions. New features should be proposed and discussed in an
5
+ [issue][issues].
33
6
 
7
+ Before contributing patches, please read the [Licence](./LICENCE.md).
8
+
9
+ hoe-halostatue is governed under the
10
+ [Contributor Covenant Code of Conduct][cccoc].
11
+
12
+ ## Code Guidelines
13
+
14
+ I have several guidelines to contributing code through pull requests:
15
+
16
+ - All code changes require tests. In most cases, this will be added or updated
17
+ unit tests. I use [Minitest][minitest].
18
+
19
+ - I use code formatters, static analysis tools, and linting to ensure consistent
20
+ styles and formatting. There should be no warning output from test run
21
+ processes. I use [Standard Ruby][standardrb].
22
+
23
+ - Proposed changes should be on a thoughtfully-named topic branch and organized
24
+ into logical commit chunks as appropriate.
25
+
26
+ - Use [Conventional Commits][conventional] with my
27
+ [conventions](#commit-conventions).
28
+
29
+ - Versions must not be updated in pull requests unless otherwise directed. This
30
+ means that you must not:
31
+
32
+ - Modify `VERSION` in `lib/hoe/halostatue/version.rb`. When your patch is
33
+ accepted and a release is made, the version will be updated at that point.
34
+
35
+ - Modify `hoe-halostatue.gemspec`; it is a generated file. (You _may_ use
36
+ `rake gemspec` to regenerate it if your change involves metadata related to
37
+ gem itself).
38
+
39
+ - Modify the `Gemfile`.
40
+
41
+ - Documentation should be added or updated as appropriate for new or updated
42
+ functionality. The documentation is RDoc; hoe-halostatue does not use
43
+ extensions that may be present in alternative documentation generators.
44
+
45
+ - All GitHub Actions checks marked as required must pass before a pull request
46
+ may be accepted and merged.
47
+
48
+ - Add your name or GitHub handle to `CONTRIBUTORS.md` and a record in the
49
+ `CHANGELOG.md` as a separate commit from your main change. (Follow the style
50
+ in the `CHANGELOG.md` and provide a link to your PR.)
51
+
52
+ - Include your DCO sign-off in each commit message (see [LICENCE](LICENCE.md)).
53
+
54
+ ## AI Contribution Policy
55
+
56
+ hoe-halostatue is a library of intentional decisions (some of them possibly even
57
+ wrong). It is extremely important that contributions of any sort be well
58
+ understood by the submitter and that the developer can attest to the
59
+ [Developer Certificate of Origin][dco] for each pull request (see
60
+ [LICENCE](LICENCE.md)).
61
+
62
+ Any contribution (bug, feature request, or pull request) that uses undeclared AI
63
+ output will be rejected.
64
+
65
+ ## Test Dependencies
66
+
67
+ hoe-halostatue naturally uses Ryan Davis's [Hoe][Hoe] to manage the release
68
+ process, and it adds a number of rake tasks. You will mostly be interested in
69
+ `rake`, which runs the tests the same way that `rake test` will do.
70
+
71
+ To assist with the installation of the development dependencies for
72
+ hoe-halostatue, I have provided the simplest possible Gemfile pointing to the
73
+ (generated) `hoe-halostatue.gemspec` file. This will permit you to do
74
+ `bundle install` to get the development dependencies.
75
+
76
+ You can run tests with code coverage analysis by running `rake coverage`.
77
+
78
+ ## Commit Conventions
79
+
80
+ hoe-halostatue has adopted a variation of the Conventional Commits format for
81
+ commit messages. The following types are permitted:
82
+
83
+ | Type | Purpose |
84
+ | ------- | ----------------------------------------------------- |
85
+ | `feat` | A new feature |
86
+ | `fix` | A bug fix |
87
+ | `chore` | A code change that is neither a bug fix nor a feature |
88
+ | `docs` | Documentation updates |
89
+ | `deps` | Dependency updates, including GitHub Actions. |
90
+
91
+ I encourage the use of [Tim Pope's][tpope-qcm] or [Chris Beam's][cbeams]
92
+ guidelines on the writing of commit messages
93
+
94
+ I require the use of [git][trailers1] [trailers][trailers2] for specific
95
+ additional metadata and strongly encourage it for others. The conditionally
96
+ required metadata trailers are:
97
+
98
+ - `Breaking-Change`: if the change is a breaking change. **Do not** use the
99
+ shorthand form (`feat!(scope)`) or `BREAKING CHANGE`.
100
+
101
+ - `Signed-off-by`: this is required for all developers except me, as outlined in
102
+ the [Licence](./LICENCE.md#developer-certificate-of-origin).
103
+
104
+ - `Fixes` or `Resolves`: If a change fixes one or more open [issues][issues],
105
+ that issue must be included in the `Fixes` or `Resolves` trailer. Multiple
106
+ issues should be listed comma separated in the same trailer:
107
+ `Fixes: #1, #5, #7`, but _may_ appear in separate trailers. While both `Fixes`
108
+ and `Resolves` are synonyms, only _one_ should be used in a given commit or
109
+ pull request.
110
+
111
+ - `Related to`: If a change does not fix an issue, those issue references should
112
+ be included in this trailer.
113
+
114
+ [cbeams]: https://cbea.ms/git-commit/
115
+ [cccoc]: ./CODE_OF_CONDUCT.md
116
+ [conventional]: https://www.conventionalcommits.org/en/v1.0.0/
117
+ [dco]: licences/dco.txt
34
118
  [hoe]: https://github.com/seattlerb/hoe
35
- [quality commit messages]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
119
+ [issues]: https://github.com/halostatue/hoe-halostatue/issues
120
+ [minitest]: https://github.com/seattlerb/minitest
121
+ [standardrb]: https://github.com/standardrb/standard
122
+ [tpope-qcm]: https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
123
+ [trailers1]: https://git-scm.com/docs/git-interpret-trailers
124
+ [trailers2]: https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---trailerlttokengtltvaluegt
data/LICENCE.md CHANGED
@@ -1,13 +1,15 @@
1
- ## Licence
1
+ # Licence
2
2
 
3
- Hoe::Halostatue is free software available under the MIT licence.
3
+ - SPDX-License-Identifier: [MIT][mit]
4
4
 
5
- Copyright 2022-2025 Austin Ziegler (halostatue@gmail.com)
5
+ - Copyright 2022-2025 Austin Ziegler. Portions copyright 2009 John Barnette.
6
6
 
7
- Portions copyright 2009 John Barnette
7
+ The software in this repository is made available under the MIT license.
8
+
9
+ ## MIT License
8
10
 
9
11
  Permission is hereby granted, free of charge, to any person obtaining a copy of
10
- this software and associated documentation files (the 'Software'), to deal in
12
+ this software and associated documentation files (the "Software"), to deal in
11
13
  the Software without restriction, including without limitation the rights to
12
14
  use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
13
15
  the Software, and to permit persons to whom the Software is furnished to do so,
@@ -16,9 +18,30 @@ subject to the following conditions:
16
18
  The above copyright notice and this permission notice shall be included in all
17
19
  copies or substantial portions of the Software.
18
20
 
19
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
22
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
21
23
  FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
22
24
  COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
23
25
  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
24
26
  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27
+
28
+ ## Developer Certificate of Origin
29
+
30
+ All contributors **must** certify they are willing and able to provide their
31
+ contributions under the terms of this project's licences with the certification
32
+ of the [Developer Certificate of Origin (Version 1.1)](licences/dco.txt).
33
+
34
+ Such certification is provided by ensuring that a `Signed-off-by`
35
+ [commit trailer][trailer] is present on every commit:
36
+
37
+ Signed-off-by: FirstName LastName <email@example.org>
38
+
39
+ The `Signed-off-by` trailer can be automatically added by git with the `-s` or
40
+ `--signoff` option on `git commit`:
41
+
42
+ ```sh
43
+ git commit --signoff
44
+ ```
45
+
46
+ [mit]: https://spdx.org/licenses/MIT.html
47
+ [trailer]: https://git-scm.com/docs/git-interpret-trailers
data/Manifest.txt CHANGED
@@ -10,3 +10,4 @@ SECURITY.md
10
10
  lib/hoe/halostatue.rb
11
11
  lib/hoe/halostatue/strict_warnings.rb
12
12
  lib/hoe/halostatue/version.rb
13
+ licences/dco.txt
data/README.md CHANGED
@@ -41,9 +41,9 @@ automated release support.
41
41
  ### Improved Metadata URL Parsing
42
42
 
43
43
  Hoe::Halostatue provides an improved implementation for `Hoe#parse_urls`. The
44
- expected format is more or less the same, but accepts any left-aligned Markdown
45
- list (beginning with `-`, `+`, or `*`) and handles lists that wrap lines (such
46
- as the `changelog` entry at the top of this file).
44
+ expected format is more or less the same, but accepts any left-aligned unordered
45
+ Markdown list (beginning with `-`, `+`, or `*`) and handles lists that wrap
46
+ lines (such as the `changelog` entry at the top of this file).
47
47
 
48
48
  It is more strict than the default `Hoe#parse_urls` because it only accepts the
49
49
  known aliases for the various RubyGems URI meta keys.
@@ -126,7 +126,7 @@ In the following example with no other configuration, a `v1.0.0.beta.1` tag will
126
126
  be created and pushed to the `origin` remote.
127
127
 
128
128
  ```console
129
- $ rake release VERSION=1.0.0 PRERELEASE=beta.1
129
+ $ rake git:tag VERSION=1.0.0 PRERELEASE=beta.1
130
130
  ```
131
131
 
132
132
  The tag prefix can be with `self.git_release_tag_prefix`, which defaults to `v`.
@@ -134,6 +134,12 @@ The tag prefix can be with `self.git_release_tag_prefix`, which defaults to `v`.
134
134
  The created tag can be pushed to different remotes with `self.git_remotes`,
135
135
  which defaults to `["origin"]`.
136
136
 
137
+ The tag will automatically be created when a release is pushed:
138
+
139
+ ```console
140
+ $ rake release VERSION=1.0.0 PRERELEASE=beta.1
141
+ ```
142
+
137
143
  ### Trusted Release
138
144
 
139
145
  If `spec.trusted_release` is set to `true` changes will be made to the `release`
data/Rakefile CHANGED
@@ -2,17 +2,24 @@
2
2
 
3
3
  $LOAD_PATH.unshift "lib"
4
4
 
5
+ require "rubygems"
5
6
  require "hoe"
7
+ require "rake/clean"
8
+ require "rdoc/task"
6
9
 
7
10
  Hoe.plugin :halostatue
8
-
9
- Hoe.spec "hoe-halostatue" do
11
+ Hoe.plugins.delete :debug
12
+ Hoe.plugins.delete :git
13
+ Hoe.plugins.delete :newb
14
+ Hoe.plugins.delete :publish
15
+ Hoe.plugins.delete :signing
16
+ Hoe.plugins.delete :test
17
+
18
+ hoe = Hoe.spec "hoe-halostatue" do
10
19
  developer "Austin Ziegler", "halostatue@gmail.com"
11
20
 
12
21
  self.trusted_release = ENV["rubygems_release_gem"] == "true"
13
22
 
14
- self.extra_rdoc_files = FileList["*.rdoc"]
15
-
16
23
  license "MIT"
17
24
 
18
25
  spec_extras[:metadata] = ->(val) {
@@ -25,4 +32,19 @@ Hoe.spec "hoe-halostatue" do
25
32
  extra_deps << ["hoe-rubygems", "~> 1.0"]
26
33
 
27
34
  extra_dev_deps << ["standard", "~> 1.0"]
35
+ extra_dev_deps << ["rdoc", ">= 5.0", "< 8"]
36
+ end
37
+
38
+ task :version do
39
+ require "hoe/halostatue/version"
40
+ puts Hoe::Halostatue::VERSION
41
+ end
42
+
43
+ RDoc::Task.new do
44
+ _1.title = "Hoe::Halostatue -- Opinionated reconfiguration of Hoe"
45
+ _1.main = "README.md"
46
+ _1.rdoc_dir = "doc"
47
+ _1.rdoc_files = hoe.spec.require_paths - ["Manifest.txt"] + hoe.spec.extra_rdoc_files
48
+ _1.markup = "markdown"
28
49
  end
50
+ task docs: :rerdoc
data/SECURITY.md CHANGED
@@ -1,20 +1,16 @@
1
1
  # Hoe::Halostatue Security Policy
2
2
 
3
+ ## LLM-Generated Security Report Policy
4
+
5
+ Absolutely no security reports will be accepted that have been generated by LLM
6
+ agents.
7
+
3
8
  ## Supported Versions
4
9
 
5
10
  Security reports are accepted only for the most recent minor release.
6
11
 
7
12
  ## Reporting a Vulnerability
8
13
 
9
- Create a [draft security advisory][advisory]. Alternatively, send an email to
10
- [hoe-halostatue@halostatue.ca][email] with the text `hoe-halostatue` in the
11
- subject. Emails sent to this address should be encrypted using [age][age] with
12
- the following public key:
13
-
14
- ```
15
- age1fc6ngxmn02m62fej5cl30lrvwmxn4k3q2atqu53aatekmnqfwumqj4g93w
16
- ```
14
+ Create a [private vulnerability report][advisory] with GitHub.
17
15
 
18
16
  [advisory]: https://github.com/halostatue/hoe-halostatue/security/advisories/new
19
- [age]: https://github.com/FiloSottile/age
20
- [email]: mailto:hoe-halostatue@halostatue.ca
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Hoe::Halostatue
4
- VERSION = "2.1.1"
4
+ VERSION = "2.1.2" # :nodoc:
5
5
  end
@@ -3,62 +3,75 @@
3
3
  require "shellwords"
4
4
  require_relative "halostatue/version"
5
5
 
6
+ class Hoe; end # :nodoc:
7
+
6
8
  Hoe.plugin :gemspec2
7
9
  Hoe.plugin :markdown
8
10
  Hoe.plugin :rubygems
9
11
 
10
- # This module is a Hoe plugin. You can set its options in your Rakefile Hoe spec, like
11
- # this:
12
+ # This module is a Hoe plugin which applies extremely opinionated reconfiguration to Hoe.
13
+ # You can set its options in your Rakefile Hoe spec, like this:
14
+ #
15
+ # ```ruby
16
+ # Hoe.plugin :halostatue
17
+ #
18
+ # Hoe.spec "myproj" do
19
+ # self.checklist = nil if ENV["rubygems_release_gem"] == "true"
20
+ # self.git_release_tag_prefix = "REL_"
21
+ # self.git_remotes << "myremote"
22
+ # end
23
+ # ```
24
+ #
25
+ # The `:git` plugin (built into Hoe since Hoe 4.5 or present in the `hoe-git` or
26
+ # `hoe-git2` dependencies) should not be enabled as that implementation differs from what
27
+ # is included here.
12
28
  #
13
- # Hoe.plugin :git
29
+ # ### Tasks
14
30
  #
15
- # Hoe.spec "myproj" do
16
- # self.checklist = nil if ENV["rubygems_release_gem"] == "true"
17
- # self.git_release_tag_prefix = "REL_"
18
- # self.git_remotes << "myremote"
19
- # end
31
+ # - `checklist`: Show the list of checklist questions.
32
+ # - `git:manifest`: Update the manifest with Git's file list.
33
+ # - `git:tag`: Create and push a tag.
20
34
  #
21
- # === Tasks
35
+ # ### Options
22
36
  #
23
- # git:changelog:: Print the current changelog.
24
- # git:manifest:: Update the manifest with Git's file list.
25
- # git:tag:: Create and push a tag.
37
+ # - `checklist`: An array of reminder questions that should be asked before a release, in
38
+ # the form "Did you... [question]?". The default questions are:
26
39
  #
27
- # === Options
40
+ # - `Bump the version?`
41
+ # - `Check everything in?`
42
+ # - `Review the manifest?`
43
+ # - `Update the README and docs?`
44
+ # - `Update the changelog?`
45
+ # - `Regenerate the gemspec?`
28
46
  #
29
- # - +checklist+: An array of reminder questions that should be asked before a release, in
30
- # the form, "Did you... [question]?" You can see the defaults by running <tt>rake
31
- # checklist</tt>. If the checklist is +nil+ or empty, the checklist will not shown
32
- # during release. This is originally from hoe-doofus and called +doofus_checklist+.
47
+ # If the checklist is `nil` or empty, or trusted publishing is on, the checklist will
48
+ # not be shown.
33
49
  #
34
- # - +git_release_tag_prefix+: What do you want at the front of your release tags? The
35
- # default is <tt>"v"</tt>.
50
+ # - `git_release_tag_prefix`: What do you want at the front of your release tags? The
51
+ # default is `"v"`.
36
52
  #
37
- # - +git_remotes+: Which remotes do you want to push tags, etc. to? The default is
38
- # <tt>%w[origin]</tt>
53
+ # - `git_remotes`: Which remotes do you want to push tags, etc. to? The default is
54
+ # `%w[origin]`.
39
55
  #
40
- # - +git_tag_enabled+: Whether a git tag should be created on release. The default is
41
- # +true+.
56
+ # - `git_tag_enabled`: Whether a git tag should be created on release. The default is
57
+ # `true`.
42
58
  module Hoe::Halostatue
43
59
  # Indicates that this release is being run as part of a trusted release workflow.
44
- # [default: +false+]
60
+ # [default: `false`]
45
61
  attr_accessor :trusted_release
46
62
 
47
63
  # An array of reminder questions that should be asked before a release, in the form,
48
- # "Did you... [question]?" You can see the defaults by running <tt>rake checklist</tt>.
49
- #
50
- # If the checklist is +nil+ or empty, the checklist will not shown during release.
51
64
  attr_accessor :checklist
52
65
 
53
66
  # What do you want at the front of your release tags?
54
- # [default: <tt>"v"</tt>]
67
+ # [default: `"v"`]
55
68
  attr_accessor :git_release_tag_prefix
56
69
 
57
70
  # Which remotes do you want to push tags, etc. to?
58
- # [default: <tt>%w[origin]</tt>]
71
+ # [default: `%w[origin]`]
59
72
  attr_accessor :git_remotes
60
73
 
61
- # Should git tags be created on release? [default: +true+]
74
+ # Should git tags be created on release? [default: `true`]
62
75
  attr_accessor :git_tag_enabled
63
76
 
64
77
  def initialize_halostatue # :nodoc:
@@ -95,10 +108,10 @@ module Hoe::Halostatue
95
108
  self.trusted_release = false
96
109
  end
97
110
 
98
- LINKS = /\[(?<name>.+?)\](?:\(.+?\)|\[.+?\])/
111
+ LINKS = /\[(?<name>.+?)\](?:\(.+?\)|\[.+?\])/ # :nodoc:
99
112
 
100
113
  def define_halostatue_tasks # :nodoc:
101
- desc "Show a reminder for steps I frequently forget"
114
+ desc "Show a reminder for steps frequently forgotten in a manual release"
102
115
  task :checklist do
103
116
  if checklist.nil? || checklist.empty?
104
117
  puts "Checklist is empty."
@@ -147,12 +160,11 @@ module Hoe::Halostatue
147
160
  desc "Update the manifest with Git's file list. Use Hoe's excludes."
148
161
  task "git:manifest" do
149
162
  with_config do |config, _|
150
- files = __run_git("ls-files").split($/)
151
- files.reject! { |f| f =~ config["exclude"] }
163
+ files = __run_git("ls-files")
164
+ .split($/)
165
+ .grep_v(config["exclude"])
152
166
 
153
- File.open "Manifest.txt", "w" do |f|
154
- f.puts files.sort.join("\n")
155
- end
167
+ File.write "Manifest.txt", files.sort.join("\n") + "\n"
156
168
  end
157
169
  end
158
170
 
@@ -162,7 +174,7 @@ module Hoe::Halostatue
162
174
  tag = ENV["TAG"]
163
175
  ver = ENV["VERSION"] || version
164
176
  pre = ENV["PRERELEASE"] || ENV["PRE"]
165
- ver += ".#{pre}" if pre
177
+ ver += ".#{pre}" if pre && !ver.ends_with?(pre)
166
178
  tag ||= "#{git_release_tag_prefix}#{ver}"
167
179
 
168
180
  git_tag_and_push tag
@@ -178,6 +190,8 @@ module Hoe::Halostatue
178
190
  task release_to: "git:tag"
179
191
  end
180
192
 
193
+ private
194
+
181
195
  def __git(command, *params)
182
196
  "git #{command.shellescape} #{params.compact.shelljoin}"
183
197
  end
@@ -193,26 +207,17 @@ module Hoe::Halostatue
193
207
  def git_tag_and_push tag
194
208
  msg = "Tagging #{tag}."
195
209
 
196
- if git_svn?
197
- sh __git("svn", "tag", tag, "-m", msg)
198
- else
199
- flags =
200
- if __run_git("config", "--get", "user.signingkey").empty?
201
- nil
202
- else
203
- "-s"
204
- end
210
+ flags = "-s" unless __run_git("config", "--get", "user.signingkey").empty?
205
211
 
206
- sh __git("tag", flags, "-f", tag, "-m", msg)
207
- git_remotes.each { |remote| sh __git("push", "-f", remote, "tag", tag) }
208
- end
212
+ sh __git("tag", flags, "-f", tag, "-m", msg)
213
+ git_remotes.each { |remote| sh __git("push", "-f", remote, "tag", tag) }
209
214
  end
210
215
 
211
216
  # This replaces Hoe#parse_urls with something that works better for Markdown.
212
217
  module ParseUrls # :nodoc:
213
218
  def parse_urls text
214
219
  keys = Hoe::URLS_TO_META_MAP.keys.join("|")
215
- pattern = %r{^[-+*]\s+(#{keys})\s+::\s+[<]?(\w+://[^>\s]+)[>]?}m
220
+ pattern = %r{^[-+*]\s+(#{keys})\s+::\s+<?(\w+://[^>\s]+)>?}m
216
221
 
217
222
  text.scan(pattern).to_h
218
223
  end
data/licences/dco.txt ADDED
@@ -0,0 +1,34 @@
1
+ Developer Certificate of Origin
2
+ Version 1.1
3
+
4
+ Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
5
+
6
+ Everyone is permitted to copy and distribute verbatim copies of this
7
+ license document, but changing it is not allowed.
8
+
9
+
10
+ Developer's Certificate of Origin 1.1
11
+
12
+ By making a contribution to this project, I certify that:
13
+
14
+ (a) The contribution was created in whole or in part by me and I
15
+ have the right to submit it under the open source license
16
+ indicated in the file; or
17
+
18
+ (b) The contribution is based upon previous work that, to the best
19
+ of my knowledge, is covered under an appropriate open source
20
+ license and I have the right under that license to submit that
21
+ work with modifications, whether created in whole or in part
22
+ by me, under the same open source license (unless I am
23
+ permitted to submit under a different license), as indicated
24
+ in the file; or
25
+
26
+ (c) The contribution was provided directly to me by some other
27
+ person who certified (a), (b) or (c) and I have not modified
28
+ it.
29
+
30
+ (d) I understand and agree that this project and the contribution
31
+ are public and that a record of the contribution (including all
32
+ personal information I submit with it, including my sign-off) is
33
+ maintained indefinitely and may be redistributed consistent with
34
+ this project or the open source license(s) involved.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hoe-halostatue
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Austin Ziegler
@@ -91,20 +91,20 @@ dependencies:
91
91
  requirements:
92
92
  - - ">="
93
93
  - !ruby/object:Gem::Version
94
- version: '4.0'
94
+ version: '5.0'
95
95
  - - "<"
96
96
  - !ruby/object:Gem::Version
97
- version: '7'
97
+ version: '8'
98
98
  type: :development
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - ">="
103
103
  - !ruby/object:Gem::Version
104
- version: '4.0'
104
+ version: '5.0'
105
105
  - - "<"
106
106
  - !ruby/object:Gem::Version
107
- version: '7'
107
+ version: '8'
108
108
  description: |-
109
109
  Hoe::Halostatue is a [Hoe][hoe] meta-plugin that provides improved support for
110
110
  Markdown README files, provides features from other plugins, and enables
@@ -122,6 +122,7 @@ extra_rdoc_files:
122
122
  - Manifest.txt
123
123
  - README.md
124
124
  - SECURITY.md
125
+ - licences/dco.txt
125
126
  files:
126
127
  - CHANGELOG.md
127
128
  - CODE_OF_CONDUCT.md
@@ -135,6 +136,7 @@ files:
135
136
  - lib/hoe/halostatue.rb
136
137
  - lib/hoe/halostatue/strict_warnings.rb
137
138
  - lib/hoe/halostatue/version.rb
139
+ - licences/dco.txt
138
140
  homepage: https://github.com/halostatue/halostatue-data/
139
141
  licenses:
140
142
  - MIT