Skip to content

Releases: cicirello/JavaPermutationTools

JavaPermutationTools, v6.0.1

Choose a tag to compare

@cicirello cicirello released this 15 May 21:03
d5a0f10

[6.0.1] - 2025-05-15

Dependencies

  • Bump org.cicirello:rho-mu from 4.1.0 to 4.2.1
  • Bump org.cicirello:core from 2.7.0 to 2.7.1

Other

  • Migrated deployment from the old OSSRH to the new Central.

JavaPermutationTools, v6.0.0

Choose a tag to compare

@cicirello cicirello released this 25 Jul 17:13
fef88e2

[6.0.0] - 2024-07-25

Added

  • SequenceSampler.getDefault() method for creating an instance of the default implementation of SequenceSampler.
  • SequenceSampler.getDefault(RandomGenerator) method for creating an instance of the default implementation of SequenceSampler from a given source of randomness.
  • SequenceSampler.getDefault(seed) method for creating an instance of the default implementation of SequenceSampler, specifying a seed for the random number generator.
  • Seeded constructors added to SequenceReservoirSampler, SequencePoolSampler, SequenceInsertionSampler, SequenceCompositeSampler.
  • Default constructors added to SequenceReservoirSampler, SequencePoolSampler, SequenceInsertionSampler, SequenceCompositeSampler.

Changed

  • Refactored to improve code quality and to perform minor optimizations of the following classes:
    • org.cicirello.permutations.distance.EditDistance
    • org.cicirello.sequences.distance.EditDistance
    • org.cicirello.sequences.distance.EditDistanceDouble
  • Refactored to improve code quality and to optimize SequenceReservoirSampler, SequencePoolSampler, SequenceInsertionSampler, SequenceCompositeSampler.
  • Minor optimizations to Permutation.scramble() methods.

Removed

  • Removed the previously deprecated (in v5.1.0) constructor org.cicirello.sequences.distance.EditDistance(double, double, double). To compute edit distance with double-valued costs for arrays and other sequences, use the existing EditDistanceDouble class instead. This does not impact the class with the same name that computes edit distance for permutations (i.e., the org.cicirello.permutations.distance.EditDistance class still accepts doubles for the costs).
  • Removed default method implementations in SequenceSampler interface (all interface methods now implemented in the implementing classes).

Fixed

  • Fixed potential integer overflow error in ReinsertionDistance
  • Fixed transient fields in Permutation that shouldn't be transient
  • Classes implementing SequenceSampler interface: methods with probability p of sampling an element fixed to always use specified randomness source (previously incorrectly used default randomness source on some calls).
  • Fixed potential finalizer vulnerability in org.cicirello.sequences.distance.EditDistance, detected by SpotBugs analysis.

Dependencies

  • Bump rho-mu from 3.1.0 to 4.1.0
  • Bump org.cicirello:core from 2.5.0 to 2.7.0

CI/CD

  • Integrated SpotBugs static analysis into build process.
  • Integrated Find Security Bugs static analysis into build process.
  • Discontinued publication of a jar-with-dependencies (BREAKING CHANGE only if you were using the fat jar).

JavaPermutationTools, v5.1.0

Choose a tag to compare

@cicirello cicirello released this 30 May 13:48
b58f33a

[5.1.0] - 2023-05-30

Deprecated

  • Deprecated double-valued costs constructor of EditDistance for arrays and other sequences, with the existing EditDistanceDouble class as its replacement. This constructor will be removed in the next major release, most likely sometime in the Fall of 2023.

Dependencies

  • Bump core from 2.4.6 to 2.5.0
  • Bump rho-mu from 3.0.4 to 3.1.0

JavaPermutationTools, v5.0.4

Choose a tag to compare

@cicirello cicirello released this 14 Apr 15:01
8d9dbeb

[5.0.4] - 2023-04-14

Changed

  • Optimized or otherwise refactored for code quality the scramble, reverse, and swapBlocks methods of the Permutation class.

JavaPermutationTools, v5.0.3

Choose a tag to compare

@cicirello cicirello released this 13 Apr 21:51
1ec5eec

[5.0.3] - 2023-04-13

Changed

  • Permutation now caches hash on first call to hashCode() to optimize applications that rely heavily on hashing.

Dependencies

  • Bump rho-mu from 3.0.3 to 3.0.4

JavaPermutationTools, v5.0.2

Choose a tag to compare

@cicirello cicirello released this 07 Mar 16:11
cb95058

[5.0.2] - 2023-03-07

Changed

  • Minor code improvements and/or optimizations within the following classes:
    • Permutation
    • PermutationIterator
    • KendallTauDistance
    • WeightedKendallTauDistance.
    • CyclicEdgeDistance
    • CyclicRTypeDistance.
    • The various SequenceSamplers
    • KendallTauSequenceDistance

Dependencies

  • Bump core from 2.4.4 to 2.4.6
  • Bump rho-mu from 3.0.2 to 3.0.3

JavaPermutationTools, v5.0.1

Choose a tag to compare

@cicirello cicirello released this 12 Jan 15:22
cd2960b

[5.0.1] - 2023-01-12

Dependencies

  • Bump core from 2.4.3 to 2.4.4
  • Bump rho-mu from 3.0.1 to 3.0.2

JavaPermutationTools, v5.0.0

Choose a tag to compare

@cicirello cicirello released this 18 Nov 22:21
f7a2d36

[5.0.0] - 2022-11-18

BREAKING CHANGES: See the Removed section for details.

Added

  • Added the SequenceSampler interface's methods to SequenceCompositeSampler.
  • Added the SequenceSampler interface's methods to SequenceReservoirSampler.
  • Added the SequenceSampler interface's methods to SequencePoolSampler.
  • Added the SequenceSampler interface's methods to SequenceInsertionSampler.
  • Methods to sample by specifying probability of including element in sample to the classes that implement SequenceSampler
    including SequenceReservoirSampler, SequencePoolSampler, SequenceInsertionSampler, and SequenceCompositeSampler.

Changed

  • SequenceSampler converted from a utility class of static methods to an interface, retaining the existing static
    methods that use a default source of randomness, but introducing nextSample methods for classes to implement.

Removed

  • SequenceSampler.sampleReservoir methods, previously deprecated in 4.3.0, replaced by the SequenceReservoirSampler class.
  • SequenceSampler.samplePool methods, previously deprecated in 4.3.0, replaced by the SequencePoolSampler class.
  • SequenceSampler.sampleInsertion methods, previously deprecated in 4.3.0, replaced by the SequenceInsertionSampler class.

Dependencies

  • Bump rho-mu from 2.5.0 to 3.0.1

JavaPermutationTools, v4.3.1

Choose a tag to compare

@cicirello cicirello released this 17 Nov 19:23
f2c2886

[4.3.1] - 2022-11-17

Changed

Fixed

  • Corrected configuration of maven-shade-plugin to ensure full pom with all dependencies published during deploy.

Dependencies

  • Bump core from 2.4.0 to 2.4.3

CI/CD

Other

JavaPermutationTools, v4.3.0

Choose a tag to compare

@cicirello cicirello released this 17 Oct 16:31
9e9043c

[4.3.0] - 2022-10-17

Added

  • EditDistanceDouble: extracted from EditDistance (for sequences) all of the distancef methods for
    double-valued distances. The original EditDistance now subclasses this one to retain existing functionality.
  • Extracted the following classes from SequenceSampler that implement different algorithms for efficiently
    randomly sampling array elements without replacement:
    • SequencePoolSampler: the pool sampling algorithm of Ernvall and Nevalainen (1982),
    • SequenceReservoirSampler: the reservoir sampling algorithm of Vitter (1985),
    • SequenceInsertionSampler: the insertion sampling algorithm of Cicirello (2022), and
    • SequenceCompositeSampler: the composite of the above three of Cicirello (2022).

Changed

  • Refactored the following classes to reduce cyclomatic complexity, or for other maintainability reasons:
    • SequenceSampler
    • ExactMatchDistance (for sequences)
    • KendallTauSequenceDistance
    • EditDistance (for sequences)

Deprecated

  • The SequenceSampler.sampleReservoir methods, which are now replaced by the SequenceReservoirSampler class.
  • The SequenceSampler.samplePool methods, which are now replaced by the SequencePoolSampler class.
  • The SequenceSampler.sampleInsertion methods, which are now replaced by the SequenceInsertionSampler class.

Dependencies

  • Bump rho-mu from 2.4.1 to 2.5.0
  • Bump core from 2.2.2 to 2.4.0