Skip to content

Releases: cicirello/InteractiveBinPacking

v4.0.1

Choose a tag to compare

@cicirello cicirello released this 03 Jul 23:35
2c51bb6

[4.0.1] - 2026-07-03

Fixed

  • Fixed "constructor throws" in Bin class detected by SpotBugs.
  • Fixed "constructor throws" in InfoDialog class detected by SpotBugs.
  • Refactored MenuBar, UI, and other classes to eliminate class cycles based on RefactorFirst report.
  • Refactored SolutionValidator to eliminate the brain method identified by RefactorFirst.
  • Refactored SolutionValidator to eliminate intensive coupling identified by RefactorFirst.
  • Refactored to eliminate dispersed coupling in About constructor, identified by RefactorFirst.
  • Refactored to eliminate dispersed coupling in SessionLog.parseActions, identified by RefactorFirst.
  • Refactored to eliminate dispersed coupling in SessionLogFormatter.formatCompletions, identified by RefactorFirst.
  • Instructions in the README for downloading from Maven Central using curl.

v4.0.0

Choose a tag to compare

@cicirello cicirello released this 03 Jul 15:55
7c814e5

[4.0.0] - 2026-07-03

BREAKING CHANGES: Now requires Java 25 or higher.

Fixed

  • Fixed rare case of too few bins for problem instance

Dependencies

  • Minimum supported Java is now Java 25 (BREAKING CHANGE)

v3.1.6

Choose a tag to compare

@cicirello cicirello released this 15 May 19:40
b5de568

[3.1.6] - 2025-05-15

Other

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

Interactive Bin Packing, v3.1.5

Choose a tag to compare

@cicirello cicirello released this 07 Aug 14:30
77693e9

[3.1.5] - 2023-08-07

Fixed

  • Improvements based on SpotBugs and FindSecBugs scans:
    • LogRecord.toString() changed to use platform-specific line separators.
    • LogRecord.equals(Object): correctly handle null and other types.
    • RecordList.equals(Object): correctly handle null and other types.
    • Bin.contentsToString(): StringBuilder instead of iterated concat.
    • SessionLog.moveCountToString(): StringBuilder instead of iterated concat.
    • SessionLogFormatter: fixed potential resource leak.
    • SessionLog: implemented readObject to properly initialize transient fields during deserialization.
    • Set most classes to package access.

CI/CD

  • Integrated SpotBugs into build process.
  • Integrated FindSecBugs into build process.

Interactive Bin Packing, v3.1.4

Choose a tag to compare

@cicirello cicirello released this 12 Jan 17:32
1ea6f28

[3.1.4] - 2023-01-12

Fixed

  • Refactored the following based on RefactorFirst scan:
    • SessionLog class
    • GUI-related test cases
    • Non-GUI-related test cases

Interactive Bin Packing, v3.1.3

Choose a tag to compare

@cicirello cicirello released this 01 Dec 17:41
043c877

[3.1.3] - 2022-12-01

Changed

  • Reformatted all sourcecode to Google Java Style.
  • Migrated test cases to JUnit Jupiter 5.9

Fixed

  • Misc refactoring based on feedback from Sonatype Lift, including:
    • Added explicit Charset when loading SessionLog template.
    • Added explicit cast in narrowing compound assignment in initialization of item list.
    • In SessionLog, replaced usage of Java's Date class, which is known to be buggy, with Instant.
    • Removed single use constant with format string for SessionLog.
    • Fixed empty catch blocks.

CI/CD

Other

Interactive Bin Packing, v3.1.2

Choose a tag to compare

@cicirello cicirello released this 01 Apr 13:45
a5353d3

[3.1.2] - 2022-04-01

Other

  • Release is to force an update of the metadata on the archiving site Zenodo to
    include link to paper in Journal of Open Source Education. This release otherwise
    contains no new or changed functionality.

Interactive Bin Packing, v3.1.1

Choose a tag to compare

@cicirello cicirello released this 31 Mar 14:12
f2dfdb0

[3.1.1] - 2022-03-31

Other

  • Release is for paper in Journal of Open Source Education (JOSE), and also to start archiving in Zenodo for same purpose. This release otherwise contains no new or changed functionality.

CI/CD

  • Modified CI/CD workflow to comment coverage percentages on PRs.

Interactive Bin Packing, v3.1.0

Choose a tag to compare

@cicirello cicirello released this 24 Jun 16:51

[3.1.0] - 2021-06-24

Added

  • A directory of example homework assignments that can be used or adapted by
    course instructors using the application in a class. The example assignments
    can also be used by self-directed learners.
  • Session Logs
    • Feature that logs most user interaction with the application, and
      generates an in-application view of the session log.
    • The session log summarizes total time in the application, instances
      solved by the user correctly using their chosen heuristic, number of
      successful and unsuccessful solving actions taken in each of the
      application modes, as well as additional information that may be useful
      to instructors using the application within a course context.
    • In addition to viewing the current session log, session logs can be
      saved to a file. The motivation is to ease instructor grading of
      assignments that use the application. For example, instructors can
      assign each student a different problem instance and have students save
      and submit the session log, which the instructor can then use for
      validation.
    • The load session log feature loads a session log, validates it, and displays
      a human readable summary. The validation verifies that instances that are
      claimed solved using a particular heuristic were actually solved using that
      heuristic. That is, the session log doesn't include the solution, but rather
      it includes the actions taken to reach the solution, the problem instance
      number, and the chosen heuristic, and the application validates that the actions
      taken are those that the heuristic would have chosen. The validation also
      validates timestamp sequences, etc.
    • Note to instructors: We don't guarantee that the session logs cannot be
      faked. However, the effort required to fake a session log that will fool the
      validation is significantly more than the effort needed to work through the
      exercises. Additionally, to successfully fake a session log, the student would
      still need the correct sequence of actions to solve the specified instance
      using the specified heuristic. Simply assign each student a different
      problem instance number (it is a value of type long), perhaps based on their
      student id number.

Fixed

  • Reorganized resources files (html content of dialogs, and images)
    to use a namespace (i.e., within a directory hierarchy based on package name).

Interactive Bin Packing, v3.0.1

Choose a tag to compare

@cicirello cicirello released this 26 May 21:04
a92f140

[3.0.1] - 2021-05-26

Changed

  • Updates to documentation.

Fixed

  • Code improvements to eliminate potentially errorprone code as identified in MuseDev's static analysis reports.