Skip to content

Commit

Permalink
Remove EE License from Sematic, restore Apache 2.0 (#1146)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
augray authored Jan 9, 2025
1 parent 5311664 commit a5a42c7
Show file tree
Hide file tree
Showing 15 changed files with 23 additions and 123 deletions.
8 changes: 0 additions & 8 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -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
==============

Expand Down
6 changes: 4 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
12 changes: 5 additions & 7 deletions docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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 [email protected] 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.
8 changes: 2 additions & 6 deletions docs/container-images.md
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
13 changes: 2 additions & 11 deletions docs/github.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
# GitHub[^1]

{% hint style="info" %}
This feature is only available in Sematic
Enterprise Edition.
{% endhint %}
# GitHub

## Summary

Expand All @@ -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.

<img
Expand Down Expand Up @@ -287,7 +282,3 @@ github:
enabled: true
github_access_token: <TOKEN FROM GITHUB>
```
[^1]: This feature of Sematic is only available with the "Enterprise Edition."
Before using, please reach out to Sematic via [email protected] to obtain a
license for "Sematic EE."
2 changes: 1 addition & 1 deletion docs/metrics.md
Original file line number Diff line number Diff line change
@@ -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

Expand Down
22 changes: 3 additions & 19 deletions docs/ray.md
Original file line number Diff line number Diff line change
@@ -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?

Expand Down Expand Up @@ -217,18 +208,15 @@ 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]`
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
Expand Down Expand Up @@ -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 [email protected] to obtain a
license for "Sematic EE."
4 changes: 0 additions & 4 deletions docs/slack.md
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
4 changes: 2 additions & 2 deletions docs/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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.
over traditional CI tools or container-oriented tooling for ML pipelines.
14 changes: 1 addition & 13 deletions docs/upgrades.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 [[email protected]](mailto:[email protected]) 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[<extra>]`, where `<extra>` 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
Expand Down
2 changes: 1 addition & 1 deletion helm/sematic-server/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
36 changes: 0 additions & 36 deletions sematic/ee/LICENSE

This file was deleted.

7 changes: 0 additions & 7 deletions sematic/ee/README.md

This file was deleted.

3 changes: 1 addition & 2 deletions sematic/examples/lightning_resnet/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
5 changes: 1 addition & 4 deletions sematic/examples/summarization_finetune/train_eval.py
Original file line number Diff line number Diff line change
Expand Up @@ -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}")


Expand Down

0 comments on commit a5a42c7

Please sign in to comment.