nbbrd / heylogs Goto Github PK
View Code? Open in Web Editor NEWSet of tools to deal with the keep-a-changelog format
License: European Union Public License 1.2
Set of tools to deal with the keep-a-changelog format
License: European Union Public License 1.2
To warn if date is after current date
To be able to do something like:
<plugin>
<groupId>com.github.nbbrd.heylogs</groupId>
<artifactId>heylogs-maven-plugin</artifactId>
<executions>
<execution>
<id>extract-changelog</id>
<goals>
<goal>extract</goal>
</goals>
<configuration>
<ref>${project.version}</ref>
</configuration>
</execution>
</executions>
</plugin>
I installed the CLI on Mac using Homebrew, then tried to run the check
subcommand on my faulty file. But, despite it detecting problems, the heylogs
process returned a true (0
) value:
lace on ๐ฑ master [$] via ๐ v3.11.5 on โ๏ธ (us-east-1)
โฏ heylogs check CHANGELOG.md
CHANGELOG.md
55:1 error Missing ref link all-h2-contain-a-version
1 problem
lace on ๐ฑ master [$] via ๐ v3.11.5 on โ๏ธ (us-east-1)
โฏ echo $?
0
(We discovered a similar problem when using the suggested pattern in a GitHub action, i.e.
- uses: jbangdev/[email protected]
with:
script: com.github.nbbrd.heylogs:heylogs-cli:_VERSION_:bin
scriptargs: "check CHANGELOG.md"
does not fail CI if the CHANGELOG.md
does not pass the check
)
It would be nice for the check
command to return an error if the check
fails, or if there was an option to cause that behavior (e.g., a CLI option like --exit-with-error-on-errors
, but maybe less verbose/clunky)
In case a changelog entry ends with a link, there should be a dot before
Example:
wrong:
We fixed an issue where [...] acquiring a file lock [#10452](https://github.com/JabRef/jabref/issues/10452)
right:
We fixed an issue where [...] acquiring a file lock. [#10452](https://github.com/JabRef/jabref/issues/10452)
Maybe, this rule should be explicitly enabled?
One could also implement it as "consistency" check. Currently, we have it mixed in our CHANGELOG.md -- https://github.com/JabRef/jabref/blob/main/CHANGELOG.md
In https://github.com/JabRef/jabref/blob/v5.11/CHANGELOG.md, I get
1:1 error Expecting consistent version-date separator \u002d, found [\u2013] consistent-separator
At #140, I introduced support for \u2013
for date separation.
I think, something is wrong in the "consistent-seaprator" check.
Behavior:
Did you find some workaround? If not, maybe, "just" implementing a "toJson()" functionality (as
clparse
offers) would suffice to support the feature. (clparse -> json -> filter -> dif)Originally posted by @koppor in #146 (comment)
clparse
is another command line tool written in Rust that handles keep-a-changelog format.
It has the ability to export a markown into a json format that can be easily used in scripts.
Having this feature in heylogs would allow more integration with other tools
I really like that the code has non-null annotations.
There is a long discussion about the "right" null annotation: https://stackoverflow.com/q/4963300/873282
Fortunately, Google, JetBrains, Facebook, Uber and others managed to agree on one annotation: JSpecify. I especially like @NullMarked
which indicates that the all nullalbes places have explicitly marked - and all other places are non-null.
I suggest to switch from the JetBrains-focused Nullable annotations to the ones of JSpecify.
Check if user and repo are valid
With #140, the checking for the separators was relaxed. I overlooked "a small thing": Mixed separators are "allowed".
There should be a checker reporting if different dashes are used. The first "valid" heading should "set" the dash and the other headings should use the same dash.
Following should rise a check error
## [Unreleased]
* Date is showing the year only. [#13](https://github.com/gi-ev/biblatex-lni/pull/11)
Maybe, it is because the content does not follow CHANGELOG.md rules. However, this should be reported, too.
Background: I have some trouble to get this thing compiling in IntelliJ. There, I get the error
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.4.0:enforce (enforce) on project heylogs-cli:
[ERROR] Rule 10: org.codehaus.mojo.extraenforcer.dependencies.EnforceBytecodeVersion failed with message:
[ERROR] Found Banned Dependency: com.github.nbbrd.heylogs:heylogs-api:jar:0.6.1-SNAPSHOT
[ERROR] Use 'mvn dependency:tree' to locate the source of the banned dependencies.
I thought, let's start from scratch and to mvn clean
. That action fails, too:
[INFO] heylogs-maven-plugin ............................... SUCCESS [ 0.020 s]
[INFO] heylogs-bom ........................................ FAILURE [ 0.008 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.378 s
[INFO] Finished at: 2023-09-08T13:34:49+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Plugin com.github.nbbrd.heylogs:heylogs-maven-plugin:0.6.1-SNAPSHOT or one of its dependencies could not be resolved: The following artifacts could not be resolved: com.github.nbbrd.heylogs:heylogs-maven-plugin:jar:0.6.1-SNAPSHOT (absent): Could not find artifact com.github.nbbrd.heylogs:heylogs-maven-plugin:jar:0.6.1-SNAPSHOT -> [Help 1]
I think, it would be good if mvn clean
would run without errors.
I have issues to get this plugin to compile locally
[INFO] Rule 9: org.codehaus.mojo.extraenforcer.dependencies.BanDuplicateClasses passed
[INFO] Adding ignore: module-info
[INFO] Restricted to JDK 8 yet com.github.nbbrd.heylogs:heylogs-api:jar:0.6.1-SNAPSHOT:compile contains nbbrd/heylogs/spi/FormatBatch.class targeted to JDK 9
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for heylogs 0.6.1-SNAPSHOT:
[INFO]
[INFO] heylogs ............................................ SUCCESS [ 0.459 s]
[INFO] heylogs-api ........................................ SUCCESS [ 6.875 s]
[INFO] heylogs-cli ........................................ FAILURE [ 0.276 s]
[INFO] heylogs-maven-plugin ............................... SKIPPED
[INFO] heylogs-bom ........................................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.790 s
[INFO] Finished at: 2023-09-08T13:36:40+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.4.0:enforce (enforce) on project heylogs-cli:
[ERROR] Rule 10: org.codehaus.mojo.extraenforcer.dependencies.EnforceBytecodeVersion failed with message:
[ERROR] Found Banned Dependency: com.github.nbbrd.heylogs:heylogs-api:jar:0.6.1-SNAPSHOT
The "only" difference between my setup and the setup on GitHub is IMHO the caching.
Could it be possible that com.github.nbbrd.heylogs:heylogs-api:jar:0.6.1-SNAPSHOT
is cached on GitHub - and therefore "Rule 10" does not trigger there, but locally here?
Mentions of people and teams follow these patterns on GitHub:
[@user](https://github.com/user)
[@organization/team-name](https://github.com/orgs/organization/teams/team-name)
It would be nice to add a check to validate these patterns.
TODO: look for patterns on GitLab
Add basic documentation such as installation using GitHub pages and Hugo.
heylogs.inputFile
should be replaced with heylogs.input.file
For example:
command heylogs scan -i CHANGELOG.md
would create a summary containing time span, number of versions, semver validity, ...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.