Skip to content

Releases: tsantalis/RefactoringMiner

3.1.3

29 Mar 18:00

Choose a tag to compare

  • Support nested class definitions in Python #1043
  • Support conditionally defined classes in Python #1042
  • Handle bare except clause in Python (i.e., catch clause without specific exception type)
  • Support TypeScript refactoring detection and AST diff generation (beta)
    • Parse .ts files with swc4j
    • Model function declarations and arrow function expressions as UMLOperation objects
    • Support all TypeScript statement types
    • TypeScriptVisitor for extracting sub-expressions within statements is partially complete
    • Add statement mapping tests for Extract Method refactorings in TypeScript

3.1.2

06 Mar 13:20

Choose a tag to compare

Support Python single-line comments when generating AST diff

3.1.1

05 Mar 22:30

Choose a tag to compare

  • Handle variable-length tuple, e.g., tuple[Tensor,...] Collections (Python 3.9+ syntax)
  • Fix bug in annotation matching
  • Improve AST diff generation for Python annotations

3.1.0

04 Mar 15:06

Choose a tag to compare

The first RefactoringMiner version with multi-language support

Core Improvements

  1. Supports Python 3.14.2 (ANTLR parser implementation by @dkalaitz)
  2. Supports Kotlin 2.3.10 (kotlin-compiler-embeddable:2.3.10)
  3. Supports cross-language refactoring detection (Java to Kotlin migration)

Benchmarks

  1. Python
  2. Kotlin

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