Recent Releases of @dodona/dolos

@dodona/dolos - v2.9.2

This release fixes a small bug introduced by previous release.

🐛 Bug Fixes

  • Fix a sorting bug when calculating common prefix by @rien in https://github.com/dodona-edu/dolos/pull/1670

- TypeScript
Published by rien 11 months ago

@dodona/dolos - v2.9.1

A small release containing some bugfixes, but also including wonderful work by @FWest98 to improve our docker compose setup :tada:

🐛 Bug Fixes

  • Fixed a typo in the CLI help message by @eriq-augustine in https://github.com/dodona-edu/dolos/pull/1656
  • Re-enable pagination for clusters by @mikaelGusse in https://github.com/dodona-edu/dolos/pull/1660
  • Only calculate common prefix up until path separators by @rien in https://github.com/dodona-edu/dolos/pull/1668

🧰 Maintenance

  • Improve web container build process by @FWest98 in https://github.com/dodona-edu/dolos/pull/1665
  • Improve Docker Compose setup flexibility through .env file by @FWest98 in https://github.com/dodona-edu/dolos/pull/1666

New Contributors

  • @eriq-augustine made their first contribution in https://github.com/dodona-edu/dolos/pull/1656
  • @FWest98 made their first contribution in https://github.com/dodona-edu/dolos/pull/1665

- TypeScript
Published by rien 11 months ago

@dodona/dolos - v2.9.0

With this new release of Dolos, searching for suspicious code matches just got a little easier!

In #1645 @milachae added functionality to ignore comment tokens from submissions. Comments are often added to "obfuscate" plagiarized code, and could artificially reduce the similarity score. Dolos will now ignore comments by default, but you can re-enable the previous behavior by passing the -C, --include-comments flag to the CLI.

Ignored code, like comments, will now also be visualized with a gray background, thanks to work by @mikaelGusse.

You will also notice that the Web UI will show a request to fill in a quick survey: we are evaluating the effectiveness of Dolos compared to other tools and need your feedback! Please consider taking 5 minutes of your time (at most) to fill in this survey.

🚀 Features

  • Exclude the comments in the tokenization step (#1645) @milachae
  • Add template code highlighting (#1643) @mikaelGusse
  • Add support for OCaml programming language (#1646) @rien
  • Ask users to fill in UEQ survey (#1649) @rien

- TypeScript
Published by rien about 1 year ago

@dodona/dolos - v2.8.0

Dolos is faster again! In PR #1630 we've decimated the time needed to parse code files, halving the time Dolos spends performing an analysis on large datasets :rocket:

An important bug is now fixed as well, re-enabling highlighting similar parts in the compare view.

It is now also possible to submitted source code files to ignore through the info.csv file. Which enables support for template code in the API.

This PR is mostly thanks to two new contributors: @mikaelGusse and @milachae. Welcome :tada:

🚀 Features

  • Add parsers for Go and Rust (#1633) @rien
  • Improve tokenizer performance (#1630) @milachae
  • Add support for template files into CSV parsing (#1612) @mikaelGusse

🐛 Bug Fixes

  • Fix code highlighting bug (#1600) @mikaelGusse
  • Fix dolos-web Docker image not using the environment variables correctly (#1582) @rien
  • Fix purged reports loading indefinitely (#1581) @rien

🧰 Maintenance

  • Add package to flake (#1576) @rien
  • Remove obsolete prepare from parsers (#1572) @rien

📖 Documentation

  • Change API docs to allow custom URL's (#1603) @rien
  • Add instructions to build dolos-core in web/CONTRIBUTING.md (#1602) @mikaelGusse
  • Add developer documentation about dolos-web in CONTRIBUTING.md (#1592) @rien

- TypeScript
Published by rien over 1 year ago

@dodona/dolos - v2.7.1

This patch release only includes PR #1546 which would cause Dolos to throw an error when parsing large files exceeding tree-sitter's default buffer size.

- TypeScript
Published by rien over 1 year ago

@dodona/dolos - v2.7.0

:leftspeechbubble: Join our new chat! You're welcome on our Matrix chat channel #dolos:matrix.org for support and questions.

This release includes a lot of changes under the hood, but most notably, we've re-introduce ignoring template code and frequently occurring fingerprints (#1524) in the Dolos libraries and CLI. This feature is currently experimental while we are evaluating the effect, before we plan to integrate this in the Web UI. Feel free to test this feature out and let us know the results!

🚀 Features

  • [experimental :test_tube: ] Add ability to ignore template code or frequently occurring fingerprints (#1524) @rien
  • Add support for the Groovy programming language (#1543) @rien
  • Export all interfaces and classes from dolos-core and dolos-lib (#1538) @rien

🐛 Bug Fixes

  • Fix hosting Dolos publicly on https using docker-compose (#1522) @rien
  • Fix file selection in upload form (#1492) @rien

🧰 Maintenance

  • Update to Node 22 (#1542) @rien
  • Update tree-sitter parsers to 0.21 or use compat layer (#1541) @rien
  • Add error monitoring with Sentry (#1537) @rien

📖 Documentation

  • Update with new publications (#1519) @rien

- TypeScript
Published by rien over 1 year ago

@dodona/dolos - v2.6.0

This release adds a loading page for reports that are still running, this allows external applications to submit a dataset for analysis and immediately redirect users to the report. The web UI will then wait until the report is completed and immediately show the results.

We've also added support for the programming languages scala and verilog.

Read the full changelog below:

🚀 Features

  • Add support for scala programming language (#1487) @rien
  • Add support for verilog programming language (#1462) @rien
  • Wait for analysis job to complete when report is shared (#1475) @rien
  • Update Dolos API for streamlined automated submissions (#1424) @rien

🐛 Bug Fixes

  • Fix bug where navigating back would fail (#1489) @rien
  • Fix npm not passing arguments in web Dockerfile (#1460) @rien
  • Fix tmpdirs not being removed in Dolos API (#1413) @rien

🧰 Maintenance

  • Enhance self-hosting support with prebuilt docker images (#1461) @rien
  • Clean up dependencies (#1438) @rien
  • Clean up API routes, responses and errors (#1426) @rien
  • Improve error handling with uploading (#1402) @rien

📖 Documentation

  • Improve documentation about publicly hosting Dolos (#1449) @rien
  • Add API description to documentation (#1425) @rien

- TypeScript
Published by github-actions[bot] almost 2 years ago

@dodona/dolos - v2.5.1

🐛 Bug Fixes

  • Fix detecting tree-sitter parsers (#1403) @rien
  • Fix some issues with the docker-compose.yml (#1387) @rien

📖 Documentation

  • Update documentation website (#1396) @rien
  • Self-host Dolos using docker-compose (#1385) @rien

- TypeScript
Published by github-actions[bot] almost 2 years ago

@dodona/dolos - v2.5.0

:sparkles: This release of Dolos introduces a new component: dolos-parsers :sparkles:

This new package includes a collection of parsers officially supported by Dolos. Since we have full control over this parser, we can now add support for new languages more quickly. In addition, we support three additional languages out-of-the-box: - SQL - R - modelica

Do you want to use Dolos for a programming language that is not yet supported? Suggest your language here: https://github.com/dodona-edu/dolos/issues/1029

:sparkles: Changes

  • Vendor tree-sitter parsers (#1291) @rien

:bug: Bug Fixes

  • Fix bugs in server web UI (#1354) @rien

📖 Documentation

  • Add GitHub issue templates (#1329) @rien
  • Update README's mentioning the new components (#1356) @rien

- TypeScript
Published by github-actions[bot] about 2 years ago

@dodona/dolos - v2.4.3

This new version includes some bug fixes with how tables are shown in the web UI.

:bug: Bug Fixes

  • Fix bugs with tables (#1337) @rien

📖 Documentation

  • Add most recent Dodona article to publications page (#1316) @chvp

- TypeScript
Published by github-actions[bot] about 2 years ago

@dodona/dolos - v2.4.2

This release includes two major changes under-the-hood:

Dolos-web has been updated to Vue 3 and Vuetify 3

Our Web UI has been updated to use the latest Vue version, which builds much faster and uses the new ESM module system. The visual differences should be little, apart from some improvements in contrast.

Dolos libraries will now follow semantic versioning

In the past we've not adhered to the semantic versioning scheme, introducing breaking changes to the library without doing a major version bump. We have now released dolos-lib@3.0.0 and dolos-core@1.0.0 and will follow the semantic versioning scheme from now on for these two packages.

You might have noticed we're using the plural libraries, that's because we've made a new library @dodona/dolos-core that contains all independent algorithms and classes provided by Dolos. In contrast to dolos-lib, the new library dolos-core does not use Node-specific imports and can thus be used in any context (including in the browser). dolos-lib re-exports the code provided by dolos-core, so if you're already dependent on dolos-lib, the changes will be minor.

Note: Dolos 2.4.0 and 2.4.1 had some bugs in the release process, so these packages won't work.

:sparkles: Changes

  • Refactor to Vue 3 & Vuetify 3 (#1153) @maartenvn
  • Create dolos-core package without Node-specific code (#1189) @rien

🧰 Maintenance

  • Limit CodeQL checks (#1209) @rien
  • Make async code in core sync (#1267) @rien
  • Add support for Node 20 (#1192) @rien

- TypeScript
Published by github-actions[bot] over 2 years ago

@dodona/dolos - v2.3.0

This new minor release features some polishing on Dolos Online (https://dolos.ugent.be/server) - you can now upload any ZIP-file: the info.csv is no longer required. Dolos will automatically find programming files to analyze.

In addition we've updated our documentation site (https://dolos.ugent.be) with more information about Dolos Online - and we've added a dark theme (which should attract less bugs :bug: )

🚀 Features

  • Support ZIP-files without info.csv and make language detection more lax (#1174) @rien
  • Various enhancements to the upload form (#1176) @rien
  • Show errors on upload (#1175) @rien

📖 Documentation

  • Switch to vitepress for the documentation site (#1154) @rien

- TypeScript
Published by github-actions[bot] over 2 years ago

@dodona/dolos - v2.2.4

✨ Changes

  • Rename "file name" to "analysis name" in the web form (#1156) @bmesuere

🐛 Bug Fixes

  • Fix infinite update with timeline, causing some pages to hang (#1161) @rien

🧰 Maintenance

  • Fix github workflow mariadb (#1159) @rien
  • Update Dockerfile Ruby version in lockfile (#1162) @maartenvn

- TypeScript
Published by github-actions[bot] over 2 years ago

@dodona/dolos - v2.2.3

🐛 Bug Fixes

  • Fix a bug in the plagiarism graph where some links would be too far from each other (#1144) @rien

- TypeScript
Published by github-actions[bot] over 2 years ago

@dodona/dolos - v2.2.2

🐛 Bug Fixes

  • Fix share URL not including base url path (#1131) @rien
  • Set report name for uploads (#1133) @rien
  • Fix anonymization spinner not finishing (#1132) @rien
  • Fix bug in API job runner where the directory would already exist (#1127) @rien

🧰 Maintenance

  • Configure deployment (#1128) @rien

- TypeScript
Published by github-actions[bot] over 2 years ago

@dodona/dolos - v2.2.1

Please see the v2.2.0 release notes for a more detailed description what has recently been changed.

🐛 Bug Fixes

  • Revert open back to v8 since v9 is ESM only (https://github.com/dodona-edu/dolos/commit/d83dedd7e98d644daa19202f0c66d4b5d7d83443)

- TypeScript
Published by github-actions[bot] almost 3 years ago

@dodona/dolos - v2.2.0

Dolos as a service - dolos.ugent.be/server

Note: a bug was found in the CLI shortly after publishing. Please install Dolos v2.2.1 instead of v2.2.0 if you plan on using the CLI.

It is now much easier to run plagiarism detection straight from your browser, without installing anything!

This release includes a new API server (#1119 by @rien ) and extends the Dolos Web UI with a front end for this server (#884, #1111 by @maartenvn). We host our own instance of this API server over at https://dolos.ugent.be/server, which is freely available for anyone to use. We currently support uploading ZIP-files with an info.csv file listing the files to be analyzed, but multi-file uploads are planned in the future.

Plagiarism graph improvements

The plagiarism graph has always been one of our most exiting visualizations. We've now rewritten this page to stay responsive on even larger datasets! Meanwhile, we've also improved the code quality and solved some bugs along the way. PR #1079 describes more in depth which changes have been made.

Other improvements and bugfixes contained in this release:

🚀 Features

  • Add a name and date to reports and show them in the Web UI (#1076) @rien
  • Improve graph performance and code quality (#1079) @rien
  • Specialized view when comparing only 2 files (single pair) (#1093) @maartenvn
  • Add 'View pair' button to graph when applicable (#1090) @maartenvn
  • Add labels to pairwise comparison (#1088) @maartenvn

🐛 Bug Fixes

  • Fix some navigation buttons not working (#1123) @rien
  • Subtract timestamp offset instead of adding it when running anonymization (#1109) @maartenvn
  • Make timestamp formats consistent (#1087) @maartenvn
  • Fix submissions ordering on overview page (#1089) @maartenvn

🧰 Maintenance

  • Refactor/cleanup/bugfixes of D3 components (#1110) @maartenvn

- TypeScript
Published by github-actions[bot] almost 3 years ago

@dodona/dolos - v2.1.0

Dolos v2.1.0 is now 3x faster and uses 10x less memory

With people trying out Dolos in increasingly diverse situations, the CLI was often hitting its limits. In our effort to improve the overall performance #974, we've optimized the underlying algorithm to use less memory and run faster. We're very proud of the results: we're seeing speed-ups of around 3 to 4 times faster and a memory footprint that is an order of magnitude smaller. The specific numbers and details of the improvements are available in the PR: #1011.

This means we can now analyze larger datasets. Currently we can handle datasets of more than 1000 files in 30 seconds, using only around one 1000 MB memory.

Next up: improving the Web UI for a smoother experience showing results of very large datasets.

🚀 Optimizations

  • Optimize threshold calculation (#1040) @rien
  • Optimize memory usage in library (#1011) @rien

🐛 Bug Fixes

  • Fix similarity value of NaN when files are empty (#1041) @rien
  • Fix --fragment-sort-by not working (#993) @rien
  • Fix crash when terminal output is not an interactive console (getColorDepth is not a function ) (#992) @rien

🧰 Maintenance

  • Refactor file store to handle labels better (#1052) @rien
  • Code cleanup of some stores (#1044) @rien

- TypeScript
Published by github-actions[bot] about 3 years ago

@dodona/dolos - v2.0.2

Our previous release introduced a bug where the Web UI would not show the compare view for languages not bundled with Dolos. We've fixed this with this release and also added support for PHP and C++.

🚀 Features

  • Add support for PHP and C++ (#977) @rien

🐛 Bug Fixes

  • Fix Web UI compare view when an unknown language is used (#979) @rien

🧰 Maintenance

  • Fix demo deployment (#937) @rien

- TypeScript
Published by github-actions[bot] about 3 years ago

@dodona/dolos - v2.0.1

Some minor fixes and changes, but a new feature that should improve the user experience of the CLI a bit: you no longer have to specify the programming language if the file extension of the files you are analyzing are common, Dolos will now automatically detect the programming language!

🚀 Features

  • Automatic language detection based on file extension (#931) @rien
  • Support typescript and tsx as languages (#923) @rien

🐛 Bug Fixes

  • Fix 'maximum call stack size exceeded' error when analyzing large files (#924) @rien
  • Fix Dolos not working with Node version 17 or higher

- TypeScript
Published by github-actions[bot] over 3 years ago

@dodona/dolos - v2.0.0

Dolos v2

This summer, @maartenvn has been working on a complete UI redesign of Dolos. Instead of having to search through an overwhelming table, we now provide a clear overview page where you can discover the analysis results at a glance. We've added specialized pages for clusters and individual submissions in case you need to inspect the results more closely.

We provide a quick tour of some of the new features below. You can discover them yourself in our newly added classroom demo.

A Quick Tour

In addition to pages that have been redesigned (the plagiarism graph for example), we've added some new pages. We describe them briefly below:

Overview

Screenshot of the new overview page in Dolos, with a prominent similarity distribution graph and some key metrics

When opening the Dolos Web UI, you are now greeted with an overview page summarizing the results of the analysis with some key metrics. This page features a similarity distribution graph which should give you a quick impression of the possible presence of plagiarized submissions. We should normally expect a bell curve with little to no similarities at the high end. As you can see in the screenshot above, we see a big spike at 100% similarity, indicating that a lot of the submissions look very similar.

This page also provides two cards at the bottom listing to the most suspicious submissions and clusters. Clicking on one of the items brings you to their detail page to further inspect the suspicious cases.

Cluster detail

Screenshot of the new cluster detail page listing the submissions in the cluster as well as visualizing the submissions in the cluster

Submissions are clustered together if they have a similarity above the similarity threshold. Clicking on a cluster brings you to its detail page where we list the submissions in the cluster and show some visualizations. If metadata is available about the time the submission was handed in, we show a timeline of the submissions. To visualize the internal similarities, this page features a graph and a heatmap of the cluster submissions.

Submission detail

Screenshot of the new submission detail page listing other similar submissions as well as some visualizations of the cluster this submission is in

If we click on a submission, we go tho the submission detail page. This page features a list of other submissions that the current subject has the most similarities to. Additionally, we also give some information and visualization about the cluster this submission might possibly be in. On the timeline at the bottom of the screenshot, we notice that the current submission was the first submission in the cluster, so the author of this submission is probably the original author who has shared this submission with others.

Detailed changelog

We've summarized the most important new changes above. Below you find a more complete list of the noteworthy PR's that went into our new release:

🚀 Features

  • Show more information on compare view (#865) @maartenvn
  • Add breadcrumbs & back button (#864) @maartenvn
  • Submission overview and detail page (#861) @maartenvn
  • Improve UI (#841) @maartenvn
  • Use webworkers for expensive tasks & faster CSV parsing. (#839) @maartenvn
  • On demand pseudonymization without refetch/parsing (#823) @maartenvn
  • Improve graph view (#822) @maartenvn
  • Add global state settings (#868) @maartenvn
  • Improve data visualisations (#871) @maartenvn
  • Add actionable cards to overview page (#882) @maartenvn
  • Disable writing out fragments (#915) @rien
  • Add clustering page (#878) @maartenvn
  • Allow passing a zip-file as input (#870) @rien
  • Improve pair code viewer & add diff viewer (#818) @maartenvn

🐛 Bug Fixes

  • Fix issue with tooltip on histogram hover (#883) @maartenvn
  • Hide labels table/toggles when dataset contains no labels (#880) @maartenvn
  • Fix clustering algorithm on threshold of 100% (#879) @maartenvn
  • Fix search in file pairs table (#849) @maartenvn
  • Fix multiple overlapping fragments (#819) @rien

🧰 Maintenance

  • Replace deprecated set-output command with environment file (#917) @rien
  • Add classroom dataset to demo (#916) @rien
  • Refactor linting rules (#866) @maartenvn
  • Upgrade to Vue 2.7 (#809) @maartenvn
  • Components auto import & cleanup of d3-tools directory (#877) @maartenvn

📖 Documentation

  • Migrate docs to Vuepress v2 beta (#801) @rien
  • Update documentation to reflect UI update (#907) @rien

- TypeScript
Published by github-actions[bot] over 3 years ago

@dodona/dolos - v1.7.0

For this release @maartenvn has been working intensely to refactor the Web UI to Vue's composition API. This prepares our codebase to ultimately migrate to Vue 3 (see #754).

🚀 Features

  • Display shorter file names (#788) @maartenvn
  • Improve performance & fix graph bugs (#786) @maartenvn

🐛 Bug Fixes

  • Add missing dependencies of library (#798) @rien
  • Fix incorrect background color in code editor (#789) @maartenvn
  • Conditionally fetch semantic information, based on the metadata (#787) @rien
  • Remove background color on code (#782) @maartenvn

🧰 Maintenance

  • Bump node versions: perform tests with node 14, 16 and 18 (#793) @rien
  • Fix GitHub Actions (#794) @rien
  • Improve Github Actions & linter configuration (#783) @maartenvn
  • Refactor to the Composition API (#784) @maartenvn
  • Cleanup dependencies (#780) @maartenvn

- TypeScript
Published by github-actions[bot] over 3 years ago

@dodona/dolos - v1.6.0

This release contains some large new features, as @AurisAudentis has been working on extra visualizations and improving the Web UI :tada: - The main page is now an overview page, which should give a good first impression of the plagiarism results - The graph view is improved with extra information about the clusters

Take a look on the demo page to explore these exiting new features!

The next few months we will be looking at improving the performance of the Web UI, as well as preparing the codebase for Vue 3.

Screenshot of the improved overview page

🚀 Features

  • Add on-demand pseudonymization (#741) @AurisAudentis
  • Add semantic analysis of matches (#726) @AurisAudentis
  • Add a general overview as main page (#740) @AurisAudentis
  • Add smart similarity cutoff selection (#717) @AurisAudentis
  • Add sidebar links & version number (#753) @maartenvn

🐛 Bug Fixes

  • Do not require fragments folder to be present (#734) @AurisAudentis

🧰 Maintenance

  • Run demo analysis with --semantic flag (#767) @rien
  • Update require for now scoped tree-sitter-elm package (#736) @klassiker
  • Disable deploy if secrets are not available (#735) @rien

📖 Documentation

  • Add CITATION.cff and update website (#719) @rien

- TypeScript
Published by github-actions[bot] over 3 years ago

@dodona/dolos - v1.5.1

🐛 Bug Fixes

  • Fix a bug where extra tokenizers would not be found properly (#707) @AurisAudentis

- TypeScript
Published by github-actions[bot] about 4 years ago

@dodona/dolos - v1.5.0

🚀 Features

  • Improved loading times of the pairwise comparison page (#661) @ArneCJacobs
  • Added a --host to allow listening on specific hosts (#686) @radim-kliment

🐛 Bug Fixes

  • Various small fixes in the CLI (#683) @AurisAudentis
  • Fix highlighting in some exercises (#672) @AurisAudentis

🧰 Maintenance

  • The @dodons/dolos-web package is now a normal dependency of the @dodona/dolos package instead of an optional one (#694) @rien

📖 Documentation

  • Added a README to the dolos-lib project (#693) @rien
  • Added an explanation of the analysis parameters to the documentation website (#691) @rien

- TypeScript
Published by github-actions[bot] about 4 years ago

@dodona/dolos - v1.4.0

:rocket: Features

  • Create a @dodona/dolos-lib package (#659) @ArneCJacobs

🧰 Maintenance

  • Fixed cache key (#666) @ArneCJacobs
  • Create publishing flow for dolos-lib (#676) @rien

📖 Documentation

  • Replace old references to --format with --output-format (#663) @rien

- TypeScript
Published by github-actions[bot] about 4 years ago

@dodona/dolos - v1.3.0

🚀 Features

  • Add Docker image (#570) @rien
  • Add CLI commands 'run' and 'serve' (#621) @rien

:bug: Bug Fixes

  • Fix a bug where the compare view would not load properly in production (#658) @AurisAudentis

:toolbox: Maintenance

  • Run CLI tests serially in CI to avoid timeout issues (#631) @rien

📖 Documentation

  • Add building instructions to README (#620) @rien

- TypeScript
Published by github-actions[bot] over 4 years ago

@dodona/dolos - v1.2.1

🐛 Bug Fixes

  • Fix navigation drawer being hidden on desktop (#609) @rien

- TypeScript
Published by github-actions[bot] over 4 years ago

@dodona/dolos - v1.2.0

🚀 Features

  • Web UI: Allow more rows per page in pairs table (#608) @rien
  • CLI: Automatically open browser after launching Web UI (#594) @rien
  • Web UI: Small tweaks to user interface, improving overall experience (#593) @rien

🧰 Maintenance

  • Fix dependabot not updating yarn.lock (#600) @rien
  • Downgrade sass to resolve deprecation warnings (#586) @rien

📖 Documentation

  • Deploy docs automatically (#598) @rien
  • Deploy demo page after each new release (#599) @rien
  • Add installation instructions in README (#592) @rien
  • Fix broken links in documentation (#607) @rien

- TypeScript
Published by github-actions[bot] over 4 years ago

@dodona/dolos - v1.1.0

🚀 Features

  • Add a button to swap files in compare card (#571) @toonijn

🐛 Bug Fixes

  • Fix illegal report directory filename on Windows (#581) @rien

🧰 Maintenance

  • Create automatic release workflow (#580) @rien
  • Terminology rename (#564) @rien

📖 Documentation

  • Create documentation site at dolos.ugent.be (#572) @rien

- TypeScript
Published by github-actions[bot] over 4 years ago