Skip to content

Releases: ASSERT-KTH/spork

Spork v0.5.1

09 Jul 12:00
v0.5.1
111eb31
Compare
Choose a tag to compare

Release with a single bugfix.

Bugfixes

  • Fix false positive conflict in line-based merge on pure addition (#145)
    • This mostly affected additions of file headers

Spork v0.5.0

27 May 22:10
Compare
Choose a tag to compare

This release contains some new features and bugfixes. It's the version of Spork used for my thesis experiments.

Features

  • Reprint single-revision comments, fix #137
  • Add configurable structural conflict handling (#141)
  • Refactor ContentMerger to use configurable handlers, fix #142

Bugfixes

  • Apply post-processing to find duplicated type members (#138)
    • Previously, duplicated type members could sometimes occur

Spork v0.4.2

26 May 08:47
Compare
Choose a tag to compare

Bugfixes

  • [fix] Have --exit-on-error actually disable global fallback

Spork v0.4.1

25 May 19:57
Compare
Choose a tag to compare

This is just a quick hotfix.

Bugfixes

  • [fix] Check for existence of CU befor getting comment #134

Spork v0.4.0

24 May 18:37
Compare
Choose a tag to compare

Spork v0.4.0 release notes

Features

  • 02ad893 Implement fallback for move and delete conflicts (#128)
    • Move and delete conflicts previously caused crashes, but now Spork falls back on a node-local line-based merge
  • 3ceee85 Merge comments attached to the compilation unit
    • Comments at the very top of a file (above the package statement) are now also merged.

Bugfixes

  • dab33b3 Introduce intermediate virtual nodes for select concrete nodes (#133)
  • f4897d5 Don't assume node order in getOriginalSource, fix #131
  • 265b0ae Improve active package finding, fix #129
  • 55fc0d4 Use XY matcher for left-to-right matching (#126)
  • b7b2c52 Fix flaky inconsistency detection (#125)
  • 8cc831b Make multi declaration detection stricter, fix #123
  • d972722 Detect conflict markers in double quotes, fix #122

Documentation

  • 48c8e78 Document the SpoonNode interface
  • 832202d Update usage information in README

Refactorings

  • 737e935 Optimize start/end of child lists

Other

  • 1eaaa9f Use latest version of gumtree-spoon-ast-diff
  • 436664a Use latest version of Spoon

Spork v0.3.0

12 May 17:49
Compare
Choose a tag to compare

Spork v0.3.0 release notes

This is an exciting release with tons of new features, stability fixes and general tuning made to Spork. It now actually works pretty well!

Features

  • 4ef433e Add line-based fallback and --exit-on-error option, fix #120
    • By default, Spork will now fall back on a line-based merge if it encounters a critical error when merging structurally. Such cases are rare, but they do occur, especially in the presence of complicated move conflicts. --exit-on-error disables the line-based fallback, which is useful for research work but not recommended otherwise.
  • 14f733b Make Spork comply with git merge-file, fix #113
    • Now returns the amount of conflicts. Roughly.
  • 0643d74 Dynamically get version from pom.properties, fix #118
    • --version now actually shows the version number!
  • ca05291 Remove the compare command, fix #117
    • The compare command no longer served a purpose. Merging is now invoked with just spork, as opposed to spork merge.
  • 79517d7 Add --logging option that enables logging, fix #104
    • The --logging option enables logging, which is otherwise disabled. It lets you know roughly what Spork is doing!
  • fee080a Improve indentation size guessing: choose 1, 2 or 4 #100
  • 6f11494 fee080a Guess indentation of source files, fix #100
    • Will guess the indentation level and type (tabs or spaces) of the source files and apply that to the output file.
  • 4d5ffb6 Use original source for methods and fields (#97)
    • Spork will now reuse the original source code for methods and fields that have not been merged internally. This dramatically improves the formatting accuracy of Spork.

Bugfixes

  • 56491be Add leaf node PCS child lists, fix #116
  • 3b035ab Avoid using original source for multi-declarations, fix #111
  • c95b20e Fix non-deterministic move conflict detection, fix #101
  • 1934a10 Fix incorrect indentation bug when writing raw source
  • f54dced Fix off-by-one bugs in SourceExtractor
  • 590ddb7 Extract source code fragments from strings instead of bytes, fix #99

Refactorings

Spork v0.2.1

06 Apr 09:46
Compare
Choose a tag to compare

Spork v0.2.1 release notes

Just some minor bugfixes.

Bugfixes

  • 35b2955 Add temporary fix for package reference bug #94
  • d4a42b4 Resolve name of anonymous class to "0", fix #93

Spork v0.2.0

29 Mar 16:59
Compare
Choose a tag to compare

Spork v0.2.0 release notes

This is a pretty massive release for Spork. It's now fairly stable and should work almost without fail. There are still corner cases that don't quite work, mostly involving certain forms of move conflicts (i.e. where the same AST node has been moved to conflicting locations).

Features

  • 4234225 Allow root conflicts #87
  • 8c0f5d4 Exit non-zero on conflict, fix #85
    • For Git compatibility
  • f76420c Add Git compatibility mode, fix #84
    • This allows Spork to merge files that don't end in .java
  • 4a58cc7 Throw exception when a conflict is not handled in preproccessing
  • fa13683 Improve printing of conflicts, fix #66
  • e8d41dc Deal with conflicts in comments #35
  • c8e693d Automatically resolve ordering conflicts #5
  • 552ae18 Add --output option to merge command, fix #46
  • 07e1c5a Compare with gumtree-spoon, ignoring comments, fix #45
  • 23dfa51 Use picocli to create separate merge and compare commands, fix #44
    • The CLI is now much more pretty!
  • ca5a740 Compare to expected with ordering-aware comparison and exit non-zero on mismatch, fix #33

Bugfixes

  • e88f2c3 Resolve name of anonymous class to empty string #86
  • d96702c Properly merge use of "var" keyword, fix #92
  • efbb59d Prevent matchings between primitive and non-primitive type refs, fix #91
  • 871c026 Check for content equality in mapping inference, fix #90
  • 44a7e55 Resolve IS_VARARGS content of parameters, fix #88
  • 0a8828c Always add virtual nodes in class rep map, fix #83
  • 1bebf1f Fix broken isRootConflict method
  • 69b5816 Merge content of both pred and succ, fix #82
  • d316fd7 Use line-based merge if merge has no types, fix #78
  • c804c3c Avoid mapping annotation values to non-annotation values, fix #79
  • 884d590 Never force wildcard generics, fix #77
  • cb356a3 Fix indexing bug in textual merge
  • cbb7d7d Fix merging of annotation values, fix #74
  • b562729 Only map nodes of the exact same type #57
  • 1092688 Throw exception on move conflict #57
  • 9484de2 Don't unset source position twice
  • ee79bb2 Process comments explicitly in PrinterPreprocessor, fix #72
  • 48728a2 Print operator conflicts #69
  • 4707766 Revert " Add "magic fix" for caching issue #65"
  • 6c3b710 Don't skip PCSes already in conflicts, fix #65
  • 211383c Properly handle modifier merge conflict #43
  • 412d688 Resolve content for default method #43
  • 12f3a9d Properly pretty-print merge conflict on super/extends of wildcard #43
  • c0aebe4 Properly merge implicitness of values #43
  • 39b6887 Add "magic fix" for caching issue #65
  • 9505e8a Re-add setting ignore implicit and add a note saying why it is important
  • 5ab6209 Properly resolve the content of comments #35
  • 29990ca Redesign structural conflict handling #55
  • 434eea4 Correctly deal with wildcard bounds, fix #37
  • 2d99e26 Reparse modules in compare after sorting elements to avoid strangeness
  • 609004c Remove named annotation value from test case #49
  • 8699dd7 Don't print implicit values, fix #48
  • 400b1a2 Search for non-empty packages when finding active package, fix #47
  • 9180a14 Also unset source position when sorting type members, fix #40
  • 6cdbf47 Deal with merging of modifiers #36
  • d41d50b Resolve and attach modifiers as "secondary values" #36
  • 00bb5ec Resolve operator kinds in merge, fix #31
  • d966241 Prevent SpoonMapping inferring matches on nodes of different type, fix #32

Documentation

  • bc97538 Add instructions on merge driver configuration
  • 3c8e6df Update link to pre-compiled jar in README

Spork v0.1.0

25 Feb 13:05
Compare
Choose a tag to compare

Spork v0.1.0 release notes

The big new features is that Spork can now handle conflicts, making it a fully functioning prototype of a merge tool. That is not to say that it doesn't blow up sometimes (it does!), but it handles all tasks a merge tool should be able to handle. Just not always correctly :)

Features

  • 05fb207 Add support for handling structural conflicts #20
    • See PR #28 for more details on this
  • cec7468 Add rudimentary handling of content conflicts #19
    • See PR #22 for more details on this
  • 7ffc924 Only perform top-down matching for left-right match #23
  • ed25494 Add conservative approach to augmenting class representatives map #23
  • 374b374 Handle merging of import statements, fix #17
  • 1b82d0f Add front end support for non-single-class files, fix #15
  • a2ea0b0 Add back end support for non-single-class files, fix #14
  • 72cdd9f Handle content for the most common code elements #1

Bugfixes

  • 02eebc5 Skip processing PCS that is already conflicting #21
  • 577f31f Augment class representatives more conservatively #23
  • f71f05f Fix bug in getOtherPredecessor causing it to never work
  • 660d44a Also pretty-print package statements, fix #16
  • 72c2ae6 Work around bug in Spoon by reading from virtual file #18
  • 5e69f5a Fix crash caused by mishandling annotations with contents, fix #2

Spork v0.0.1

16 Feb 12:25
Compare
Choose a tag to compare

This is the first, somewhat functioning release of Spork! It can resolve fairly fairly straightforward merges that perform structural modifications (updates, deletes and moves). As for updates of nodes, only literal values are currently supported.

Conflicts are essentially not handled at all, and just results in Spork crashing.