{"id":33117646,"url":"https://github.com/JetBrains-Research/sorrel","last_synced_at":"2025-11-19T20:02:40.207Z","repository":{"id":54433127,"uuid":"300825939","full_name":"JetBrains-Research/sorrel","owner":"JetBrains-Research","description":"Plugin for checking license compatibility in IntelliJ IDEA","archived":false,"fork":false,"pushed_at":"2022-01-02T19:26:33.000Z","size":1744,"stargazers_count":25,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-10-04T10:54:04.062Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JetBrains-Research.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-03T07:48:19.000Z","updated_at":"2025-06-25T09:59:29.000Z","dependencies_parsed_at":"2022-08-13T15:31:04.394Z","dependency_job_id":null,"html_url":"https://github.com/JetBrains-Research/sorrel","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":"JetBrains/intellij-platform-plugin-template","purl":"pkg:github/JetBrains-Research/sorrel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains-Research%2Fsorrel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains-Research%2Fsorrel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains-Research%2Fsorrel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains-Research%2Fsorrel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JetBrains-Research","download_url":"https://codeload.github.com/JetBrains-Research/sorrel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains-Research%2Fsorrel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285319005,"owners_count":27151474,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-19T02:00:05.673Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-11-15T03:00:27.336Z","updated_at":"2025-11-19T20:02:40.201Z","avatar_url":"https://github.com/JetBrains-Research.png","language":"Kotlin","funding_links":[],"categories":["Software"],"sub_categories":["License management solutions"],"readme":"# Sorrel\n\n[![JB Research](https://jb.gg/badges/research-flat-square.svg)](https://research.jetbrains.org/)\n![Build](https://github.com/JetBrains-Research/sorrel/workflows/Build/badge.svg)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/JetBrains-Research/sorrel/blob/main/LICENSE)\n\n\u003c!-- Plugin description --\u003e\nA plugin for IntelliJ IDEA for managing licenses and detecting license incompatibilities. **Sorrel** allows to work with the\nlicenses of Java projects right inside IntelliJ IDEA.\n\n## Features\n\nThe plugin can:\n\n- Detect and recognize the licenses of project modules.\n- Detect and recognize the licenses of project libraries.\n- Detect incompatibilities between licenses in the project.\n- Suggest a project license that will be compatible with all the project's libraries.\n- Visualize all the licensing information inside the IDE and provide convenient features for managing licenses.\n\n\u003c!-- Plugin description end --\u003e\n\nYou can learn more in the [demonstration video](http://www.youtube.com/watch?v=doUeAwPjcPE).\n\n## Installation\n\nThe plugin is currently in development, so the first version will be coming soon to the Marketplace.\n\nYou can install the plugin in IntelliJ IDEA as follows:\n\n1. Download\n   the [latest build](https://github.com/JetBrains-Research/sorrel/releases/download/v1.1-eap/Sorrel-1.1-eap.zip) of the\n   **Sorrel** plugin.\n2. In the IDE, go to `File` - `Settings` - `Plugins` - ⚙️ - `Install from disk`, and select the\n   plugin zip.\n3. Restart the IDE.\n\n**Sorrel** requires IntelliJ IDEA in the version range from 2021.1 to 2021.3.1.\n\n## Supported Licenses\n\n**Sorrel** currently supports 16 most popular open-source licenses. A trained machine learning model (ML) and the\nSørensen-Dice coefficient (DSC)\nare used to detect 12 licenses. The remaining four licenses are detected using only the Sørensen-Dice coefficient.\nSupported licenses and detection methods are showed in the table below.\n\n| License                                                  | Detecting method |\n| :------------------------------------------------------- | :--------------: |\n| GNU Affero General Public License v3.0 only              | ML + DSC         |\n| Apache License 2.0                                       | ML + DSC         |\n| BSD 2-Clause \"Simplified\" License                        | ML + DSC         |\n| BSD 3-Clause \"New\" or \"Revised\" License                  | ML + DSC         |\n| Common Development and Distribution License 1.0          | DSC              |\n| Eclipse Public License 1.0                               | DSC              |\n| GNU General Public License v2.0 only                     | ML + DSC         |\n| GNU General Public License v2.0 with classpath exception | DSC              |\n| GNU General Public License v3.0 only                     | ML + DSC         |\n| ISC License                                              | ML + DSC         |\n| GNU Lesser General Public License v2.1 only              | ML + DSC         |\n| GNU Lesser General Public License v3.0 only              | ML + DSC         |\n| MIT License                                              | ML + DSC         |\n| Mozilla Public License 1.1                               | DSC              |\n| Mozilla Public License 2.0                               | ML + DSC         |\n| Do What The F*** You Want To Public License              | ML + DSC         |\n\n## How to Use\n\n### Tool Window\n\n**Sorrel** provides the user with a graphical interface for the convenience of managing licenses. The main graphical\ninterface of the plugin is the *Tool Window*. The window contains two tabs and provides the information about all the\nlicenses in the project. The first tab is called *Project License* and is presented below. It contains the information\nabout the detected main license of the project (root module), its description (permissions, limitations, and conditions), \nas well as a list of detected potential license violations. From this tab, the user also can export a JSON report with\nall the data.\n\n![Project License Window](https://github.com/JetBrains-Research/sorrel/raw/main/docs/pictures/ProjectLicenseWindow.png)\n\nThe second tab is called *Package Licenses* and is presented below. This tab contains the information about all the\nlicenses of libraries used inside project, it supports a search among all the libraries and filtering by modules.\n\n![Package Licenses Window](https://github.com/JetBrains-Research/sorrel/raw/main/docs/pictures/PackageLicensesWindow.png)\n\n### License Editor Notification\n\nIn addition to the Tool Window, the plugin provides the *License Editor Notification* panel, presented below. This panel\nappears at the top of the editor when the module license is opened in it. The panel allows the user to change the\nlicense in several simple clicks using the drop-down menu, while indicating which licenses are compatible with all the\nlicenses of the module's libraries. The panel also provides an opportunity to compare the current text of the license\nfile with the original text of the license to check for possible differences.\n\n![License Editor Notification](https://github.com/JetBrains-Research/sorrel/raw/main/docs/pictures/LicenseEditorNotification.png)\n\n### New Module License File Action\n\nAlso, the plugin adds a new item into the IDE's *Create new file...* menu, called *Module License File*. If the project\nhas no license, the user can use this functionality, and the plugin will detect the licenses compatible with all the\nproject's libraries, and suggest the most permissive one to the user. This way, even the most inexperienced user can\nmanage their licenses and not make mistakes. In the future, the user can always change their license using the *License\nEditor Notification* panel described above.\n\n![New Module License File Action](https://github.com/JetBrains-Research/sorrel/raw/main/docs/pictures/NewModuleLicenseFileAction.png)\n\n### Inlay License Hints\n\nFinally, the developed plugin provides another convenient way of viewing the licenses of libraries by providing hints\nright in the build system script. A hint with the name of the license of a given library appears next to each command\nthat connects the library, as shown below. These hints allow the user to keep the licenses in mind when adding new\nlibraries directly in the editor. The hints are implemented for Maven, Groovy Gradle, and Kotlin Gradle scripts.\n\n![Inlay License Hints](https://github.com/JetBrains-Research/sorrel/raw/main/docs/gif/InlayLicenseHints.gif)\n\n## License\n\nThis project is licensed under the Apache-2.0 License. The full text of the license can be found in\nthe [license file](https://github.com/JetBrains-Research/sorrel/blob/main/LICENSE).\n\n## Acknowledgments\n\n**Sorrel** was developed as a part of a research project in the Laboratory of [Machine Learning Methods in Software Engineering](https://research.jetbrains.org/groups/ml_methods/) at JetBrains Research.\n\n## Contacts\n\nIf you have any questions or suggestions about the plugin, feel free to contact Yaroslav Golubev in Telegram (@areyde).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJetBrains-Research%2Fsorrel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJetBrains-Research%2Fsorrel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJetBrains-Research%2Fsorrel/lists"}