From a5a42c74fc05d4a011b1d99ca9514c9437013bdd Mon Sep 17 00:00:00 2001 From: augray Date: Thu, 9 Jan 2025 09:48:55 -0500 Subject: [PATCH] Remove EE License from Sematic, restore Apache 2.0 (#1146) Given that we've decided to de-prioritize any monetization from Sematic, this PR restores it to a pure Apache 2.0 license. More information on the motivation for this change can be found [here](https://www.gnu.org/music/free-software-song.html). This also removes references to the EE edition in the docs and removes the "beta" designation from some associated EE features. --- LICENSE | 8 ----- Makefile | 6 ++-- docs/changelog.md | 12 +++---- docs/container-images.md | 8 ++--- docs/github.md | 13 ++----- docs/metrics.md | 2 +- docs/ray.md | 22 ++---------- docs/slack.md | 4 --- docs/testing.md | 4 +-- docs/upgrades.md | 14 +------- helm/sematic-server/values.yaml | 2 +- sematic/ee/LICENSE | 36 ------------------- sematic/ee/README.md | 7 ---- sematic/examples/lightning_resnet/README.md | 3 +- .../summarization_finetune/train_eval.py | 5 +-- 15 files changed, 23 insertions(+), 123 deletions(-) delete mode 100644 sematic/ee/LICENSE delete mode 100644 sematic/ee/README.md diff --git a/LICENSE b/LICENSE index edc5dd755..d0af96c39 100644 --- a/LICENSE +++ b/LICENSE @@ -1,11 +1,3 @@ -Copyright (c) 2023-present Sematic Inc. - -Portions of this software are licensed as follows: - -* All content that resides under the "sematic/ee/" directory of this repository, if that directory exists, is licensed under the license defined in "sematic/ee/LICENSE". -* All third party components incorporated into the Sematic Software are licensed under the original license provided by the owner of the applicable component. -* Content outside of the above mentioned directories or restrictions above is available under the "Apache 2" license as defined below. - Apache License ============== diff --git a/Makefile b/Makefile index 4a2096a60..958b1fd32 100644 --- a/Makefile +++ b/Makefile @@ -86,9 +86,11 @@ release: release-server: rm -f docker/*.whl cp ./dist/*sematic*.whl docker/ - cd docker; docker build --build-arg EXTRA=default -t sematic/sematic-server:${TAG} -f Dockerfile.server . + cd docker; docker build --build-arg EXTRA=all -t sematic/sematic-server:${TAG} -f Dockerfile.server . docker push sematic/sematic-server:${TAG} - cd docker; docker build --build-arg EXTRA=all -t sematic/sematic-server-ee:${TAG} -f Dockerfile.server . + # alias the ee server to be the same as the non-ee server for anybody + # who continues to rely on the ee tag. + docker image tag sematic/sematic-server:${TAG} sematic/sematic-server-ee:${TAG} docker push sematic/sematic-server-ee:${TAG} test: diff --git a/docs/changelog.md b/docs/changelog.md index 93ab84d80..5b23fcbe3 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -96,7 +96,7 @@ with nothing else on the line. * [improvement] Add constraints to the DB schema in order to improve validations. In case you get any errors during the upgrade, please contact us on [Discord](https://discord.gg/4KZJ6kYVax) so that we can assist you. - * [improvement] Added documentation for custom user metrics[^1] + * [improvement] Added documentation for custom user metrics * [improvement] Improve error messaging for unschedulable pipeline runs * [improvement] When running the CLI via Bazel, use the current directory as the working directory @@ -119,7 +119,7 @@ with nothing else on the line. * [improvement] Add index on edges for source/dest run ids * [0.31.0](https://pypi.org/project/sematic/0.31.0/) * [feature] Enable remote execution using pure-Docker, without bazel - * [feature] Support live-metrics during Sematic Function execution[^1] + * [feature] Support live-metrics during Sematic Function execution * [feature] Add visualization for Prompt/Response pairs * [example] Add Hacker News summarization example * [improvement] Expose all Kubernetes classes in the base `sematic` module @@ -232,7 +232,7 @@ with nothing else on the line. * [bugfix] Fixed a bug where failure to notify the Dashboard or Resolver with Run updates via socketio messages would cause the Resolution to fail * [0.26.0](https://pypi.org/project/sematic/0.26.0/) - * [feature] Added optional anonymized user analytics to track Sematic usage[^2] + * [feature] Added optional anonymized user analytics to track Sematic usage[^1] * [improvement] Atomic database migrations with Helm hooks * [improvement] Move future pickle storage to new server-generated locations * [improvement] Refactor in-app links to use react router @@ -255,7 +255,7 @@ with nothing else on the line. * [improvement] Show more detailed errors on failures of DB migrations * [bugfix] Reduce wheel size * [0.24.0](https://pypi.org/project/sematic/0.24.0/) - * [feature] Introduction of RayCluster[^1] + * [feature] Introduction of RayCluster * [feature] "Tee" cloud function logs so they appear in Sematic dashboard and the pod logs * [improvement] Visualize better which run was the true "root failure" when a resolution fails * [improvement] Improve an error message when using untyped dicts in type annotations @@ -486,7 +486,5 @@ with nothing else on the line. * [0.0.2.alpha.1654828599](https://pypi.org/project/sematic/0.0.2a1654828599/) * Initial release -[^1]: This feature is for Sematic's "Enterprise Edition" only. Please reach out -to support@sematic.dev if you are interested in using Sematic EE. -[^2]: This release adds opt-out anonymized user analytics tracking to the Sematic +[^1]: This release adds opt-out anonymized user analytics tracking to the Sematic code. You can opt-out of this tracking on the Sematic Dashboard home page. diff --git a/docs/container-images.md b/docs/container-images.md index 677776498..c6660b6b9 100644 --- a/docs/container-images.md +++ b/docs/container-images.md @@ -19,15 +19,11 @@ Sematic currently supports two build systems: ### Docker {% hint style="warning" %} -This feature is in "Beta." +The Native Docker Build System only supports Debian GNU/Linux. {% endhint %} {% hint style="warning" %} -The Native Docker Build System currently only supports Debian GNU/Linux. -{% endhint %} - -{% hint style="warning" %} -The Native Docker Build System currently does not support multiple base images. +The Native Docker Build System does not support multiple base images. {% endhint %} If you don't want to use [Bazel](https://bazel.build) to manage your project, diff --git a/docs/github.md b/docs/github.md index 9f26ea997..cedab8b41 100644 --- a/docs/github.md +++ b/docs/github.md @@ -1,9 +1,4 @@ -# GitHub[^1] - -{% hint style="info" %} -This feature is only available in Sematic -Enterprise Edition. -{% endhint %} +# GitHub ## Summary @@ -12,7 +7,7 @@ it be "traditional" code, [unit testing of ML pipelines](./testing.md), or runni [regression pipelines](https://www.sematic.dev/blog/continuous-learning-for-safer-and-better-ml-models) involving your data and models. -If you have deployed Sematic EE[^1], you can configure it to integrate with GitHub such +If you have deployed Sematic, you can configure it to integrate with GitHub such that you can validate your commits (for PRs or any other purpose) using Sematic runs. ``` - -[^1]: This feature of Sematic is only available with the "Enterprise Edition." -Before using, please reach out to Sematic via support@sematic.dev to obtain a -license for "Sematic EE." diff --git a/docs/metrics.md b/docs/metrics.md index 8acb45cdd..b51912272 100644 --- a/docs/metrics.md +++ b/docs/metrics.md @@ -1,7 +1,7 @@ # Metrics Sematic surfaces a number of high-level metrics in the Dashboard, and lets -Enterprise users log their own metrics at runtime. +users log their own metrics at runtime. ## Pipeline metrics diff --git a/docs/ray.md b/docs/ray.md index a34192a50..bafcf4360 100644 --- a/docs/ray.md +++ b/docs/ray.md @@ -1,13 +1,4 @@ -# Ray[^1] - -{% hint style="warning" %} -This feature is in "Beta." -{% endhint %} - -{% hint style="info" %} -This feature is only available in Sematic -Enterprise Edition. -{% endhint %} +# Ray ## What is Ray? @@ -217,10 +208,6 @@ of the Ray head AND of the autoscaler. ## Installation and configuration -Before using this feature, make sure you are set up with a Sematic EE -license. Once that's taken care of, you will need to make the following -changes: - ### Pip package Instead of depending on `sematic`, you will need to depend on `sematic[ray]` @@ -228,7 +215,8 @@ or `sematic[all]`. ### Helm chart -Ensure that you are using an [EE server](./upgrades.md#foss-to-enterprise-edition1). +Ensure that you are using an [EE server](https://hub.docker.com/r/sematic/sematic-server-ee) +OR v0.41.0 or higher of the standard server. Then you will need to install Kuberay into your Kubernetes environment. #### Installing Kuberay @@ -268,7 +256,3 @@ ray: non_gpu_tolerations: [] gpu_resource_request_key: null ``` - -[^1]: This feature of Sematic is only available with the "Enterprise Edition." -Before using, please reach out to Sematic via support@sematic.dev to obtain a -license for "Sematic EE." diff --git a/docs/slack.md b/docs/slack.md index 9e0f6e16a..21bea7759 100644 --- a/docs/slack.md +++ b/docs/slack.md @@ -1,7 +1,3 @@ -{% hint style="warning" %} -This feature is in "Beta." -{% endhint %} - ## Using Slack with Sematic Sematic currently automatically sends [Pipeline Run](glossary.md#pipeline-run) diff --git a/docs/testing.md b/docs/testing.md index 7716e042a..146031fca 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -10,7 +10,7 @@ have your pipeline execute for hours or days, and then have it fail near the end for a simple error! Luckily, Sematic provides out-of-the-box support for unit testing your -Sematic pipelines. With Sematic Enterprise Edition, you can also +Sematic pipelines. You can also integrate Sematic with your version control system to block PRs and perform other commit checking. See our [GitHub](./github.md) integration for more information. @@ -104,4 +104,4 @@ def test_mock_sematic_funcs(): Note that this is able to test the connections between your pipeline using familiar python mechanisms. This is one more advantage of using Sematic -over traditional CI tools or container-oriented tooling for ML pipelines. \ No newline at end of file +over traditional CI tools or container-oriented tooling for ML pipelines. diff --git a/docs/upgrades.md b/docs/upgrades.md index 8d3d02cf4..272b919de 100644 --- a/docs/upgrades.md +++ b/docs/upgrades.md @@ -272,8 +272,7 @@ need to duplicate them in the `deps` field. You will need to make the following changes to the `values.yaml` for your Helm deployment: -- If you are NOT using Sematic "Enterprise Edition", -change `image.repository` from `sematicai/sematic-server` +- Change `image.repository` from `sematicai/sematic-server` to `sematic/sematic-server`. - You may have hard-coded a Sematic version in `image.tag` to work around the bug referenced in @@ -286,17 +285,6 @@ for the chart you install. parameter to [`ingress.sematic_dashboard_url`](https://github.com/sematic-ai/sematic/pull/547) -## FOSS to "Enterprise Edition" - -0. Reach out to Sematic via [support@sematic.dev](mailto:support@sematic.dev) to obtain -an Enterprise License. -1. In your helm deployment, change `image.repository` to `sematic/sematic-server-ee`. -2. In your `pip` installation (client installation), change from depending on `sematic` -to `sematic[]`, where `` is the appropriate variant of Sematic containing -the EE features you are interested in. See [integrations](#integrations) below for -specific extras. Note that `sematic[all]` will equip clients with ALL Enterprise Edition -features. - ## Integrations Some integrations require changes to how pip packages and Helm deployments diff --git a/helm/sematic-server/values.yaml b/helm/sematic-server/values.yaml index 9778bbe56..a63d12096 100644 --- a/helm/sematic-server/values.yaml +++ b/helm/sematic-server/values.yaml @@ -32,7 +32,7 @@ slack: slack_webhook_token: XXX/YYY/ZZZ # REPLACE ME github: - enabled: false # This feature can only be enabled with Sematic EE. + enabled: false github_access_token: github_pat_1234 # REPLACE ME secret: diff --git a/sematic/ee/LICENSE b/sematic/ee/LICENSE deleted file mode 100644 index cbe82612a..000000000 --- a/sematic/ee/LICENSE +++ /dev/null @@ -1,36 +0,0 @@ -The Sematic Enterprise license (the "Enterprise License") -Copyright (c) 2023 - present Sematic Inc. - -With regard to the Sematic Software: - -This software and associated documentation files (the "Software") may only be -used in production, if you (and any entity that you represent) have agreed to, -and are in compliance with, the Sematic Enterprise Terms of Service, available -via email (support@sematic.dev) (the "Enterprise Terms"), or other -agreement governing the use of the Software, as agreed by you and Sematic, -and otherwise have a valid Sematic Enterprise license for the -correct usage volume. Subject to the foregoing sentence, you are free to -modify this Software and publish patches to the Software. You agree that Sematic -and/or its licensors (as applicable) retain all right, title and interest in and -to all such modifications and/or patches, and all such modifications and/or -patches may only be used, copied, modified, displayed, distributed, or otherwise -exploited with a valid Sematic Enterprise license for the correct -usage volume. Notwithstanding the foregoing, you may copy and modify -the Software for development and testing purposes, without requiring a -subscription. You agree that Sematic and/or its licensors (as applicable) retain -all right, title and interest in and to all such modifications. You are not -granted any other rights beyond what is expressly stated herein. Subject to the -foregoing, it is forbidden to copy, merge, publish, distribute, sublicense, -and/or sell the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -For all third party components incorporated into the Sematic Software, those -components are licensed under the original license provided by the owner of the -applicable component. diff --git a/sematic/ee/README.md b/sematic/ee/README.md deleted file mode 100644 index 7d285a180..000000000 --- a/sematic/ee/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Alternate License Notice - -The code in this directory is only intended for usage with the paid version of -Sematic. Please see the [LICENSE](./LICENSE) file for reference. Interested in -using some of the features here? We'd love to hear from you! Reach out to -support@sematic.dev or on our -[Discord channel](https://discord.gg/4KZJ6kYVax). diff --git a/sematic/examples/lightning_resnet/README.md b/sematic/examples/lightning_resnet/README.md index a11fc0ae3..b0a7476d9 100644 --- a/sematic/examples/lightning_resnet/README.md +++ b/sematic/examples/lightning_resnet/README.md @@ -7,8 +7,7 @@ to do distributed training of a model classifying images in the using ResNet. This example can only be run on Kubernetes clusters set up with sufficiently powerful -GPU nodes enabled. It makes use of Sematic's Ray integration, which is available in -Sematic EE. +GPU nodes enabled. It makes use of Sematic's Ray integration. The modeling code in `train_eval` is based on an example from [the pytorch lightning documentation](https://pytorch-lightning.readthedocs.io/en/stable/notebooks/lightning_examples/cifar10-baseline.html) diff --git a/sematic/examples/summarization_finetune/train_eval.py b/sematic/examples/summarization_finetune/train_eval.py index 2f06d9227..afcb5c384 100644 --- a/sematic/examples/summarization_finetune/train_eval.py +++ b/sematic/examples/summarization_finetune/train_eval.py @@ -77,10 +77,7 @@ def trim_context(context): def log_metric(name: str, value: float) -> None: - """Stand-in for Sematic's `log_metric` that prints to stdout. - - Sematic's log_metric is only available for EE users. - """ + """Stand-in for Sematic's `log_metric` that prints to stdout.""" print(f"Metric '{name}': {value}")