Releases: jplag/JPlag
v6.2.0
Fill out a quick (<5 min) survey to help us and give feedback: Take me to the survey 🤩
Java Version
JDK 21
What's Changed
- Add cli option for specifying the submission encoding, thus disabling automatic encoding detection (try using
--encoding
). - Try out the multi-language module: Considers all source code of supported languages (try using
-l multi
). - Introduce additional similarity metrics (see Report Viewer changes).
- Improve the comparison algorithm performance for large workloads.
- In the visualization, improve highlighting of tokens that stretch across multiple lines.
- Add support for matches with different lengths on either side of a submission (a special case for a normalization mechanism).
- Fix bug in the subsequence match merging mechanism (try using
--match-merging
). - Fix bug that causes crashes for min token match values above 25.
Click to show details...
- Bump version to 6.2.0-SNAPSHOT by @uuqjz in #2335
- Update terminology regarding result files by @tsaglam in #2338
- Improve code quality and fix minor issues by @tsaglam in #2339
- Fix usage of deprecated methods in non-deprecated code by @robinmaisch in #2349
- Fix typos and extend some documentation by @robinmaisch in #2350
- Match file extensions independently of capitalization by @tsaglam in #2352
- Add Q&A section to the Wiki by @tsaglam in #2362
- Fix dynamic loading of Mockito agent by @robinmaisch in #2379
- Migrate to Maven Central by @dfuchss in #2383
- multi language open tasks by @TwoOfTwelve in #2315
- Fix bug regarding indeterministic match merging by @tsaglam in #2413
- Normalize WITH token braces to match BEGIN/END convention by @holtvogt in #2414
- Switch pre-commit to bash by @TwoOfTwelve in #2422
- Add GitHub issue forms by @holtvogt in #2368
- CheckResultFileWritableTest - Files still writable after calling setWritable(false) by @TwoOfTwelve in #2421
- Introduce asymmetric matches by @tsaglam in #2396
- Improved error messages for token position tests by @TwoOfTwelve in #2423
- Improve the comparison algorithm performance for large workloads by @tsaglam in #2412
- Enforce consistent terminology regarding file extensions by @tsaglam in #2439
- Fix bug that causes crashes for min token match values above 25 by @tsaglam in #2461
- Improve naming in the core algorithm by @tsaglam in #2462
- Adjust dev-demo path by @sebinside in #2463
- Fix merging matches across files by @tsaglam in #2478
- Added cli option for specifying the submission encoding by @TwoOfTwelve in #2469
- Fix issues raised by newly introduced Spotless rules by @tsaglam in #2489
- Add JPlag Website Stub by @sebinside in #2488
- Remove guardrails from the GST algorithm by @tsaglam in #2490
- Resolve quality and style issues resolving test cases by @tsaglam in #2497
- Fix some code quality issues in the clustering module by @tsaglam in #2498
- Extracting comments from submissions by @c0derMo in #2426
- Dissolve the shared parser superclass by @tsaglam in #2511
- Frequency determination by @heylissi in #2392
- Switch to new sonarcloud workflow implementation by @TwoOfTwelve in #2518
- Rewrite of the scala module in java by @TwoOfTwelve in #2514
- Add end position to Token by @Kr0nox in #2438
Report Viewer Changes
- Introduce additional similarity metrics:
- Longest Match: The longest matching fragment between two programs as measured in tokens - useful when there are no apparent suspicious outliers.
- Maximum (Submission) Length: The length of the longer program in a comparison as measured in tokens - useful to check for indicators of excessive obfuscation.
- Add boxplot as a new diagram type in addition to the histogram.
- The Report Viewer now shows a warning in the overview for all submissions which cannot be parsed or processed.
- Clicking on the histogram now jumps to the corresponding comparisons in the top list.
- In the overview, the division of space between the histogram and the top list can be adjusted by dragging the center bar.
- No longer show absolute paths in the report.
- Improve clustering visualization.
- Introduce icons for metrics.
Click to show details...
- Change text of anonymization button by @Kr0nox in #2356
- Fix syntax highlighting by @Kr0nox in #2363
- Remove unzipped file based local mode by @Kr0nox in #2365
- Make tooltips more visible by @Kr0nox in #2355
- Restructure report by @Kr0nox in #2316
- Warning when submission parsing failed by @Kr0nox in #2318
- Add reason for failed submission by @Kr0nox in #2394
- Fix line hover outside of cluster graph by @Kr0nox in #2399
- Remove link to hosted report viewer by @Kr0nox in #2425
- Make click on bar diagramm scroll to bucket in table by @Kr0nox in #2424
- Use relative paths in report by @Kr0nox in #2437
- Improve cluster graph by @Kr0nox in #2397
- Remove deprecated call to length in BaseCodeReportWriter by @Kr0nox in #2440
- Fix relativization of paths by @Kr0nox in #2450
- Enable resizing on overview by @Kr0nox in #2451
- Add Boxplot by @Kr0nox in #2452
- Fix bugs with failed submissions display by @Kr0nox in #2465
- Enable searching by anonymized name by @Kr0nox in #2466
- Remove mention of zip in report viewer by @Kr0nox in #2460
- Check that content of record and interface match by @Kr0nox in #2470
- Remove mention of "file suffix" in report viewer by @Kr0nox in #2491
- Add more similarity metrics by @Kr0nox in #2058
- Remove package lock file in root by @Kr0nox in #2512
- Adjust allowed metrics for boxplot by @Kr0nox in #2516
- Add icons for Metrics by @Kr0nox in #2499
Updated Dependencies
As always, we updated some dependencies.
Click to show details...
- Dependency(deps-dev): Bump @playwright/test from 1.51.1 to 1.52.0 in /report-viewer by @dependabot[bot] in #2325
- Dependency(deps-dev): Bump typescript-eslint from 8.30.1 to 8.31.0 in /report-viewer by @dependabot[bot] in #2321
- Dependency(deps-dev): Bump @pinia/testing from 1.0.0 to 1.0.1 in /report-viewer by @dependabot[bot] in #2322
- Dependency(deps-dev): Bump vue-tsc from 2.2.8 to 2.2.10 in /report-viewer by @dependabot[bot] in #2324
- Dependency(deps-dev): Bump typescript-eslint from 8.31.0 to 8.31.1 in /report-viewer by @dependabot[bot] in #2345
- Dependency(deps-dev): Bump @types/node from 22.14.1 to 22.15.3 in /report-viewer by @dependabot[bot] in #2343
- Dependency(deps): Bump vue-router from 4.5.0 to 4.5.1 in /report-viewer by @dependabot[bot] in #2344
- Dependency(deps): Bump chart.js from 4.4.8 to 4.4.9 in /report-viewer by @dependabot[bot] in #2342
- Dependency(deps-dev): Bump vite from 6.3.0 to 6.3.4 in /report-viewer by @dependabot[bot] in #2341
- Dependency(deps): Bump com.fasterxml.jackson.core:jackson-databind from 2.18.3 to 2.19.0 by @dependabot[bot] in #2346
- Dependency(deps): Bump io.soabase.record-builder:record-builder-processor from 44 to 45 by @dependabot[bot] in #2347
- Dependency(deps): Bump org.scalameta:scalameta_2.13 from 4.13.4 to 4.13.5 by @dependabot[bot] in #2348
- Dependency(deps-dev): Bump vitest from 3.1.1 to 3.1.3 in /report-viewer by @dependabot[bot] in #2357
- Dependency(deps-dev): Bump @typ...
v6.1.0
Java Version
JDK 21
What's Changed
- Report files now have a dedicated file extension:
.jplag
(internally, they remain ZIP files). - Fix a concurrency issue that occurred in very rare cases and led to crashes.
- Improve performance through additional parallelization of existing steps:
- Parallel submission parsing.
- Parallel normalization via
--normalize
. - Parallel match-merging via
--match-merging
.
- Improve documentation of the JPlag API.
- Improve error messages.
- Fix a bug that led to incorrect visualization of matches for Java classes without any modifiers.
- Fix a minor bug in the EMF language modules.
Click to show details...
- Increment JPlag revision to snapshot revision by @tsaglam in #2194
- Clean-up code base to improve code quality by @tsaglam in #2195
- Update develop from main by @tsaglam in #2200
- Greedy String Tiling out of bounds by @TwoOfTwelve in #2179
- Apply checkstyle fixes by @tsaglam in #2220
- Fix documentation regarding language options by @tsaglam in #2232
- Further parallelization of the JPlag pipeline by @tsaglam in #2234
- Clean up the language interfaces by @tsaglam in #2235
- Apply automated clean-up operations by @tsaglam in #2259
- Include file names and paths in ANTLR error messages. by @tsaglam in #2276
- Improve short submission error. by @tsaglam in #2274
- Fix Java module token tracing bug for classes without modifers by @tsaglam in #2303
- Improve the JPlag API by @tsaglam in #2278
- Switch GreedyStringTiling from IdentityHashMap to ConcurrentHashMap by @TwoOfTwelve in #2244
- Hotfix: Prevent combining SMM with basecode by @uuqjz in #2319
- Fix typos and grammar in the wiki by @tsaglam in #2326
- Ensure Ecore extensions are only registered once by @tsaglam in #2329
- Fix file ending of result file in dev demo workflow. by @tsaglam in #2331
- Reclassify language module maturity by @tsaglam in #2308
- Add script checking CLI help text by @Kr0nox in #2302
- Update develop from main by @Kr0nox in #2287
Report Viewer Changes
- Fix a bug that prevented the report viewer to be run in WSL.
- Improve report viewer layout on small screens and mobile devices.
- You can now properly use zoom in the browser.
- More intuitive sorting of top comparisons.
- Report files now have a dedicated file extension:
.jplag
. - Per default, all files are now expanded in the comparison view.
- The button "Collapse All" in the comparison view now allows to both collapse and expand all files.
- We also included some minor bug fixes and enhancements.
Click to show details...
- Ensure that IPv4 network stack is preferred. by @dfuchss in #2208
- Fix duplicate images in wiki by @Kr0nox in #2197
- Fix token count extraction in demo by @Kr0nox in #2198
- Remove Json option from file upload view by @Kr0nox in #2204
- Fix language export and import in report by @Kr0nox in #2205
- Automatic code analysis of report viewer by @Kr0nox in #2206
- Migrate tailwind to v4 by @Kr0nox in #2221
- Update report readme by @Kr0nox in #2272
- Extract failed submissions by @Kr0nox in #2286
- Move matches text to start of line by @Kr0nox in #2291
- Add expand all option for files by @Kr0nox in #2290
- Move sorting to table headers by @Kr0nox in #2289
- Make design more responsive by @Kr0nox in #2306
- Develop Demo by @Kr0nox in #2317
- Fix deployment of dev demo by @Kr0nox in #2328
- Change report file ending to .jplag by @Kr0nox in #2293
- Fix dev demo not taking example files by @Kr0nox in #2330
Updated Dependencies
As always, we updated some dependencies.
Click to show details...
- Dependency(deps): Bump pinia from 2.3.1 to 3.0.1 in /report-viewer by @dependabot in #2199
- Dependency(deps): Bump slf4j.version from 2.0.16 to 2.0.17 by @dependabot in #2211
- Dependency(deps): Bump org.codehaus.mojo:flatten-maven-plugin from 1.6.0 to 1.7.0 by @dependabot in #2210
- Dependency(deps): Bump org.eclipse.emf:org.eclipse.emf.common from 2.40.0 to 2.41.0 by @dependabot in #2212
- Dependency(deps): Bump org.scalameta:scalameta_2.13 from 4.12.7 to 4.13.2 by @dependabot in #2213
- Dependency(deps): Bump JamesIves/github-pages-deploy-action from 4.7.2 to 4.7.3 by @dependabot in #2219
- Dependency(deps-dev): Bump junit.version from 5.11.4 to 5.12.0 by @dependabot in #2209
- Dependency(deps-dev): Bump typescript-eslint from 8.22.0 to 8.25.0 in /report-viewer by @dependabot in #2218
- Dependency(deps-dev): Bump @vue/eslint-config-typescript from 14.3.0 to 14.4.0 in /report-viewer by @dependabot in #2216
- Dependency(deps-dev): Bump vue-tsc from 2.2.0 to 2.2.4 in /report-viewer by @dependabot in #2214
- Dependency(deps-dev): Bump vite from 6.1.1 to 6.2.0 in /report-viewer by @dependabot in #2215
- Dependency(deps-dev): Bump vitest from 3.0.5 to 3.0.7 in /report-viewer by @dependabot in #2228
- Dependency(deps): Bump com.diffplug.spotless:spotless-maven-plugin from 2.44.2 to 2.44.3 by @dependabot in #2226
- Dependency(deps): Bump com.fasterxml.jackson.core:jackson-databind from 2.18.2 to 2.18.3 by @dependabot in #2225
- Dependency(deps): Bump org.apache.maven.plugins:maven-deploy-plugin from 3.1.3 to 3.1.4 by @dependabot in #2224
- Dependency(deps-dev): Bump org.mockito:mockito-core from 5.15.2 to 5.16.0 by @dependabot in #2223
- Dependency(deps-dev): Bump typescript-eslint from 8.25.0 to 8.26.0 in /report-viewer by @dependabot in #2231
- Dependency(deps-dev): Bump @pinia/testing from 0.1.7 to 1.0.0 in /report-viewer by @dependabot in #2230
- Dependency(deps-dev): Bump prettier from 3.4.2 to 3.5.3 in /report-viewer by @dependabot in #2229
- Dependency(deps): Bump chart.js from 4.4.7 to 4.4.8 in /report-viewer by @dependabot in #2227
- Dependency(deps-dev): Bump eslint from 9.18.0 to 9.22.0 in /report-viewer by @dependabot in #2239
- Dependency(deps-dev): Bump typescript-eslint from 8.26.0 to 8.26.1 in /report-viewer by @dependabot in #2238
- Dependency(deps): Bump org.scalameta:scalameta_2.13 from 4.13.2 to 4.13.3 by @dependabot in #2242
- Dependency(deps): Bump org.eclipse.platform:org.eclipse.core.resources from 3.22.0 to 3.22.100 by @dependabot in #2241
- Dependency(deps): Bump com.ibm.icu:icu4j-charset from 76.1 to 77.1 by @dependabot in #2253
- Dependency(deps-dev): Bump junit.version from 5.12.0 to 5.12.1 by @dependabot in #2252
- Dependency(deps): Bump org.scalameta:scalameta_2.13 from 4.13.3 to 4.13.4 by @dependabot in #2251
- Dependency(deps-dev): Bump org.mockito:mockito-core from 5.16.0 to 5.16.1 by @dependabot in #2250
- Dependency(deps-dev): Bump @types/node from 22.13.1 to 22.13.10 in /report-viewer by @dependabot in #2257
- Dependency(deps-dev): Bump @playwright/test from 1.50.1 to 1.51.1 in /report-viewer by @dependabot in #2255
- Dependency(deps-dev): Bump @vue/eslint-config-typescript from 14.4.0 to 14.5.0 in /report-viewer by @dependabot in #2258
- Dependency(deps-dev): Bump @tailwindcss/vite from 4.0.9 to 4.0.14 in /report-viewer by @dependabot in #2256
- Dependency(deps-dev): Bump @eslint/js from 9.22.0 to 9.23.0 in /report-viewer by @dependabot in #2265
- Dependency(deps-dev): Bump @vitejs/plugin-vue from 5.2.1 to 5.2.3 in /report-viewer by @dependabot in #2263
- Dependency(deps-dev): Bump @rushstack/eslint-patch from 1.10.5 to 1.11.0 in /report-viewer by @dependabot in https:/...
v6.0.0
Java Version
JDK 21
What's Changed
- The report viewer is now bundled into the JAR and will be launched automatically when running JPlag.
- The CLI flag
--mode
allows running JPlag without launching the viewer or launching the viewer without running JPlag. - When the mode flag is not set, the mode is inferred based on the input. If a report ZIP is provided, the viewer is launched. If submissions are provided, JPlag is executed, and the viewer is launched for the results.
- This means the hosted report viewer is now deprecated starting from this version of JPlag (will no longer be updated).
- Note that the print functionality of the report viewer allows to export pages as PDF files.
- The CLI flag
- Improved subsequence match merging (
--match-merging
) to reduce its effect on unrelated program pairs. - Fix a bug regarding preview features in Java code when running JPlag with Java > 21.
- Fix a bug where the normalization was not applied to the base code when running
--normalize
. - Increase the default number of exported comparisons to 2500 (was previously 500).
- Added a CLI argument for the log level.
- Improved error messages for invalid submissions.
- Improved error handling for the Java and R language modules.
Click to show details...
- Increment development version by @tsaglam in #1783
- Clean up Core, CLI, and Utility Modules by @tsaglam in #1787
- Overhaul submission error handling by @tsaglam in #1789
- Added new framework for Cli-Tests by @TwoOfTwelve in #1744
- Changed the final frame of the idle bar to be easier to identify. by @TwoOfTwelve in #1823
- Clean up logger by @tsaglam in #1826
- Fix a bug where the base code submission was not normalized by @tsaglam in #1827
- Added command line option for log-level by @TwoOfTwelve in #1751
- Ensure JPlag fails gracefully if JavaC is not available and Java code is analyzed by @tsaglam in #1835
- Added the --overwrite option to the docs by @TwoOfTwelve in #1847
- Fix bug with --enable-preview on Java 22 by @tsaglam in #1854
- Output antlr error to a logger instead of System.err by @TwoOfTwelve in #1868
- Improve character index of token tracing information for better visualization of Java matches by @tsaglam in #1869
- Feature/record builders by @TwoOfTwelve in #1828
- Replaced 'Commands' in the help text by 'Languages'. by @TwoOfTwelve in #1870
- Improve code quality of token sequence normalization by @tsaglam in #1872
- Avoid progress bar overlap by @TwoOfTwelve in #1866
- Fix bugs for WSL by @Kr0nox in #1838
- Print error messages before starting local server by @TwoOfTwelve in #1905
- Added a warning when a newer version is available in the cli. by @TwoOfTwelve in #1904
- Added pre-commit hook checking spotless by @TwoOfTwelve in #1881
- Added missing CLI tests by @TwoOfTwelve in #1933
- Added structure for token position tests. by @TwoOfTwelve in #1914
- Fixed token position zero in text module by @TwoOfTwelve in #1949
- Improve Wiki by @tsaglam in #1951
- Added names to token position tests by @TwoOfTwelve in #1961
- Updated documentation by @TwoOfTwelve in #1982
- Small fix for the cpp semantics. Probably doesn't make a difference. by @TwoOfTwelve in #2031
- Refactored RLang language module to new framework by @TwoOfTwelve in #1864
- Update README.md by @tsaglam in #2049
- Added token position tests for annotations by @TwoOfTwelve in #1960
- Increase the number of exported comparisons by @Kr0nox in #2022
- Multi-Language Program Support by @TwoOfTwelve in #2087
- Implemented GreedyStringTiling workaround by @TwoOfTwelve in #2076
- Updated the swift implementation to the new framework by @TwoOfTwelve in #2109
- Add all dependencies to coverage report by @Kr0nox in #2170
- Added the option to specify a result file with --mode VIEW by @TwoOfTwelve in #2075
- Enforce minimum merges when using match merging. by @tsaglam in #2188
- Added automatic mode selection by @TwoOfTwelve in #2168
Report Viewer Changes
- The report viewer will now be launched locally, see changes above (the hosted report viewer is no longer required).
- Base code is now highlighted in the report viewer with a light gray background color.
- Improved the distribution diagrams to be more fine-grained and thus more versatile.
- Enhance the search bar of the comparison table, allowing filtering by index (e.g.
index:5
) or for similarity values (e.g.>70
). Refer to the tooltip for more information. - The comparison view now allows you to sort the program files by name or match-specific metrics (as before, the files can be manually reordered via drag and drop).
- Implemented backward compatibility for old reports.
- When using a report from a previous version, the user will be warned, and an old version of the report viewer will be launched.
- Reports created with JPlag versions earlier than 4.2.0 are not supported.
- Redesigned dark mode color scheme for improved readability.
- Improved cluster visualisation.
- Fix display bug regarding Unicode characters in program code.
- Fixed some minor bugs.
Click to show details...
- Fix report viewer scrolling bug in main branch by @tsaglam in #1882
- Remove backwards-compability from report viewer by @Kr0nox in #1784
- Fix cut off code displaying by @Kr0nox in #1788
- Refactor Json Match by @Kr0nox in #1796
- Merge develop into main by @Kr0nox in #1824
- Enhance Distribution Diagramm by @Kr0nox in #1803
- Display Basecode in report viewer by @Kr0nox in #1825
- Enhance search bar of comparison table by @Kr0nox in #1839
- Clean up report viewer code by @Kr0nox in #1867
- Fix overscroll when clicking match by @Kr0nox in #1871
- Only show parts of path that differ in report viewer by @Kr0nox in #1880
- Add toast for new version notification by @Kr0nox in #1892
- Add file sorting by @Kr0nox in #1891
- Use language identifiers in report by @Kr0nox in #1924
- Use name when processing search bar input by @Kr0nox in #1950
- Adjust report viewer logging rules by @Kr0nox in #1948
- Fix inconsistent names of languages by @Kr0nox in #1902
- Switch tests to correct pinia framework by @Kr0nox in #1947
- Update report viewer readme by @Kr0nox in #1931
- Reset dev version in report viewer by @Kr0nox in #1953
- Remove single file upload by @Kr0nox in #1957
- Demo starts on Overview by @Kr0nox in #1956
- Change to default local mode by @Kr0nox in #1952
- Fix exporting of last token in match by @Kr0nox in #1955
- Fix filtering by metric by @Kr0nox in #1959
- Dark mode redesign by @Kr0nox in #1893
- Test comparison table by @Kr0nox in #1958
- Reduce misleading of cluster edges by @Kr0nox in #1973
- Fix clicking on match opening wrong match by @Kr0nox in #1984
- Documentation of complete e2e tests by @Kr0nox in #1983
- Update report viewer documentation by @Kr0nox in #1985
- Fix dev main merge issues by @Kr0nox in #2033
- Reverse distribution by @Kr0nox in #2050
- Dont display base code in all files by @Kr0nox in #2099
- Fix html unicode hex escapes being one character short by @Kr0nox in #2118
- Eslint upgrade by @Kr0nox in #2086
- Use default vite port by @Kr0nox in #2157
- Add ability to open old report viewers by @Kr0nox in https://github.com/jplag/JPl...
v5.1.0
Java Version
JDK 21
What's Changed
- Improved error messages for multiple languages
- Introduced dynamic progress bars in the CLI instead of the old wall of text
- Output files for reports are no longer overridden (if you still want to, use
--overwrite
) - Bug fixes and enhancements
Click to show details...
- Update develop from main by @tsaglam in #1594
- Change development revision to 5.1.0-SNAPSHOT by @tsaglam in #1596
- Adapt deploy action to also trigger when release drafts are published by @tsaglam in #1608
- Fixed a bug, where the cpp listener could throw a null pointer exception by @TwoOfTwelve in #1613
- Fix sonar link of the coverage badge by @tsaglam in #1615
- Avoided null pointer exception in JPlagGoListener. by @TwoOfTwelve in #1614
- Fix ParsingException in cases of null file parameter by @jepst in #1643
- FilePathUtils.joinZipPathSegments error on windows by @TwoOfTwelve in #1609
- Fixed wrong paths in results.zip with multiple root directories. by @TwoOfTwelve in #1645
- Update the location of sortAlgo resources by @emmanuel-ferdman in #1693
- Bump vite from 5.1.1 to 5.1.7 in /report-viewer by @dependabot in #1688
- Feature/cli module refactoring by @TwoOfTwelve in #1607
- Added progress bars for Match Merging and Token String Normalization. by @TwoOfTwelve in #1690
- Cli enum options by @TwoOfTwelve in #1705
- Added generic catch clause in the c language module by @TwoOfTwelve in #1691
- Added missing line separator by @TwoOfTwelve in #1722
- Migrate go language module to new framework by @TwoOfTwelve in #1694
- Added idle bars by @TwoOfTwelve in #1680
- Update python language module by @TwoOfTwelve in #1750
- Avoided overwriting of files by @TwoOfTwelve in #1716
- Increment JPlag revision to v5.1.0 by @tsaglam in #1782
- Merge develop into main by @tsaglam in #1781
- Update develop from main by @Kr0nox in #1696
- Fix Jar Upload by @Kr0nox in #1697
- Add workflow for closing issues on develop merge by @Kr0nox in #1745
- Fix close pr workflow closing wrong issues by @Kr0nox in #1748
- Catch all Exceptions in java by @Kr0nox in #1768
Report Viewer Changes
- Character precise matches: JPlag can now visualize where matches start and end in a single line
- Table of related submissions in the cluster view
- Some fixes and improvements
Click to show details...
- fix broken edge click on cluster chart by @Kr0nox in #1595
- Fix version of report viewer by @Kr0nox in #1630
- Hide local files button in VIEW mode by @Kr0nox in #1628
- Complete system e2e test by @Kr0nox in #1631
- fix unhiding through searchbar by @Kr0nox in #1632
- Reenable search test by @Kr0nox in #1640
- show hover text all the time by @Kr0nox in #1646
- Support unknown languages by @Kr0nox in #1648
- Report viewer/clean console by @Kr0nox in #1647
- bump fontawesome to 6.5.2 by @Kr0nox in #1689
- Added related submission table to cluster view by @Kr0nox in #1692
- Character precise matches by @Kr0nox in #1695
- Add Tool Tip for Bread Crumbs in Comparison View by @Kr0nox in #1717
- Add e2e test for some languages by @Kr0nox in #1721
- Fix superlinear regex by @Kr0nox in #1736
- Better warning for missing files by @Kr0nox in #1747
- Improve flaky e2e tests by @Kr0nox in #1749
Updated Dependencies
As always, we updated some dependencies.
Click to show details...
- Dependency(deps): Bump org.codehaus.mojo:exec-maven-plugin from 1.3.2 to 3.1.1 by @dependabot in #1585
- Dependency(deps): Bump org.scalameta:scalameta_2.13 from 4.8.15 to 4.9.0 by @dependabot in #1584
- Dependency(deps-dev): Bump @types/node from 18.19.15 to 18.19.17 in /report-viewer by @dependabot in #1589
- Dependency(deps-dev): Bump vitest from 1.2.2 to 1.3.1 in /report-viewer by @dependabot in #1588
- Dependency(deps-dev): Bump vite from 5.1.1 to 5.1.4 in /report-viewer by @dependabot in #1599
- Dependency(deps-dev): Bump @playwright/test from 1.41.2 to 1.42.0 in /report-viewer by @dependabot in #1623
- Dependency(deps): Bump vue-router from 4.2.5 to 4.3.0 in /report-viewer by @dependabot in #1624
- Dependency(deps-dev): Bump eslint from 8.56.0 to 8.57.0 in /report-viewer by @dependabot in #1626
- Dependency(deps-dev): Bump eslint-plugin-vue from 9.21.1 to 9.22.0 in /report-viewer by @dependabot in #1627
- Dependency(deps-dev): Bump @types/node from 18.19.17 to 18.19.19 in /report-viewer by @dependabot in #1625
- Dependency(deps): Bump org.codehaus.mojo:exec-maven-plugin from 3.1.1 to 3.2.0 by @dependabot in #1618
- Dependency(deps): Bump org.scala-lang:scala-library from 2.13.12 to 2.13.13 by @dependabot in #1622
- Dependency(deps): Bump org.eclipse.emf:org.eclipse.emf.common from 2.29.0 to 2.30.0 by @dependabot in #1620
- Dependency(deps): Bump org.eclipse.emf:org.eclipse.emf.ecore from 2.35.0 to 2.36.0 by @dependabot in #1621
- Dependency(deps): Bump org.eclipse.emf:org.eclipse.emf.ecore.xmi from 2.36.0 to 2.37.0 by @dependabot in #1619
- Dependency(deps): Bump chart.js from 4.4.1 to 4.4.2 in /report-viewer by @dependabot in #1635
- Dependency(deps-dev): Bump @types/node from 18.19.19 to 18.19.21 in /report-viewer by @dependabot in #1634
- Dependency(deps-dev): Bump @playwright/test from 1.42.0 to 1.42.1 in /report-viewer by @dependabot in #1633
- Dependency(deps-dev): Bump autoprefixer from 10.4.17 to 10.4.18 in /report-viewer by @dependabot in #1637
- Dependency(deps-dev): Bump vue-tsc from 1.8.27 to 2.0.5 in /report-viewer by @dependabot in #1636
- Dependency(deps): Bump org.scalameta:scalameta_2.13 from 4.9.0 to 4.9.1 by @dependabot in #1639
- Dependency(deps-dev): Bump org.mockito:mockito-core from 5.10.0 to 5.11.0 by @dependabot in #1638
- Dependency(deps): Bump softprops/action-gh-release from 1 to 2 by @dependabot in #1658
- Dependency(deps): Bump org.apache.maven.plugins:maven-gpg-plugin from 3.1.0 to 3.2.0 by @dependabot in #1654
- Dependency(deps): Bump org.scalameta:scalameta_2.13 from 4.9.1 to 4.9.2 by @dependabot in #1655
- Dependency(deps): Bump org.apache.maven.plugins:maven-assembly-plugin from 3.6.0 to 3.7.0 by @dependabot in #1656
- Dependency(deps): Bump com.fasterxml.jackson.core:jackson-databind from 2.16.1 to 2.17.0 by @dependabot in #1657
- Dependency(deps-dev): Bump @types/node from 18.19.21 to 18.19.23 in /report-viewer by @dependabot in #1649
- Dependency(deps-dev): Bump vite from 5.1.4 to 5.1.6 in /report-viewer by @dependabot in #1653
- Dependency(deps-dev): Bump prettier-plugin-tailwindcss from 0.5.11 to 0.5.12 in /report-viewer by @dependabot in #1652
- Dependency(deps-dev): Bump @vue/eslint-config-typescript from 12.0.0 to 13.0.0 in /report-viewer by @dependabot in #1650
- Dependency(deps-dev): Bump typescript from 5.3.3 to 5.4.2 in /report-viewer by @dependabot in #1651
- Dependency(deps-dev): Bump @types/node from 18.19.23 to 18.19.26 in /report-viewer by @dependabot in #1665
- Dependency(deps-dev): Bump @vue/test-utils from 2.4.4 to 2.4.5 in /report-viewer by @dependabot in #1666
- Dependency(deps-dev): Bump vue-tsc from 2.0.5 to 2.0.6 in /report-viewer by @dependabot in https://github.com/jplag/JPlag/pu...
v5.0.0
Java Version
JDK 21
What's Changed
- New language modules (Javascript, Typescript, SCXML, LLVM-IR, EMF-model).
- Normalization mechanisms that improve resilience against obfuscation attacks.
- Token sequence normalization to counteract statement insertion & reordering (supported for Java and C++, use
--normalize
). - Subsequence match merging to counteract a wide variety of obfuscation attack (supported for every language, use
--match-merging
).
- Token sequence normalization to counteract statement insertion & reordering (supported for Java and C++, use
- Support for Java 21 (including preview feature support).
- The former C/C++ module is now named
c
, the newcpp2
module now just namedcpp
- Improved tokenization rules for the Java language module.
- Improvements to modeling plagiarism detection (Emfatic view, improved generic model view, normalization via
--normalize
). - Increase the default number of exported comparisons to 500.
- More resilience regarding different file encodings.
- Cleaner log via progress bars.
Click to show details...
- Speed up comparison by @brodmo in #1005
- Prevent changing the Java token sequence via changing if-else statements. by @tsaglam in #1003
- Documentation Workflow by @dfuchss in #1017
- Add token string normalization by @brodmo in #1007
- Feature/file encoding by @TwoOfTwelve in #1026
- Add SCXML language module by @smjonas in #1030
- Add static JPlag::run by @brodmo in #1041
- Print the number of tokens when it’s too little by @jtotht in #1067
- File total tokens added to report output by @jazerix in #1036
- Fix supported C# version in README by @jtotht in #1081
- Extract APPLY token for function calls with literal arguments by @SirYwell in #1080
- Changed the ClusteringFactory to only do something, if there are any … by @TwoOfTwelve in #1070
- Internal MM language module improvement draft by @tsaglam in #1053
- Merge main into develop by @tsaglam in #1088
- Increase development version to 4.4.0-SNAPSHOT. by @tsaglam in #1089
- Prototype for EMF model instance language module by @tsaglam in #856
- Feature/adopt python grammar fixes by @TwoOfTwelve in #1069
- Feature/new test structure for language modules by @TwoOfTwelve in #1100
- Improve log readability and parse error reporting by @tsaglam in #1133
- Implemented new cli, based on a different framework by @TwoOfTwelve in #1064
- Add test coverage to readme by @tsaglam in #1142
- Fix bug in the Java language tests by @tsaglam in #1143
- Improve test result visualization for the view file tests by @tsaglam in #1144
- Adjust JPlag descriptions by @sebinside in #1156
- Feature/antlr language utils by @TwoOfTwelve in #1159
- Prevent random exceptions when Emfatic is unable to provide a textual model view for EMF by @tsaglam in #1175
- Feature/refactor cpp2 language module by @TwoOfTwelve in #1167
- Expanded the language-antlr-utils to allow the extraction of semantic… by @TwoOfTwelve in #1177
- Changed all language class names and added READMEs where they where missing by @TwoOfTwelve in #1122
- Simplified names for map functions in AbstractAntlrListener.java by @TwoOfTwelve in #1180
- Updated the java tests to use the new test framework by @TwoOfTwelve in #1204
- Removed the @tempdir annotation, since it caused some warnings by @TwoOfTwelve in #1221
- Adapt loop tokenization rules of the Java language module by @tsaglam in #1223
- Improve readability of language test results by @tsaglam in #1224
- Run automatic cleanup on source code by @tsaglam in #1225
- Fix the token to line mapping for the EMF language and the Emfatic views by @tsaglam in #1227
- Improves the help output for the cli. by @TwoOfTwelve in #1220
- Added the option to initialize the parser lazily for AbstractAntlrLan… by @TwoOfTwelve in #1222
- Fixed an error when extracting the token length by @TwoOfTwelve in #1236
- Improve error messages for the java language feature test by @tsaglam in #1226
- Match merging against obfuscation by @uuqjz in #1202
- Always run java version test for the CI by @tsaglam in #1246
- Remove unnecessary submission length check in GreedyStringTiling by @uuqjz in #1250
- Adjusted behavior, default values and naming of MergingParameters by @uuqjz in #1251
- Add LLVM IR language module by @NiklasHeneka in #1233
- Re-write/Fix antlr-utils by @brodmo in #1263
- Allow passing multiple options in the "Advanced" group by @olmokramer in #1301
- LLVM IR min token and README adjustments by @NiklasHeneka in #1322
- Feature/rewrite csharp module by @TwoOfTwelve in #1330
- Made the GreedyStringTiling class deterministic in case both submissi… by @TwoOfTwelve in #1351
- Overhauled the end to end tests and added the test code from progpedia by @TwoOfTwelve in #1279
- Add normalization info to cpp tokens by @brodmo in #1371
- Java 21 by @TwoOfTwelve in #1370
- Fix failing develop build by @tsaglam in #1397
- Python tests rewrite by @TwoOfTwelve in #1387
- Increase default number of exported comparisons to 500. by @tsaglam in #1410
- Unify logger & Enforce Logger by Architecture Test by @dfuchss in #1411
- Add universal character names in identifiers to cpp parser by @nheir in #1408
- Deleted Metric record by @TwoOfTwelve in #1415
- cli default values by @TwoOfTwelve in #1434
- Improve performance of the match merging after the matching is done by @tsaglam in #1447
- Implemented csv export. by @TwoOfTwelve in #1385
- Fix logger name to ensure build is passing by @tsaglam in #1478
- Added a better error message, if no valid language was supplied. by @TwoOfTwelve in #1493
- Fix version of intra-project dependency for the kotlin module by @tsaglam in #1511
- Clean up progpedia dataset in the E2E tests by @tsaglam in #1513
- Changed AbstractAntlrParserAdapter to catch all exceptions during par… by @TwoOfTwelve in #1480
- Update develop from main by @tsaglam in #1525
- Merge develop into main by @tsaglam in #1524
- ImmediatlyWriteZip by @TwoOfTwelve in #1416
- Fix Java version badge in readme by @tsaglam in #1527
- Increase development version to 5.0.0-SNAPSHOT. by @tsaglam in #1526
- Renamed the submissions for the demo. by @TwoOfTwelve in #1530
- Changes to MatchMerging as its tests by nils. by @TwoOfTwelve in #1550
- Fixed bug in the end-to-end test, that occurred on mac, due to symbolic links. by @TwoOfTwelve in #1553
- Renamed cpp to c and cpp2 to cpp by @TwoOfTwelve in #1496
- Match merging: Use default values for CLI by @uuqjz in #1563
- Feature/normalization option by @TwoOfTwelve in #1479
- Improvement of the EMF metamodel and model languages by @tsaglam in #1545
- Fix bugs in CLI error handling by @tsaglam in #1570
- Renamed the result-directory option to result-file by @TwoOfTwelve in #1566
- Fixed a bug in the creation of the result due to missing slashes. by @TwoOfTwelve in #1568
- Implemented progress bars for the cli by @TwoOfTwelve in #1433
- Remove some unused code by @tsaglam in #1571
- Improve error handling and logging of the language modules by @tsaglam in #1572
- ...
v4.3.0
Java Version
JDK 17
What's Changed
This release adds an alternative C/C++ language module and includes some other improvements.
If you try out the new language module, feedback would be appreciated!
Click to show details...
- Correctly show matches when the token order is not line index order by @tsaglam in #971
- ANTLR grammar based C++ language module by @SirYwell in #937
- Fix two issues with the Java language module token extraction by @tsaglam in #940
- Clean-up dependencies of the core project by @tsaglam in #938
- Fix broken link in readme by @sebinside in #1035
Report Viewer Update
We also deployed a new report viewer version in parallel with this update.
Check it out at https://jplag.github.io/JPlag/.
Click to show details...
Updated Dependencies
As always, we updated some dependencies.
Click to show details...
- Dependency(deps): Bump antlr4.version from 4.11.1 to 4.12.0 by @dependabot in #942
- Dependency(deps): Bump maven-javadoc-plugin from 3.4.1 to 3.5.0 by @dependabot in #941
- Dependency(deps-dev): Bump lint-staged from 13.1.0 to 13.1.2 in /report-viewer by @dependabot in #948
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.51.0 to 5.53.0 in /report-viewer by @dependabot in #947
- Dependency(deps): Bump core-js from 3.27.2 to 3.28.0 in /report-viewer by @dependabot in #946
- Dependency(deps-dev): Bump @vue/test-utils from 2.2.10 to 2.3.0 in /report-viewer by @dependabot in #944
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.50.0 to 5.53.0 in /report-viewer by @dependabot in #945
- Dependency(deps): Bump maven-assembly-plugin from 3.4.2 to 3.5.0 by @dependabot in #953
- Dependency(deps): Bump org.eclipse.emf.ecore from 2.29.0 to 2.33.0 by @dependabot in #959
- Dependency(deps): Bump org.eclipse.emf.ecore.xmi from 2.17.0 to 2.18.0 by @dependabot in #952
- Dependency(deps): Bump org.eclipse.emf.common from 2.27.0 to 2.28.0 by @dependabot in #956
- Dependency(deps-dev): Bump jest from 29.4.0 to 29.4.3 in /report-viewer by @dependabot in #960
- Dependency(deps-dev): Bump eslint from 8.33.0 to 8.35.0 in /report-viewer by @dependabot in #955
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.53.0 to 5.54.0 in /report-viewer by @dependabot in #961
- Dependency(deps): Bump core-js from 3.28.0 to 3.29.0 in /report-viewer by @dependabot in #958
- Dependency(deps-dev): Bump jest-environment-jsdom from 29.4.2 to 29.4.3 in /report-viewer by @dependabot in #957
- Dependency(deps-dev): Bump jest from 29.4.3 to 29.5.0 in /report-viewer by @dependabot in #970
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.54.0 to 5.54.1 in /report-viewer by @dependabot in #969
- Dependency(deps-dev): Bump @vue/vue3-jest from 29.2.2 to 29.2.3 in /report-viewer by @dependabot in #966
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.53.0 to 5.54.1 in /report-viewer by @dependabot in #968
- Dependency(deps-dev): Bump jest-environment-jsdom from 29.4.3 to 29.5.0 in /report-viewer by @dependabot in #967
- Dependency(deps): Bump spotless-maven-plugin from 2.33.0 to 2.34.0 by @dependabot in #965
- Dependency(deps): Bump scala-maven-plugin from 4.8.0 to 4.8.1 by @dependabot in #964
- Dependency(deps): Bump core-js from 3.29.0 to 3.29.1 in /report-viewer by @dependabot in #975
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.54.1 to 5.55.0 in /report-viewer by @dependabot in #979
- Dependency(deps-dev): Bump @vue/test-utils from 2.3.0 to 2.3.1 in /report-viewer by @dependabot in #977
- Dependency(deps-dev): Bump lint-staged from 13.1.2 to 13.2.0 in /report-viewer by @dependabot in #976
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.54.1 to 5.55.0 in /report-viewer by @dependabot in #978
- Dependency(deps-dev): Bump mockito-core from 5.1.1 to 5.2.0 by @dependabot in #972
- Dependency(deps): Bump spotless-maven-plugin from 2.34.0 to 2.35.0 by @dependabot in #974
- Dependency(deps): Bump maven-surefire-plugin from 3.0.0-M9 to 3.0.0 by @dependabot in #973
- Dependency(deps-dev): Bump prettier from 2.8.4 to 2.8.6 in /report-viewer by @dependabot in #992
- Dependency(deps-dev): Bump typescript from 4.9.5 to 5.0.2 in /report-viewer by @dependabot in #991
- Dependency(deps-dev): Bump @vue/test-utils from 2.3.1 to 2.3.2 in /report-viewer by @dependabot in #990
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.55.0 to 5.56.0 in /report-viewer by @dependabot in #989
- Dependency(deps-dev): Bump @types/jest from 29.4.0 to 29.5.0 in /report-viewer by @dependabot in #988
- Dependency(deps): Bump slf4j.version from 2.0.6 to 2.0.7 by @dependabot in #985
- Dependency(deps): Bump stanford-corenlp from 4.5.2 to 4.5.3 by @dependabot in #984
- Dependency(deps): Bump flatten-maven-plugin from 1.3.0 to 1.4.0 by @dependabot in #987
Full Changelog: v4.2.0...4.3.0
v4.2.0
Java Version
JDK 17
What's Changed
This update greatly improves the detection quality of the Java language module.
Moreover, clustering is now enabled again and will thus be exported via the zipped report.
Lastly, the EMF language module was improved.
Click to show details...
- Prevent extraction of superfluous block tokens by the Java language module by @tsaglam in #911
- Generate Java assign token more often by @mbrdl in #830
- Fix Java token order in special cases (new) by @mbrdl in #854
- Improve the logging of the clusters created by the clustering factory by @tsaglam in #880
- Improve EMF metamodel language modules by @tsaglam in #819
- Adapt clustering default options by @tsaglam in #881
- Fix NPE when calling ParsingException constructors with null reason by @SirYwell in #839
- Change documentation of language usage to constructor invocation by @SirYwell in #890
- Overhaul core test cases by @tsaglam in #834
- Improve the end-to-end tests by adding summary tests by @tsaglam in #926
Report Viewer Update
In parallel with this update, we also deployed new version of the report viewer.
We fixed many bugs, improved performance, and re-enabled clusters.
Check it out at https://jplag.github.io/JPlag/.
Click to show details...
This version includes:
- Report viewer: Allow loading results by URL by @jtotht in #910
- fix bug: representation for name of file and match by @cyfml in #785
- Relative Paths for Viewer by @dfuchss in #833
- Fix IDs being sometimes null in the overview.json by @sebinside in #842
- Fix/match display off-by-one error and reenable clustering display by @cyfml in #816
- Fix/same submission by @cyfml in #829
- Fix/clicking problem on match highlighting by @cyfml in #855
- Enhance/codes selection by @cyfml in #877
- Add jest framework, required configs and examples to the report viewer. by @sebinside in #889
- Enhance/enable collapsing by clicking file header by @cyfml in #879
- Add more supported zip MIME types. by @sebinside in #918
- Enhance/version check by @cyfml in #878
- Enhance/color by @cyfml in #900
- Enhance/warning if some comparisions missing by @cyfml in #899
- Enhance/add jest cases by @cyfml in #924
- Enhance/add error page if overview or comparison missing by @cyfml in #923
- Minor report viewer enhancements by @sebinside in #927
- enchance/solve bad performance when clicking metric button by @cyfml in #925
- Add Version to Report Viewer by @dfuchss in #928
Updated Dependencies:
Click to show details...
- Dependency(deps): Bump slf4j.version from 2.0.3 to 2.0.4 by @dependabot in #811
- Dependency(deps): Bump jackson-databind from 2.14.0 to 2.14.1 by @dependabot in #810
- Dependency(deps-dev): Bump eslint from 8.27.0 to 8.28.0 in /report-viewer by @dependabot in #815
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.43.0 to 5.44.0 in /report-viewer by @dependabot in #814
- Dependency(deps-dev): Bump prettier from 2.7.1 to 2.8.0 in /report-viewer by @dependabot in #813
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.43.0 to 5.44.0 in /report-viewer by @dependabot in #812
- Dependency(deps): Bump slf4j.version from 2.0.4 to 2.0.5 by @dependabot in #821
- Dependency(deps): Bump scala-maven-plugin from 4.7.2 to 4.8.0 by @dependabot in #823
- Dependency(deps): Bump org.eclipse.emf.ecore from 2.28.0 to 2.29.0 by @dependabot in #824
- Dependency(deps): Bump spotless-maven-plugin from 2.27.2 to 2.28.0 by @dependabot in #822
- Dependency(deps): Bump org.eclipse.emf.common from 2.26.0 to 2.27.0 by @dependabot in #820
- Dependency(deps-dev): Bump lint-staged from 13.0.3 to 13.0.4 in /report-viewer by @dependabot in #828
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.44.0 to 5.45.0 in /report-viewer by @dependabot in #827
- Dependency(deps): Bump highlight.js from 11.6.0 to 11.7.0 in /report-viewer by @dependabot in #826
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.44.0 to 5.45.0 in /report-viewer by @dependabot in #825
- Dependency(deps-dev): Bump eslint from 8.28.0 to 8.29.0 in /report-viewer by @dependabot in #838
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.45.0 to 5.45.1 in /report-viewer by @dependabot in #837
- Dependency(deps-dev): Bump lint-staged from 13.0.4 to 13.1.0 in /report-viewer by @dependabot in #835
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.45.0 to 5.45.1 in /report-viewer by @dependabot in #836
- Dependency(deps-dev): Bump prettier from 2.8.0 to 2.8.1 in /report-viewer by @dependabot in #851
- Dependency(deps): Bump chartjs-plugin-datalabels from 2.1.0 to 2.2.0 in /report-viewer by @dependabot in #850
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.45.1 to 5.46.1 in /report-viewer by @dependabot in #848
- Dependency(deps-dev): Bump typescript from 4.9.3 to 4.9.4 in /report-viewer by @dependabot in #849
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.45.1 to 5.46.1 in /report-viewer by @dependabot in #847
- Dependency(deps): Bump slf4j.version from 2.0.5 to 2.0.6 by @dependabot in #846
- Dependency(deps-dev): Bump mockito-core from 4.9.0 to 4.10.0 by @dependabot in #857
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.46.1 to 5.47.0 in /report-viewer by @dependabot in #861
- Dependency(deps-dev): Bump eslint from 8.29.0 to 8.30.0 in /report-viewer by @dependabot in #860
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.46.1 to 5.47.0 in /report-viewer by @dependabot in #859
- Dependency(deps): Bump core-js from 3.26.1 to 3.27.0 in /report-viewer by @dependabot in #864
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.47.0 to 5.47.1 in /report-viewer by @dependabot in #863
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.47.0 to 5.47.1 in /report-viewer by @dependabot in #862
- Dependency(deps): Bump spotless-maven-plugin from 2.28.0 to 2.29.0 by @dependabot in #868
- Dependency(deps-dev): Bump mockito-core from 4.10.0 to 4.11.0 by @dependabot in #867
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.47.1 to 5.48.0 in /report-viewer by @dependabot in #869
- Dependency(deps): Bump core-js from 3.27.0 to 3.27.1 in /report-viewer by @dependabot in #872
- Dependency(deps-dev): Bump eslint from 8.30.0 to 8.31.0 in /report-viewer by @dependabot in #871
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.47.1 to 5.48.0 in /report-viewer by @dependabot in #870
- Dependency(deps-dev): Bump junit.version from 5.9.1 to 5.9.2 by @dependabot in #873
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.48.0 to 5.48.1 in /report-viewer by @dependabot in #876
- Dependency(deps-dev): Bump prettier from 2.8.1 to 2.8.2 in /report-viewer by @dependabot in #874
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.48.0 to 5.48.1 in /report-viewer by @dependabot in #875
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.48.1 to 5.48.2 in /report-viewer by @dependabot in #888
- Dependency(deps-dev): Bump eslint from 8.31.0 to 8.32.0 in /report-viewer by @dependabot in #887
- Dependency(deps-dev): Bump prettier from 2.8.2 to 2.8.3 in /report-viewer by @dependabot in https://...
v4.1.0
Java Version
JDK 17
Breaking Changes:
- Fix an API bug where the similarity distribution of the
JPlagResult
object was reversed (#794) - Hide non-API functionality that was accidentally public (#763 and #716)
What's Changed
- Fix debug mode by @tsaglam in #745
- Fix similarity distribution in JPlagResult by @tsaglam in #794
- Fix logging configuration for CLI by @dfuchss in #767
- Removed C/C++ "scope" token (thus improving detection quality) by @Squamanto in #747
- Refactor End to End Tests by @JanWittler in #731
- Refactor CLI classes to package
de.jplag.cli
by @JanWittler in #716 - Make language identifiers private by @JanWittler in #763
- Flattening of POM.xml by @dfuchss in #801
Updated Dependencies:
Click to show details...
- Dependency(deps): Bump spotless-maven-plugin from 2.27.0 to 2.27.1 by @dependabot in #719
- Dependency(deps): Bump scala-maven-plugin from 4.7.1 to 4.7.2 by @dependabot in #721
- Dependency(deps): Bump scalameta_2.13 from 4.5.13 to 4.6.0 by @dependabot in #722
- Dependency(deps): Bump slf4j.version from 2.0.2 to 2.0.3 by @dependabot in #720
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.38.1 to 5.39.0 in /report-viewer by @dependabot in #725
- Dependency(deps): Bump core-js from 3.25.3 to 3.25.5 in /report-viewer by @dependabot in #723
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.38.1 to 5.39.0 in /report-viewer by @dependabot in #724
- Dependency(deps): Bump spotless-maven-plugin from 2.27.1 to 2.27.2 by @dependabot in #726
- Dependency(deps): Bump scala-library from 2.13.9 to 2.13.10 by @dependabot in #727
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.39.0 to 5.40.0 in /report-viewer by @dependabot in #730
- Dependency(deps-dev): Bump eslint from 8.24.0 to 8.25.0 in /report-viewer by @dependabot in #728
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.39.0 to 5.40.0 in /report-viewer by @dependabot in #729
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.40.0 to 5.40.1 in /report-viewer by @dependabot in #753
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.40.0 to 5.40.1 in /report-viewer by @dependabot in #752
- Dependency(deps): Bump whelk-io/maven-settings-xml-action from 20 to 21 by @dependabot in #751
- Dependency(deps-dev): Bump mockito-core from 4.8.0 to 4.8.1 by @dependabot in #755
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.40.1 to 5.41.0 in /report-viewer by @dependabot in #760
- Dependency(deps): Bump gitart-vue-dialog from 2.4.0 to 2.4.1 in /report-viewer by @dependabot in #759
- Dependency(deps-dev): Bump eslint from 8.25.0 to 8.26.0 in /report-viewer by @dependabot in #758
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.40.1 to 5.41.0 in /report-viewer by @dependabot in #757
- Dependency(deps): Bump core-js from 3.25.5 to 3.26.0 in /report-viewer by @dependabot in #756
- Bump jackson-databind from 2.13.4 to 2.13.4.1 by @dependabot in #750
- Dependency(deps): Bump vue-router from 4.1.5 to 4.1.6 in /report-viewer by @dependabot in #766
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.41.0 to 5.42.0 in /report-viewer by @dependabot in #765
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.41.0 to 5.42.0 in /report-viewer by @dependabot in #764
- Bump loader-utils from 1.4.0 to 1.4.1 in /report-viewer by @dependabot in #769
- Dependency(deps): Bump jackson-databind from 2.13.4 to 2.14.0 by @dependabot in #771
- Dependency(deps): Bump vue from 3.2.40 to 3.2.43 in /report-viewer by @dependabot in #778
- Dependency(deps-dev): Bump eslint from 8.26.0 to 8.27.0 in /report-viewer by @dependabot in #774
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.42.0 to 5.42.1 in /report-viewer by @dependabot in #772
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.42.0 to 5.42.1 in /report-viewer by @dependabot in #775
- Dependency(deps-dev): Bump mockito-core from 4.8.1 to 4.9.0 by @dependabot in #795
- Dependency(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.42.1 to 5.43.0 in /report-viewer by @dependabot in #800
- Dependency(deps): Bump core-js from 3.26.0 to 3.26.1 in /report-viewer by @dependabot in #799
- Dependency(deps-dev): Bump typescript from 4.8.4 to 4.9.3 in /report-viewer by @dependabot in #798
- Dependency(deps-dev): Bump @typescript-eslint/parser from 5.42.1 to 5.43.0 in /report-viewer by @dependabot in #797
- Dependency(deps): Bump vue from 3.2.43 to 3.2.45 in /report-viewer by @dependabot in #796
New Contributors
- @Squamanto made their first contribution in #747
Full Changelog: v4.0.0...v4.1.0
v4.0.0
Java Version: JDK 17
With this version, we release a complete overhaul of JPlag. Note that this includes breaking changes with previous versions!
This update introduces the following features:
- A new and re-designed web-based report viewer (https://jplag.github.io/JPlag/)
- Support for new programming languages: Go, Kotlin, R, Scala, Swift, Rust
- Support for a modeling language: EMF metamodels
- Support for Java files containing new language features (Java 17 support)
- An overhauled language module for natural text
- An overhauled language module for C#
- Support for multiple submission directories (root folders)
- Support for old submission directories, which are only checked against for reference
- Support for cluster calculation
- Improved performance due to effective parallelization
The following features are currently not supported:
- visualizing the clustering results in the report viewer
The following features are permanently discontinued (and removed from the project):
- the character language module (use the text language module instead)
New Contributors
- @GabrielL made their first contribution in #275
- @SimDing made their first contribution in #281
- @cholakov11 made their first contribution in #287
- @nestabentum made their first contribution in #453
- @robinmaisch made their first contribution in #455
- @JanWittler made their first contribution in #554
- @SuyDesignz made their first contribution in #551
- @SirYwell made their first contribution in #622
For development details see the milestone v4.0.0.
Full Changelog: v3.0.0...v4.0.0
v3.0.0
Java Version: Java SE 14
With this version, we release a complete overhaul of JPlag. Note that this includes breaking changes with previous versions!
This update introduces the following features:
- a Java API for third-party integration
- a simplified and improved command-line interface
- support for Java files containing new language features
- improved colors for source codes matches in the report
- a parallel comparison mode, which allows fast comparison of large submission sets
- fixes regarding file encoding (some older language frontends might still have some issues)
- many minor bugfixes and performance optimizations
The following features are currently not supported:
- result clustering
- comparison based on maximum similarity
The following features are permanently discontinued (and removed from the project):
- the comparison modes experimental, external, special, and revision.
- the deprecated web service
- the legacy java frontends
New Contributors:
- @krusche made their first contribution in #89
- @philippbauch made their first contribution in #89
- @JLLeitschuh made their first contribution in #78
- @Alberth289346 made their first contribution in #85
- @tsaglam made their first contribution in #94
- @dfuchss made their first contribution in #93
- @sebinside made their first contribution in #137
- @Strohgelaender made their first contribution in #154
- @dogayalcin made their first contribution in #235
- @dependabot made their first contribution in #90
For development details see the milestone v3.0.0.
Full Changelog: v2.12.1-SNAPSHOT...v3.0.0-SNAPSHOT