diff --git a/.github/workflows/on-push-to-release-branch.yaml b/.github/workflows/on-push-to-release-branch.yaml
index 48aa9790..170865b2 100644
--- a/.github/workflows/on-push-to-release-branch.yaml
+++ b/.github/workflows/on-push-to-release-branch.yaml
@@ -44,10 +44,7 @@ jobs:
with:
dotnet-version: "6.0.x"
- - name: Build
- run: make build
-
- - name: Pack and Publish
+ - name: Pack and Publish the standard SDK
run: |
set -x
pushd src/Momento.Sdk
@@ -57,6 +54,17 @@ jobs:
dotnet pack -c Release -p:Version=${VERSION}
dotnet nuget push ./bin/Release/Momento.Sdk.${VERSION}.nupkg --source https://api.nuget.org/v3/index.json --api-key=${{secrets.NUGET_API_KEY}}
popd
+
+ - name: Pack and Publish the web SDK
+ run: |
+ set -x
+ pushd src/Momento.Sdk
+ VERSION="${{ needs.release.outputs.version }}"
+ echo "version: ${VERSION}"
+ dotnet build -p:DefineConstants=USE_GRPC_WEB --configuration Release
+ dotnet pack -p:DefineConstants=USE_GRPC_WEB -c Release -p:Version=${VERSION}
+ dotnet nuget push ./bin/Release/Momento.Sdk.Web.${VERSION}.nupkg --source https://api.nuget.org/v3/index.json --api-key=${{secrets.NUGET_API_KEY}}
+ popd
- name: Build for Unity
run: |
@@ -68,7 +76,7 @@ jobs:
dotnet publish --configuration Release -f netstandard2.0 -p:DefineConstants=USE_GRPC_WEB -p:VersionPrefix=${VERSION}
mkdir ./bin/Release/netstandard2.0/MomentoSdkUnity
pushd ./bin/Release/netstandard2.0/publish/
- cp Google.Protobuf.dll Grpc.Core.Api.dll Grpc.Net.Client.dll Grpc.Net.Client.Web.dll Grpc.Net.Common.dll JWT.dll Microsoft.Bcl.AsyncInterfaces.dll Microsoft.Extensions.Logging.Abstractions.dll Momento.Protos.dll Momento.Sdk.dll Newtonsoft.Json.dll System.Diagnostics.DiagnosticSource.dll System.Runtime.CompilerServices.Unsafe.dll System.Threading.Channels.dll ../MomentoSdkUnity/
+ cp Google.Protobuf.dll Grpc.Core.Api.dll Grpc.Net.Client.dll Grpc.Net.Client.Web.dll Grpc.Net.Common.dll JWT.dll Microsoft.Bcl.AsyncInterfaces.dll Microsoft.Extensions.Logging.Abstractions.dll Momento.Protos.dll Momento.Sdk.Web.dll Newtonsoft.Json.dll System.Diagnostics.DiagnosticSource.dll System.Runtime.CompilerServices.Unsafe.dll System.Threading.Channels.dll ../MomentoSdkUnity/
popd
zip -jr MomentoSdkUnity.zip bin/Release/netstandard2.0/MomentoSdkUnity/
ZIP_FILE=./MomentoSdkUnity.zip
diff --git a/Makefile b/Makefile
index c7072aba..1fb3fa66 100644
--- a/Makefile
+++ b/Makefile
@@ -8,15 +8,15 @@
# - On other operating systems `make build` (test) we only runs the .NET 6.0 build (test) targets.
# - We also have a GRPC_WEB flag that can be set to true to enable gRPC-Web support.
# - The caller can run `make GRPC_WEB=true build` to enable gRPC-Web support.
-# - We additionally group the integration tests by endpoint (cache, control, token).
-# - This is to allow for more granular testing by endpoint.
-# - Similar to `build` and `test` targets, we have `test-cache-endpoint`, `test-control-endpoint`, `test-token-endpoint`, and `test-storage-endpoint` targets
+# - We additionally group the integration tests by service (auth, cache, topics).
+# - This is to allow for more granular testing by service.
+# - Similar to `build` and `test` targets, we have `test-cache-service`, `test-topics-service`, `test-auth-service` targets
# that are conditionally run based on the operating system.
.PHONY: all build build-dotnet6 build-dotnet-framework clean clean-build precommit restore test \
- test-dotnet6 test-dotnet6-integration test-dotnet6-cache-endpoint test-dotnet6-control-endpoint test-dotnet6-token-endpoint \
- test-dotnet-framework test-dotnet-framework-integration test-dotnet-framework-cache-endpoint test-dotnet-framework-control-endpoint test-dotnet-framework-token-endpoint \
- test-control-endpoint test-cache-endpoint test-token-endpoint test-storage-endpoint \
+ test-dotnet6 test-dotnet6-integration test-dotnet6-cache-service test-dotnet6-topics-service test-dotnet6-auth-service \
+ test-dotnet-framework test-dotnet-framework-integration test-dotnet-framework-cache-service test-dotnet-framework-topics-service test-dotnet-framework-auth-service \
+ test-auth-service test-cache-service test-leaderboard-service test-storage-service test-topics-service \
run-examples help
# Determine the operating system
@@ -32,15 +32,15 @@ TEST_LOGGER_OPTIONS := --logger "console;verbosity=detailed"
ifneq (,$(findstring NT,$(OS)))
BUILD_TARGETS := build-dotnet6 build-dotnet-framework
TEST_TARGETS := test-dotnet6 test-dotnet-framework
- TEST_TARGETS_CACHE_ENDPOINT := test-dotnet6-cache-endpoint test-dotnet-framework-cache-endpoint
- TEST_TARGETS_CONTROL_ENDPOINT := test-dotnet6-control-endpoint test-dotnet-framework-control-endpoint
- TEST_TARGETS_TOKEN_ENDPOINT := test-dotnet6-token-endpoint test-dotnet-framework-token-endpoint
+ TEST_TARGETS_AUTH_SERVICE := test-dotnet6-auth-service test-dotnet-framework-auth-service
+ TEST_TARGETS_CACHE_SERVICE := test-dotnet6-cache-service test-dotnet-framework-cache-service
+ TEST_TARGETS_TOPICS_SERVICE := test-dotnet6-topics-service test-dotnet-framework-topics-service
else
BUILD_TARGETS := build-dotnet6
TEST_TARGETS := test-dotnet6
- TEST_TARGETS_CACHE_ENDPOINT := test-dotnet6-cache-endpoint
- TEST_TARGETS_CONTROL_ENDPOINT := test-dotnet6-control-endpoint
- TEST_TARGETS_TOKEN_ENDPOINT := test-dotnet6-token-endpoint
+ TEST_TARGETS_AUTH_SERVICE := test-dotnet6-auth-service
+ TEST_TARGETS_CACHE_SERVICE := test-dotnet6-cache-service
+ TEST_TARGETS_TOPICS_SERVICE := test-dotnet6-topics-service
endif
# Enable gRPC-Web if requested
@@ -50,9 +50,9 @@ ifeq ($(GRPC_WEB), true)
endif
# Various test filters
-CACHE_ENDPOINT_TESTS_FILTER := "FullyQualifiedName~Momento.Sdk.Tests.Integration.Cache.Data|FullyQualifiedName~Momento.Sdk.Tests.Integration.Topics.Data"
-CONTROL_ENDPOINT_TESTS_FILTER := "FullyQualifiedName~Momento.Sdk.Tests.Integration.Cache.Control"
-TOKEN_ENDPOINT_TESTS_FILTER := "FullyQualifiedName~Momento.Sdk.Tests.Integration.Auth"
+CACHE_SERVICE_TESTS_FILTER := "FullyQualifiedName~Momento.Sdk.Tests.Integration.Cache"
+TOPICS_SERVICE_TESTS_FILTER := "FullyQualifiedName~Momento.Sdk.Tests.Integration.Topics"
+AUTH_SERVICE_TESTS_FILTER := "FullyQualifiedName~Momento.Sdk.Tests.Integration.Auth"
## Generate sync unit tests, format, lint, and test
@@ -104,22 +104,22 @@ test-dotnet6:
@dotnet test ${TEST_LOGGER_OPTIONS} -f ${DOTNET_VERSION}
-## Run integration tests on the .NET 6.0 runtime against the cache endpoint
-test-dotnet6-cache-endpoint:
- @echo "Running integration tests on the .NET 6.0 runtime against the cache endpoint..."
- @dotnet test ${TEST_LOGGER_OPTIONS} -f ${DOTNET_VERSION} --filter ${CACHE_ENDPOINT_TESTS_FILTER}
+## Run integration tests on the .NET 6.0 runtime against the cache service
+test-dotnet6-cache-service:
+ @echo "Running integration tests on the .NET 6.0 runtime against the cache service..."
+ @dotnet test ${TEST_LOGGER_OPTIONS} -f ${DOTNET_VERSION} --filter ${CACHE_SERVICE_TESTS_FILTER}
-## Run integration tests on the .NET 6.0 runtime against the control endpoint
-test-dotnet6-control-endpoint:
- @echo "Running integration tests on the .NET 6.0 runtime against the control endpoint..."
- @dotnet test ${TEST_LOGGER_OPTIONS} -f ${DOTNET_VERSION} --filter ${CONTROL_ENDPOINT_TESTS_FILTER}
+## Run integration tests on the .NET 6.0 runtime against the topics service
+test-dotnet6-topics-service:
+ @echo "Running integration tests on the .NET 6.0 runtime against the topics service..."
+ @dotnet test ${TEST_LOGGER_OPTIONS} -f ${DOTNET_VERSION} --filter ${TOPICS_SERVICE_TESTS_FILTER}
-## Run integration tests on the .NET 6.0 runtime against the token endpoint
-test-dotnet6-token-endpoint:
- @echo "Running integration tests on the .NET 6.0 runtime against the token endpoint..."
- @dotnet test ${TEST_LOGGER_OPTIONS} -f ${DOTNET_VERSION} --filter ${TOKEN_ENDPOINT_TESTS_FILTER}
+## Run integration tests on the .NET 6.0 runtime against the auth service
+test-dotnet6-auth-service:
+ @echo "Running integration tests on the .NET 6.0 runtime against the auth service..."
+ @dotnet test ${TEST_LOGGER_OPTIONS} -f ${DOTNET_VERSION} --filter ${AUTH_SERVICE_TESTS_FILTER}
## Run unit and integration tests on the .NET Framework runtime (Windows only)
@@ -128,39 +128,44 @@ test-dotnet-framework:
@dotnet test ${TEST_LOGGER_OPTIONS} -f ${DOTNET_FRAMEWORK_VERSION}
-## Run integration tests on the .NET Framework runtime against the cache endpoint (Windows only)
-test-dotnet-framework-cache-endpoint:
- @echo "Running integration tests on the .NET Framework runtime against the cache endpoint..."
- @dotnet test ${TEST_LOGGER_OPTIONS} -f ${DOTNET_FRAMEWORK_VERSION} --filter ${CACHE_ENDPOINT_TESTS_FILTER}
+## Run integration tests on the .NET Framework runtime against the cache service (Windows only)
+test-dotnet-framework-cache-service:
+ @echo "Running integration tests on the .NET Framework runtime against the cache service..."
+ @dotnet test ${TEST_LOGGER_OPTIONS} -f ${DOTNET_FRAMEWORK_VERSION} --filter ${CACHE_SERVICE_TESTS_FILTER}
-## Run integration tests on the .NET Framework runtime against the control endpoint (Windows only)
-test-dotnet-framework-control-endpoint:
- @echo "Running integration tests on the .NET Framework runtime against the control endpoint..."
- @dotnet test ${TEST_LOGGER_OPTIONS} -f ${DOTNET_FRAMEWORK_VERSION} --filter ${CONTROL_ENDPOINT_TESTS_FILTER}
+## Run integration tests on the .NET Framework runtime against the topics service (Windows only)
+test-dotnet-framework-topics-service:
+ @echo "Running integration tests on the .NET Framework runtime against the topics service..."
+ @dotnet test ${TEST_LOGGER_OPTIONS} -f ${DOTNET_FRAMEWORK_VERSION} --filter ${TOPICS_SERVICE_TESTS_FILTER}
-## Run integration tests on the .NET Framework runtime against the token endpoint (Windows only)
-test-dotnet-framework-token-endpoint:
- @echo "Running integration tests on the .NET Framework runtime against the token endpoint..."
- @dotnet test ${TEST_LOGGER_OPTIONS} -f ${DOTNET_FRAMEWORK_VERSION} --filter ${TOKEN_ENDPOINT_TESTS_FILTER}
+## Run integration tests on the .NET Framework runtime against the auth service (Windows only)
+test-dotnet-framework-auth-service:
+ @echo "Running integration tests on the .NET Framework runtime against the auth service..."
+ @dotnet test ${TEST_LOGGER_OPTIONS} -f ${DOTNET_FRAMEWORK_VERSION} --filter ${AUTH_SERVICE_TESTS_FILTER}
-## Run cache endpoint tests
-test-cache-endpoint: ${TEST_TARGETS_CACHE_ENDPOINT}
+## Run auth service tests
+test-auth-service: ${TEST_TARGETS_AUTH_SERVICE}
-## Run control endpoint tests
-test-control-endpoint: ${TEST_TARGETS_CONTROL_ENDPOINT}
+## Run cache service tests
+test-cache-service: ${TEST_TARGETS_CACHE_SERVICE}
-## Run token endpoint tests
-test-token-endpoint: ${TEST_TARGETS_TOKEN_ENDPOINT}
+## Run leaderboard service tests
+test-leaderboard-service:
+ @echo "Leaderboard client not implemented yet."
-## Run storage endpoint tests
-test-storage-endpoint:
- @echo "Storage tests are not yet implemented."
+## Run storage service tests
+test-storage-service:
+ @echo "Storage client not implemented yet."
+
+
+## Run topics service tests
+test-topics-service: ${TEST_TARGETS_TOPICS_SERVICE}
## Run example applications and snippets
diff --git a/src/Momento.Sdk/Momento.Sdk.csproj b/src/Momento.Sdk/Momento.Sdk.csproj
index b0949add..14151f7e 100644
--- a/src/Momento.Sdk/Momento.Sdk.csproj
+++ b/src/Momento.Sdk/Momento.Sdk.csproj
@@ -13,16 +13,10 @@
true
true
-
- Momento.Sdk
+
+
Momento
Momento Inc
-
- C# SDK for Momento, a serverless cache that automatically scales without any of the
- operational overhead required by traditional caching solutions.
-
- Check out our SDK example here: https://github.com/momentohq/client-sdk-dotnet/tree/main/examples
-
caching, cache, serverless, key value, simple caching service, distributedcache
Copyright (c) Momento Inc 2022
Apache-2.0
@@ -30,6 +24,32 @@
https://github.com/momentohq/client-sdk-dotnet
+
+
+ Momento.Sdk
+ Momento.Sdk
+
+ C# SDK for Momento, a serverless cache that automatically scales without any of the
+ operational overhead required by traditional caching solutions.
+
+ Check out our SDK example here: https://github.com/momentohq/client-sdk-dotnet/tree/main/examples
+
+
+
+
+
+ Momento.Sdk.Web
+ Momento.Sdk.Web
+
+ C# Web SDK for Momento, a serverless cache that automatically scales without any of the
+ operational overhead required by traditional caching solutions.
+
+ This version of the SDK uses gRPC-Web and is for clients that don't have access to HTTP 2.0.
+
+ Check out our SDK example here: https://github.com/momentohq/client-sdk-dotnet/tree/main/examples
+
+
+
@@ -60,7 +80,6 @@
-
diff --git a/tests/Integration/Momento.Sdk.Tests/Cache/Control/CacheControlTest.cs b/tests/Integration/Momento.Sdk.Tests/Cache/CacheControlTest.cs
similarity index 99%
rename from tests/Integration/Momento.Sdk.Tests/Cache/Control/CacheControlTest.cs
rename to tests/Integration/Momento.Sdk.Tests/Cache/CacheControlTest.cs
index dc2db251..b0056567 100644
--- a/tests/Integration/Momento.Sdk.Tests/Cache/Control/CacheControlTest.cs
+++ b/tests/Integration/Momento.Sdk.Tests/Cache/CacheControlTest.cs
@@ -3,7 +3,7 @@
using System.Threading.Tasks;
using Momento.Sdk.Auth;
-namespace Momento.Sdk.Tests.Integration.Cache.Control;
+namespace Momento.Sdk.Tests.Integration.Cache;
[Collection("CacheClient")]
public class CacheControlTest : TestBase
diff --git a/tests/Integration/Momento.Sdk.Tests/Cache/Data/CacheEagerConnectionTest.cs b/tests/Integration/Momento.Sdk.Tests/Cache/CacheEagerConnectionTest.cs
similarity index 98%
rename from tests/Integration/Momento.Sdk.Tests/Cache/Data/CacheEagerConnectionTest.cs
rename to tests/Integration/Momento.Sdk.Tests/Cache/CacheEagerConnectionTest.cs
index 3fec92e3..8b6ce3bf 100644
--- a/tests/Integration/Momento.Sdk.Tests/Cache/Data/CacheEagerConnectionTest.cs
+++ b/tests/Integration/Momento.Sdk.Tests/Cache/CacheEagerConnectionTest.cs
@@ -3,7 +3,7 @@
using Momento.Sdk.Config;
using Momento.Sdk.Config.Transport;
-namespace Momento.Sdk.Tests.Integration.Cache.Data;
+namespace Momento.Sdk.Tests.Integration.Cache;
public class CacheEagerConnectionTest
{
diff --git a/tests/Integration/Momento.Sdk.Tests/Cache/Data/CacheScalarTest.cs b/tests/Integration/Momento.Sdk.Tests/Cache/CacheScalarTest.cs
similarity index 99%
rename from tests/Integration/Momento.Sdk.Tests/Cache/Data/CacheScalarTest.cs
rename to tests/Integration/Momento.Sdk.Tests/Cache/CacheScalarTest.cs
index 03ee3569..5be58996 100644
--- a/tests/Integration/Momento.Sdk.Tests/Cache/Data/CacheScalarTest.cs
+++ b/tests/Integration/Momento.Sdk.Tests/Cache/CacheScalarTest.cs
@@ -4,13 +4,13 @@
using System.Threading.Tasks;
using Momento.Sdk.Internal.ExtensionMethods;
-namespace Momento.Sdk.Tests.Integration.Cache.Data;
+namespace Momento.Sdk.Tests.Integration.Cache;
[Collection("CacheClient")]
-public class CacheDataTest : TestBase
+public class CacheScalarTest : TestBase
{
// Test initialization
- public CacheDataTest(CacheClientFixture fixture) : base(fixture)
+ public CacheScalarTest(CacheClientFixture fixture) : base(fixture)
{
}
diff --git a/tests/Integration/Momento.Sdk.Tests/Cache/Data/DictionaryTest.cs b/tests/Integration/Momento.Sdk.Tests/Cache/DictionaryTest.cs
similarity index 99%
rename from tests/Integration/Momento.Sdk.Tests/Cache/Data/DictionaryTest.cs
rename to tests/Integration/Momento.Sdk.Tests/Cache/DictionaryTest.cs
index 83ead1e9..7d45cdf3 100644
--- a/tests/Integration/Momento.Sdk.Tests/Cache/Data/DictionaryTest.cs
+++ b/tests/Integration/Momento.Sdk.Tests/Cache/DictionaryTest.cs
@@ -3,7 +3,7 @@
using Momento.Sdk.Internal.ExtensionMethods;
using Momento.Sdk.Requests;
-namespace Momento.Sdk.Tests.Integration.Cache.Data;
+namespace Momento.Sdk.Tests.Integration.Cache;
[Collection("CacheClient")]
public class DictionaryTest : TestBase
diff --git a/tests/Integration/Momento.Sdk.Tests/Cache/Data/ListTest.cs b/tests/Integration/Momento.Sdk.Tests/Cache/ListTest.cs
similarity index 99%
rename from tests/Integration/Momento.Sdk.Tests/Cache/Data/ListTest.cs
rename to tests/Integration/Momento.Sdk.Tests/Cache/ListTest.cs
index 09125e9c..d797d95a 100644
--- a/tests/Integration/Momento.Sdk.Tests/Cache/Data/ListTest.cs
+++ b/tests/Integration/Momento.Sdk.Tests/Cache/ListTest.cs
@@ -6,7 +6,7 @@
using Momento.Sdk.Responses;
using Momento.Sdk.Tests;
-namespace Momento.Sdk.Tests.Integration.Cache.Data;
+namespace Momento.Sdk.Tests.Integration.Cache;
[Collection("CacheClient")]
public class ListTest : TestBase
diff --git a/tests/Integration/Momento.Sdk.Tests/Cache/Data/SetTest.cs b/tests/Integration/Momento.Sdk.Tests/Cache/SetTest.cs
similarity index 99%
rename from tests/Integration/Momento.Sdk.Tests/Cache/Data/SetTest.cs
rename to tests/Integration/Momento.Sdk.Tests/Cache/SetTest.cs
index 5d15f396..50e6ef4d 100644
--- a/tests/Integration/Momento.Sdk.Tests/Cache/Data/SetTest.cs
+++ b/tests/Integration/Momento.Sdk.Tests/Cache/SetTest.cs
@@ -6,7 +6,7 @@
using Momento.Sdk.Tests;
using Xunit.Abstractions;
-namespace Momento.Sdk.Tests.Integration.Cache.Data;
+namespace Momento.Sdk.Tests.Integration.Cache;
[Collection("CacheClient")]
public class SetTest : TestBase
diff --git a/tests/Integration/Momento.Sdk.Tests/Cache/Data/TtlTest.cs b/tests/Integration/Momento.Sdk.Tests/Cache/TtlTest.cs
similarity index 99%
rename from tests/Integration/Momento.Sdk.Tests/Cache/Data/TtlTest.cs
rename to tests/Integration/Momento.Sdk.Tests/Cache/TtlTest.cs
index d0ca1a0c..b0cfc9ec 100644
--- a/tests/Integration/Momento.Sdk.Tests/Cache/Data/TtlTest.cs
+++ b/tests/Integration/Momento.Sdk.Tests/Cache/TtlTest.cs
@@ -4,7 +4,7 @@
using System.Threading.Tasks;
using Momento.Sdk.Internal.ExtensionMethods;
-namespace Momento.Sdk.Tests.Integration.Cache.Data;
+namespace Momento.Sdk.Tests.Integration.Cache;
[Collection("CacheClient")]
public class TtlTest : TestBase
diff --git a/tests/Integration/Momento.Sdk.Tests/Topics/Data/TopicTest.cs b/tests/Integration/Momento.Sdk.Tests/Topics/TopicTest.cs
similarity index 99%
rename from tests/Integration/Momento.Sdk.Tests/Topics/Data/TopicTest.cs
rename to tests/Integration/Momento.Sdk.Tests/Topics/TopicTest.cs
index 6993ffaa..fe1bc0cf 100644
--- a/tests/Integration/Momento.Sdk.Tests/Topics/Data/TopicTest.cs
+++ b/tests/Integration/Momento.Sdk.Tests/Topics/TopicTest.cs
@@ -5,7 +5,7 @@
using System.Threading;
using System.Threading.Tasks;
-namespace Momento.Sdk.Tests.Integration.Topics.Data;
+namespace Momento.Sdk.Tests.Integration.Topics;
public class TopicTest : IClassFixture, IClassFixture
{