-
Notifications
You must be signed in to change notification settings - Fork 53
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add new licensing docs * Fix spelling warnings * Provide more license links --------- Co-authored-by: Mike Solomon <[email protected]>
- Loading branch information
1 parent
2d43570
commit 90c9362
Showing
4 changed files
with
126 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -126,6 +126,7 @@ smallrye | |
smushed | ||
snakeyaml | ||
Sonatype | ||
sourced | ||
sourcespec | ||
springboot | ||
springframework | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# OpenRewrite licensing | ||
|
||
The core OpenRewrite framework is fully open and Apache licensed, and it will continue to be going forward. If open source software (OSS) authors want to provide software migrations to their users as pure OSS, they can. | ||
|
||
OpenRewrite recipes that have significant contributions from Moderne and third-party contributors will be available with the [Moderne Source Available License](https://docs.moderne.io/administrator-documentation/licensing/moderne-source-available-license/). This license precludes others from deriving significant commercial value from OpenRewrite without contributing to the community. Individual organizations can consume and apply these recipes to their source code, but the recipes cannot be put into commercial products or be re-sold. | ||
|
||
Moderne and others through partnerships with Moderne can offer commercial recipes. | ||
|
||
## Licensing types | ||
|
||
The OpenRewrite ecosystem is a marketplace of both free and proprietary recipes. The types of licensing can include: | ||
|
||
### Apache License Version 2.0 | ||
|
||
Core OpenRewrite technology and language libraries in general are fully open sourced under the [Apache license](https://www.apache.org/licenses/LICENSE-2.0). This includes the entirety of [openrewrite/rewrite](https://github.com/openrewrite/rewrite), including rewrite-core and many of the original language bindings (Java, Groovy, Kotlin, XML, Properties, YAML, Terraform, etc.). It also includes the building-block core recipes like `ChangeMethodName`, `ChangeType`, etc. and recipe repositories that are primarily committed to by third parties. This means that framework/library authors can supply OSS migrations to their consumers. | ||
|
||
### Moderne Source Available License | ||
|
||
Beyond the fully open license, additional OpenRewrite software and recipes are available broadly for users under a [source available license](https://docs.moderne.io/administrator-documentation/licensing/moderne-source-available-license/). The Maven and Gradle plugins are also source available. Because this license allows the right to “use, copy, distribute, make available, and prepare derivative works of the software,” it is possible for individual companies to customize recipes for their needs, such as tailoring recipes to internal APIs or removing optional idiomatic changes. | ||
|
||
**There are two primary limitations under this license:** | ||
|
||
* The software may not be commercialized or provided to others as a managed service. | ||
* No user may remove or obscure any licensing, copyright, or other notices. | ||
|
||
### Moderne Proprietary License | ||
|
||
There is a group of OpenRewrite recipes that are created by Moderne specifically for multi-repo code analysis and transformation on our platform, including those designed for large-scale impact analysis and security remediation, as well as those that leverage AI tool calling. These recipes are under the [Moderne Proprietary License](https://docs.moderne.io/administrator-documentation/licensing/overview). | ||
|
||
## FAQ | ||
|
||
### Is OpenRewrite open source software (OSS)? | ||
|
||
**Yes!** OpenRewrite is OSS. Core OpenRewrite technology and language libraries in general are fully open sourced under the Apache license. This includes the entirety of openrewrite/rewrite, including rewrite-core and many of the original language bindings (Java, Groovy, Kotlin, XML, Properties, YAML, Terraform, etc.). In addition, building-block recipes, and those created by third parties are fully open sourced. | ||
|
||
### Can end users and individual companies use source available recipes on private code? | ||
|
||
Yes. Recipes are available to individual users and companies to consume and apply on their own code both under the Apache License Version 2.0 License and the [Moderne Source Available License](https://docs.moderne.io/administrator-documentation/licensing/moderne-source-available-license/). | ||
|
||
The foundational purpose of OpenRewrite is to enable developers to more easily update, upgrade, and improve their code with the help of recipes developed by OSS maintainers and the community. | ||
|
||
### How does this impact those companies that are selling OpenRewrite recipes as part of their solutions? | ||
|
||
Source available recipes cannot be packaged for commercial sale. However, this opens the door to partnership negotiation, balancing the interests of both third parties and Moderne as the primary sponsor and contributor to the OpenRewrite project. | ||
|
||
## References | ||
|
||
* [OpenRewrite licensing by repository](./repository-licensing.md) | ||
* [Moderne Proprietary License](https://docs.moderne.io/administrator-documentation/licensing/overview) | ||
* [Moderne Source Available License](https://docs.moderne.io/administrator-documentation/licensing/moderne-source-available-license/) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
# OpenRewrite licensing by repository | ||
|
||
This table designates the licensing type for files in each OpenRewrite repository. | ||
|
||
The three licenses in the table can be found here: | ||
|
||
* [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | ||
* [Moderne Source Available License](https://docs.moderne.io/administrator-documentation/licensing/moderne-source-available-license) | ||
* [Moderne Proprietary License](https://docs.moderne.io/administrator-documentation/licensing/overview) | ||
|
||
| Repository | License Type | | ||
|------------------------------|----------------------------| | ||
| rewrite | Apache License Version 2.0 | | ||
| rewrite-openapi | Apache License Version 2.0 | | ||
| rewrite-micronaut | Apache License Version 2.0 | | ||
| rewrite-gradle-tooling-model | Apache License Version 2.0 | | ||
| rewrite-java-dependencies | Apache License Version 2.0 | | ||
| rewrite-all | Apache License Version 2.0 | | ||
| rewrite-build-gradle-plugin | Apache License Version 2.0 | | ||
| rewrite-liberty | Apache License Version 2.0 | | ||
| rewrite-quarkus | Apache License Version 2.0 | | ||
| rewrite-analysis | Apache License Version 2.0 | | ||
| rewrite-templating | Apache License Version 2.0 | | ||
| rewrite-third-party | Apache License Version 2.0 | | ||
| rewrite-kotlin | Apache License Version 2.0 | | ||
| rewrite-gradle-plugin | Moderne Source Available | | ||
| rewrite-maven-plugin | Moderne Source Available | | ||
| rewrite-spring | Moderne Source Available | | ||
| rewrite-logging-frameworks | Moderne Source Available | | ||
| rewrite-migrate-java | Moderne Source Available | | ||
| rewrite-static-analysis | Moderne Source Available | | ||
| rewrite-struts | Moderne Source Available | | ||
| rewrite-testing-frameworks | Moderne Source Available | | ||
| rewrite-okhttp | Moderne Source Available | | ||
| rewrite-jenkins | Moderne Source Available | | ||
| rewrite-apache | Moderne Source Available | | ||
| rewrite-micrometer | Moderne Source Available | | ||
| rewrite-docker | Moderne Source Available | | ||
| rewrite-hibernate | Moderne Source Available | | ||
| rewrite-cucumber-jvm | Moderne Source Available | | ||
| rewrite-feature-flags | Moderne Source Available | | ||
| rewrite-gitlab | Moderne Source Available | | ||
| rewrite-\<LANGUAGE\> | Moderne Proprietary | | ||
| rewrite-codemods-ng | Moderne Proprietary | | ||
| rewrite-sql | Moderne Proprietary | | ||
| rewrite-circleci | Moderne Proprietary | | ||
| rewrite-java-security | Moderne Proprietary | | ||
| rewrite-nodejs | Moderne Proprietary | | ||
| rewrite-ai-search | Moderne Proprietary | | ||
| rewrite-github-actions | Moderne Proprietary | | ||
| rewrite-polyglot | Moderne Proprietary | | ||
| rewrite-terraform | Moderne Proprietary | | ||
| rewrite-android | Moderne Proprietary | | ||
| rewrite-concourse | Moderne Proprietary | | ||
| rewrite-reactive-streams | Moderne Proprietary | | ||
| rewrite-migrate-python | Moderne Proprietary | | ||
| rewrite-kubernetes | Moderne Proprietary | | ||
| rewrite-jackson | Moderne Proprietary | | ||
| rewrite-codemods | Moderne Proprietary | | ||
| rewrite-dotnet | Moderne Proprietary | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters