Skip to content

Releases: tsantalis/RefactoringMiner

3.0.13

09 Dec 20:50

Choose a tag to compare

This is the last release that RefactoringMiner supports only the Java programming language.
For the next release, we are migrating the project to a multi-language support infrastructure.

3.0.12

22 Nov 21:27

Choose a tag to compare

Core Improvements

  1. Improve precision and recall in Benchmark 2 [current precision is ~99% and recall ~98%]
  2. Support Parameterize Test detection with @MethodSource (in addition to @CsvSource and @ValueSource)
  3. Infer the detection of moved code between files (without the presence of calls) based on other moved methods between the two files #1010
  4. Further improve the matching of statements with assert-related migrations in tests (AssertJ fluent assertions)

UI Improvements

  1. Added tooltips for the following scenarios:
  • References to type declarations being renamed or moved
  • References to method declarations being renamed
  • References to variable/field declarations being renamed or moved
ReferenceTooltips
  1. Improved diff visualization for overlapping refactorings within moved code
OverlappingRefactoringsWithinMovedCode
  1. Support matching string arguments in Parameterize Test refactorings
ParameterizedTest
  1. Support renames in module-info diff
Image

3.0.11

13 Jun 17:20

Choose a tag to compare

UI Improvements

  1. Show Pull Request Code Review Comments #930
Image
  1. Tooltips for moved code with links to move diffs #912 + refactoring-aware tooltips for moved code #886
Image
  1. Show detected refactorings with link to the corresponding AST diff page #893
Image
  1. Synchronized expansion/collapse based on mappings #881 #888

  2. Support Java-reserved keywords permits, implements, throws, extends in the diff #887

Core Improvements

  1. Support package-info.java and module-info.java files.
  2. Support Extract/Inline Method for small expressions being part of larger statements.
  3. Multi-threaded fetch of files in commits and pull requests is paused to avoid HTTP errors.
  4. New Java language features supported: Pattern Matching for instanceof
  5. Improved support for matching statements with assert-related migrations in tests (AssertJ fluent assertions).
  6. Support assertThatThrownBy migration in tests.
  7. Support refactoring detection and AST diff for a commit range.
  8. Support Perforce P4 centralized version control system. Thanks to @dmazinanian

Benchmarks

New benchmark from the paper titled "An Automated Approach to Discovering Software Refactorings by Comparing Successive Versions" is added. The validation is still in progress.

3.0.10

28 Nov 17:55

Choose a tag to compare

  • Monaco diff improvement with AST node highlighting
  • Refactoring PurityChecker API
  • Support SwitchExpression mappings by representing switch cases as lambdas
  • Performance improvement when detecting method pairs with signature changes
  • Support sealed modifier and diff for permitted types (#806)
  • More accurate mappings for return; statements
  • Support comment diff (including comments moved to extracted method)
  • Use statement mappings to improve the accuracy of comment mappings
  • Support Javadoc multi-mappings, when javadoc is moved/copied to extracted method
  • Support detection of nested Extract Method refactoring, when the intermediate extracted method has 0 mappings (#803)
  • Support Extract Variable for lambda expression
  • Improved matching of lambda parameters
  • Improve mapping accuracy when multiple similar Stream API migrations take place within the same method
    javaparser/javaparser@f70eef1
  • Support new Move Code scenario
  • Support advanced Merge Method scenario in square/okhttp@0bfd604

image

3.0.9

17 Sep 14:57

Choose a tag to compare

  • Fix critical Exception in Javadoc diff #778 Thanks to @mo7aammd for reporting the issue
  • Refactoring-aware Javadoc diff (using method parameter refactorings to match correctly Javadoc params)

image

3.0.8

14 Sep 11:19

Choose a tag to compare

Screenshot from 2024-09-14 07-25-03

  • Improved Javadoc diff (supports text reformatting, HTML tag restructuring)

Screenshot from 2024-09-14 08-10-21

3.0.7

21 Jun 23:49

Choose a tag to compare

Fix for critical typo bug failing to process record declarations #752

3.0.6

21 Jun 16:04

Choose a tag to compare

  • Diff includes code moves between files. New icon for code moves between files
    Screenshot from 2024-05-29 20-54-33
  • Hide unchanged code in monaco diff
    image
  • Soft wrap in monaco diff (toggle with Alt+w)
  • Prev and Next buttons to go directly to the previous/next diff without coming back to the Overview page
  • Refactored the AST diff generation code

3.0.5

16 May 14:59

Choose a tag to compare

  • Dynamic Java compliance version (supports parsing of record declarations #697)
  • Docker image https://hub.docker.com/r/tsantalis/refactoringminer
  • New AST diff UI (directory structure similar to GitHub, file renames)
    Screenshot from 2024-05-16 10-48-01
  • Diff with multiple files when code is moved (VM.java in the screenshot below)
    Screenshot from 2024-05-16 10-54-19

3.0.4

14 Jan 14:14

Choose a tag to compare

  • Improved the detection of renamed attributes
  • Enabled the detection of attribute changes in moved/renamed classes