JPlag

State-of-the-Art Software Plagiarism & Collusion Detection

GPL-3.0 License

Downloads
160
Stars
1.4K

Bot releases are hidden (Show)

JPlag - v5.1.0 Latest Release

Published by tsaglam 5 months ago

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

  • 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

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

Updated Dependencies

As always, we updated some dependencies.

New Contributors

Full Changelog: https://github.com/jplag/JPlag/compare/v5.0.0...v5.1.0


Fill out a quick (<5 min) survey to help us and give feedback: Take me to the survey šŸ¤©

JPlag - v5.0.0

Published by tsaglam 8 months ago

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

  • 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).
  • Support for Java 21 (including preview feature support).
  • The former C/C++ module is now named c, the new cpp2 module now just named cpp
  • 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.

Report Viewer Rework

We created a completely reworked and redesigned report viewer (try out our new demo).
It offers:

  • More features (sort by cluster, graph-style cluster visualization, log scale histogram, etc.).
  • More metrics and information (e.g. similarity per file).
  • A printable comparison view (via the browsers print function)
  • Searchable top comparison list.
  • A dark mode.
  • Cleaner, more modern, and simpler UI.
  • An optional local-hosted version of the report viewer (use the --mode option).

Breaking Changes

As this is a major release, there are breaking changes.

  • Language cpp is now named c and language cpp2 is named cpp.
  • We streamlined the naming of the Language interfaces, by adding the actual languages to the name (e.g. Language -> JavaLanguage, see #1122)
  • Fixes/improvements to the Python, Java, and C++ languages might slightly affect the calculated similarities ( #1223, #1167, #1167).
  • We overhauled the C# language module, improving the tokenization and thus affecting the calculated similarities (#1330).
  • Regarding the generated report files, we slightly changed the JSON format (see #1189). The v5.0.0 report viewer is compatible with reports from v4.2.0 and newer. However, reports generated with v5.0.0 provide additional information.
  • We switched the CLI framework due to the former one being unmaintained. This changes the CLI usage slightly (use -h for help text).
  • We fixed a bug in the core algorithm that made the results indeterministic in some edge cases. This is now no longer the case. For the clustering, the results are still deterministic, thus allowing the generation of different clusterings if desired.
  • The main class JPlag should be called via the static run method. The legacy methods are now deprecated.
  • The language-API receives some changes, mainly to the Language interface. The legacy methods are deprecated.

Updated Dependencies

As always, we updated some dependencies.

New Contributors

Full Changelog: https://github.com/jplag/JPlag/compare/v4.3.0...v5.0.0

Fill out a quick (<5 min) survey to help us and give feedback: Take me to the survey šŸ¤©

JPlag - v4.3.0

Published by tsaglam over 1 year ago

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!

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/.

Updated Dependencies

As always, we updated some dependencies.

Full Changelog: https://github.com/jplag/JPlag/compare/v4.2.0...4.3.0

JPlag - v4.2.0

Published by tsaglam over 1 year ago

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.

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/.

This version includes:

Updated Dependencies:

New Contributors

Full Changelog: https://github.com/jplag/JPlag/compare/v4.1.0...v4.2.0

JPlag - v4.1.0

Published by tsaglam almost 2 years ago

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

Updated Dependencies:

New Contributors

Full Changelog: https://github.com/jplag/JPlag/compare/v4.0.0...v4.1.0

JPlag - v4.0.0

Published by tsaglam about 2 years ago

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

For development details see the milestone v4.0.0.
Full Changelog: https://github.com/jplag/JPlag/compare/v3.0.0...v4.0.0

JPlag - v3.0.0

Published by tsaglam almost 3 years ago

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:

For development details see the milestone v3.0.0.
Full Changelog: https://github.com/jplag/JPlag/compare/v2.12.1-SNAPSHOT...v3.0.0-SNAPSHOT

JPlag - v2.12.1-SNAPSHOT

Published by weigelt over 5 years ago

Legacy version of JPlag

JPlag - https://github.com/jplag/JPlag/releases/tag/v2.12.0-SNAPSHOT

Published by weigelt over 5 years ago

JPlag - v2.11.9-SNAPSHOT

Published by lama0206 over 7 years ago

This release includes the python-3 frontend

JPlag - v2.11.8-SNAPSHOT

Published by lama0206 over 9 years ago

Package Rankings
Top 9.9% on Proxy.golang.org
Top 10.06% on Repo1.maven.org
Top 36.28% on Pypi.org
Badges
Extracted from project README
CI Build Latest Release Maven Central License GitHub commit activity SonarCloud Coverage Report Viewer Java Version