Upgrade dependencies, migrate to cactoos 0.61, and stabilize CI#113
Merged
yegor256 merged 4 commits intozold-io:masterfrom May 7, 2026
Merged
Upgrade dependencies, migrate to cactoos 0.61, and stabilize CI#113yegor256 merged 4 commits intozold-io:masterfrom
yegor256 merged 4 commits intozold-io:masterfrom
Conversation
- Bump com.jcabi:parent from 0.66.0 to 0.73.1 - Bump qulice-maven-plugin from 0.17.4 to 0.27.6 - Bump cactoos from 0.35 to 0.61.0 - Bump cactoos-matchers from 0.11 to 0.25 - Bump eo-envelopes from 0.0.3 to 1.0.0 - Bump equalsverifier from 2.4.8 to 4.5 - Bump junit-vintage-engine from 5.9.3 to 5.14.4 - Replace hamcrest-core 1.3 with hamcrest 3.0 - Migrate cactoos API: rename CheckedScalar/UncheckedScalar/IoCheckedScalar/SolidScalar/StickyScalar to Checked/Unchecked/IoChecked/Solid/Sticky - Migrate cactoos API: rename TrimmedText/JoinedText/SplitText to Trimmed/Joined/Split - Migrate cactoos API: replace CollectionOf with ListOf, RandomText with Randomized - Move LengthOf from org.cactoos.iterable to org.cactoos.scalar - Replace FuncApplies with IsApplicable from cactoos-matchers
- Remove trailing dots from javadoc @param/@return/@throws tags - Remove empty Javadoc lines before at-clauses - Migrate JUnit 4 `@Test(expected=...)` to `Assertions.assertThrows()` - Drop public modifiers from JUnit 5 test classes/methods - Replace FuncApplies with IsApplicable in test - Add @SInCE tags to inner classes - Add empty line before first member where required - Add underscores to large numeric literals - Drop unnecessary @SuppressWarnings annotations - Replace deprecated CollectionOf with ListOf and FileWriter with OutputStreamWriter (UTF-8) - Override equals/hashCode on Comparable (Copies.Copy) - Reduce visibility of inner-class members declared public - Reorder methods (public Override first) - Misc formatting fixes
- Inline single-use locals (UnnecessaryLocalRule) where it preserves clarity, otherwise add file-level @SuppressWarnings("PMD.UnnecessaryLocalRule") on test classes - Split tests with multiple asserts into separate methods (UnitTestContainsTooManyAsserts) - Fix AssignmentInOperand in TaxesTest loop (`++index`) - Annotate Transaction.Fake with @SuppressWarnings("PMD.DataClass") since it is a deliberate test double - Qualify FkRandom inner class reference with WalletsInTest.FkRandom - Exclude transitive org.hamcrest:hamcrest-core 1.3 from junit (we depend on hamcrest 3.0 directly) - Restructure Wallet.File.merge to drop unnecessary local 'candidates' - Drop redundant 'final RtTransaction that' local in equals
- Rewrite README.md to satisfy markdownlint (line lengths, alt text, fenced code language, descriptive links, bare URLs) - Fix two typos: 'walet' -> 'wallet' in Wallet.java, 'paramater' -> 'parameter' in Transaction.java - Bump actions/cache from v3 to v4 (the v3 runner is too old per actionlint) - Bump CI Java matrix to 21 (junit-jupiter 6.x requires Java 17+)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
@yegor256 hi! This PR upgrades the project to current dependencies (master was failing CI on
masteritself), migrates the source to the new cactoos API, and fixes the existing lint failures.Why
masteris currently red. The qulice plugin in use (0.17.4) hasn't kept up with the SPDX license headers introduced in the source files, so themvnjob fails on theHeaderCheck. Themarkdown-lint,typos,actionlint, andcodecovjobs are also failing onmaster. Renovate has been opening individual upgrade PRs (#99, #101, #102, #103, #105, #109, etc.), but they each fail for the same reason because they don't include the corresponding source migration. This PR consolidates them and fixes the underlying issues.Dependency upgrades
com.jcabi:parentcom.qulice:qulice-maven-pluginorg.cactoos:cactoosorg.llorllale:cactoos-matcherscom.github.victornoel.eo:eo-envelopesnl.jqno.equalsverifier:equalsverifierorg.junit.vintage:junit-vintage-engineorg.hamcrest:hamcrest-core1.3org.hamcrest:hamcrest3.0cactoos 0.35 -> 0.61.0 source migration
The newer cactoos drops the
*Scalar/*Textsuffixes and moves a couple of classes between packages, so I updated all imports and call sites:CheckedScalar/UncheckedScalar/IoCheckedScalar/SolidScalar/StickyScalar->Checked/Unchecked/IoChecked/Solid/StickyTrimmedText/JoinedText/SplitText->Trimmed/Joined/SplitRandomText->Randomizedorg.cactoos.collection.CollectionOf/Filtered->org.cactoos.list.ListOf/org.cactoos.iterable.Filteredorg.cactoos.iterable.LengthOf->org.cactoos.scalar.LengthOf(now returnsLong, so call sites use.value().intValue())IterableEnvelope(Scalar<Iterable>)->IterableEnvelope(Iterable);IterableOf(List)->IterableOf(Iterator)orIterableOf(Scalar<Iterator>)Skipped(Iterable, int)->Skipped(int, Iterable)org.llorllale.cactoos.matchers.FuncApplies->IsApplicableFileWriter(PMDAvoidFileStream) withFiles.newOutputStream(...)+OutputStreamWriter(...UTF-8)to also satisfyRelianceOnDefaultCharset.qulice 0.17.4 -> 0.27.6 fixes
170 violations on the first run, all driven down to zero. Highlights:
@param/@return/@throwsand removed empty Javadoc lines before@-clauses.@Test(expected = ...)toAssertions.assertThrows(...)(JUnit 5 idiom).publicfrom JUnit 5 test classes/methods (JUnit5TestShouldBePackagePrivate).@SuppressWarningsandfinalmodifiers, qualified static inner-class references, fixedJavadocParameterOrderCheck, etc.5_124_095_577_148_911L).CopiesTestandNetworkTestcases that contained more than one assert.equals/hashCodetoCopies.Copy(which implementsComparable).org.hamcrest:hamcrest-core:1.3fromjunit:4.13.2so qulice's duplicate-finder doesn't see two hamcrest jars.UnnecessaryLocalRulerule reduces readability (most arrange-act-assert tests), I added a class-level@SuppressWarnings("PMD.UnnecessaryLocalRule")instead of inlining; the main code does not suppress it.PMD.DataClassonTransaction.Fake;ConstructorsCodeFreeCheckonCpTransaction/TaxBeneficiariesbecause theysuper(...)with a method call) are suppressed inline with a@checkstylecomment /@SuppressWarnings.Existing CI failures fixed (not just the ones I introduced)
README.mdto satisfy MD013/MD033/MD040/MD041/MD045/MD034/MD059/MD012 (line lengths, alt text, fenced code language, descriptive links, bare URLs, multiple blanks).walet->wallet(Wallet.java) andparamater->parameter(Transaction.java).actions/cachefromv3tov4inmvn.ymlandcodecov.yml(v3 runner is now too old).java: [11, 17]would no longer work).Verification
mvn --errors --batch-mode clean install -Pquliceis green locally on Java 21. All green on the fork's CI (run here) for: actionlint, copyrights, markdown-lint, mvn (ubuntu/macos/windows, Java 21), pdd, reuse, typos, xcop, yamllint. Tests: 68 run, 0 failures, 0 errors, 5 skipped (the 5 skipped were already@Disabled/@Ignoreupstream).Codecov is the only fork-side red light, and only because the fork has no
CODECOV_TOKENsecret; it doesn't run on PRs in this repo (only onpushto master), and is also red onmastertoday.This is ready for merge from my side - happy to rebase or split the commits if you'd prefer.