0.3.0: sync Rudder.Core 0.3.0, prod default URLs, drop editor artifacts, CI publish
CI / check (push) Successful in 6s
CI / publish (push) Failing after 11s

This commit is contained in:
edmand46
2026-08-19 17:49:00 +03:00
parent e18c561bf9
commit 695a7210b1
19 changed files with 67 additions and 3405 deletions
+42
View File
@@ -0,0 +1,42 @@
name: CI
on:
push:
branches: [main, master]
tags: ['v*']
pull_request:
jobs:
check:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Validate package.json
run: node -e "JSON.parse(require('fs').readFileSync('Packages/rudder.sdk/package.json', 'utf8'))"
- name: Verify bundled Rudder.Core.dll
run: test -f Packages/rudder.sdk/Runtime/Plugins/Rudder.Core.dll
publish:
if: startsWith(github.ref, 'refs/tags/v')
needs: check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Configure registry auth
run: echo "//hub.rudder.build/api/packages/rudder/npm/:_authToken=${{ secrets.GITEA_TOKEN }}" > Packages/rudder.sdk/.npmrc
- name: Pack
run: make pack
- name: Publish
run: make publish
+4
View File
@@ -4,6 +4,10 @@
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Uu]ser[Ss]ettings/
# Burst compiler artifacts
/Data/Plugins/lib_burst_generated.*
# Visual Studio / Rider
.vs/
-10
View File
@@ -1,10 +0,0 @@
extern "C"
{
void Staticburst_initialize(void* );
void* StaticBurstStaticMethodLookup(void* );
int burst_enable_static_linkage = 1;
void burst_initialize(void* i) { Staticburst_initialize(i); }
void* BurstStaticMethodLookup(void* i) { return StaticBurstStaticMethodLookup(i); }
}
Binary file not shown.
+15
View File
@@ -1,5 +1,20 @@
# Changelog
## 0.3.0
Breaking changes, following the Rudder.Core 0.3.0 rework:
- Bundled `Rudder.Core.dll` updated to 0.3.0: the UGC surface is gone
(`client.Ugc`, `IUploadTransport`, `RudderClientOptions.UploadTransport`),
`BattlePassService` methods now take scenario context, `BattlePassSession`
exposes bound battle pass operations, and `BattlePassLevelSession.Complete`
was renamed to `Claim`.
- `UnityUploadTransport` removed together with the core `IUploadTransport`
abstraction; the factory no longer wires an upload transport.
- `RudderConfiguration` defaults now point at production
(`https://api.rudder.build`); `RealtimeUrl` follows the prod `wss://`
pattern but the relay is not deployed yet.
## 0.2.0
Breaking changes, following the Rudder.Core 0.2.0 rework:
+2 -2
View File
@@ -21,7 +21,7 @@ your project's `Packages/manifest.json`:
}
],
"dependencies": {
"rudder.sdk": "0.2.0",
"rudder.sdk": "0.3.0",
"com.unity.nuget.newtonsoft-json": "3.2.2"
}
}
@@ -49,7 +49,7 @@ var stores = await client.Stores.ListAsync();
All features hang off the client: `Auth`, `Player`, `BattlePass`, `Quests`,
`Stores`, `Inventory`, `Leaderboards`, `RemoteConfig`, `Scenario`, `Storage`,
`Ugc`, `Realtime`.
`Realtime`.
```csharp
client.Scenario.OnStoreOffer += session => { /* show offer UI */ };
Binary file not shown.
@@ -15,7 +15,6 @@ namespace RudderSdk.Unity
ProjectKey = options.ProjectKey,
Logger = new UnityLoggerAdapter(options.LoggerSink ?? new UnityDebugLoggerSink()),
Transport = new UnityTransportAdapter(options.BaseUrl, executor),
UploadTransport = new UnityUploadTransport(options.TimeoutSeconds),
TokenStore = new UnityTokenStoreAdapter(options.KeyValueStore),
DeviceIdProvider = new UnityDeviceIdProvider(),
Clock = new UnityClock(),
@@ -1,57 +0,0 @@
using System.Threading;
using System.Threading.Tasks;
using RudderSdk.Core;
using RudderSdk.Core.Abstractions;
using UnityEngine.Networking;
namespace RudderSdk.Unity
{
internal sealed class UnityUploadTransport : IUploadTransport
{
private const int DefaultTimeoutSeconds = 10;
private readonly int _timeoutSeconds;
public UnityUploadTransport(int timeoutSeconds = DefaultTimeoutSeconds)
{
_timeoutSeconds = timeoutSeconds > 0 ? timeoutSeconds : DefaultTimeoutSeconds;
}
public async Task PutAsync(string url, byte[] data, string contentType, CancellationToken cancellationToken = default)
{
using (var request = UnityWebRequest.Put(url, data ?? System.Array.Empty<byte>()))
{
if (!string.IsNullOrEmpty(contentType))
request.SetRequestHeader("Content-Type", contentType);
request.timeout = _timeoutSeconds;
var operation = request.SendWebRequest();
var completion = new TaskCompletionSource<bool>(TaskCreationOptions.RunContinuationsAsynchronously);
operation.completed += _ => completion.TrySetResult(true);
using (cancellationToken.Register(() =>
{
request.Abort();
completion.TrySetCanceled(cancellationToken);
}))
{
await completion.Task.ConfigureAwait(false);
}
if (request.result == UnityWebRequest.Result.ConnectionError)
{
throw new RudderNetworkException(request.error);
}
if (request.result == UnityWebRequest.Result.ProtocolError)
{
throw new RudderApiException(
(int)request.responseCode,
string.Empty,
request.error + ": " + request.downloadHandler?.text);
}
}
}
}
}
@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 415e95ebea4594057990efb6707f3ebc
@@ -9,10 +9,10 @@ namespace RudderSdk.Unity
public string ProjectKey;
[Tooltip("API base URL, e.g. https://api.rudder.build.")]
public string BaseUrl = "http://localhost:8082";
public string BaseUrl = "https://api.rudder.build";
[Tooltip("Realtime websocket URL.")]
public string RealtimeUrl = "ws://localhost:8090/api/realtime/ws";
[Tooltip("Realtime websocket URL. The relay is not deployed yet; set this only once it is.")]
public string RealtimeUrl = "wss://api.rudder.build/api/realtime/ws";
[Tooltip("HTTP request timeout in seconds.")]
[Min(1)]
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "rudder.sdk",
"version": "0.2.0",
"version": "0.3.0",
"displayName": "Rudder SDK",
"description": "LiveOps SDK for Unity — player auth, remote config, stores, inventory, leaderboards, scenarios, realtime.",
"unity": "6000.0",
-66
View File
@@ -1,66 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!162 &1
EditorUserSettings:
m_ObjectHideFlags: 0
serializedVersion: 4
m_ConfigSettings:
GraphicsSettingsInspector_UserSettings:
value: 18134705175a055722080a3115371d4a0d55006876786860616b0471b8b16068acb16fb0be6f6e6d6e53b76b51234d7de203190efa02040e371bf10225e600163fc415c058925d3ede1010da8034dfa1c8
flags: 0
QuickInstaller_com.unity.purchasing_installRecorded:
value: 2550581500
flags: 0
QuickInstaller_com.unity.services.levelplay_installRecorded:
value: 2550581500
flags: 0
RecentlyUsedSceneGuid-0:
value: 53020d535d070f0d540b0f7547770e45414e4d28797e27632c714f35e6e3306a
flags: 0
RecentlyUsedSceneGuid-1:
value: 075501025d540a5d585f5e7214775d16154f1a7c2d702569282d1c61b2b9603c
flags: 0
RecentlyUsedSceneGuid-2:
value: 5101075e03530b0b0f0a552646750d44124f1a287c7c7f347b7b4c31b0b16339
flags: 0
RecentlyUsedSceneGuid-3:
value: 06095050510308035e595a7142775b45154e1e2874717f3375794e32b3b23568
flags: 0
RecentlyUsedSceneGuid-4:
value: 5354060003000a0f0c58097a41770f47414e497f7d717f347e714e64b3e2356c
flags: 0
RecentlyUsedSceneGuid-5:
value: 5108010051515e085e575f7347775d484e4e407c747b706474714835b5e6316a
flags: 0
RecentlyUsedSceneGuid-6:
value: 0605555f52065a0f08080a2042735b44464f4979782a246128704a66b0e33669
flags: 0
RecentlyUsedSceneGuid-7:
value: 0509555700565959580c0876487706124f151a2f2e7a7761297c1c65e1e23261
flags: 0
RecentlyUsedSceneGuid-8:
value: 5a500c0452565f5f580b582443220d124714482e752d7e367a284b31b7e3603c
flags: 0
RecentlyUsedSceneGuid-9:
value: 00090d5f5d545f0d095a5d7311775a48124e1d2c797c24662b7b4b62e6b36668
flags: 0
vcSharedLogLevel:
value: 0d5e400f0650
flags: 0
m_VCAutomaticAdd: 1
m_VCDebugCom: 0
m_VCDebugCmd: 0
m_VCDebugOut: 0
m_SemanticMergeMode: 2
m_DesiredImportWorkerCount: 4
m_StandbyImportWorkerCount: 2
m_IdleImportWorkerShutdownDelay: 60000
m_VCShowFailedCheckout: 1
m_VCOverwriteFailedCheckoutAssets: 1
m_VCProjectOverlayIcons: 1
m_VCHierarchyOverlayIcons: 1
m_VCOtherOverlayIcons: 1
m_VCAllowAsyncUpdate: 1
m_VCScanLocalPackagesOnConnect: 1
m_ArtifactGarbageCollection: 1
m_CompressAssetsOnImport: 1
-51
View File
@@ -1,51 +0,0 @@
{
"ValidContent": 8,
"ViewModelState": [],
"SearchText": "",
"Columns": [
{
"ColumnId": "Visibility",
"Visible": true,
"Width": 20.0,
"Index": 0
},
{
"ColumnId": "Picking",
"Visible": true,
"Width": 20.0,
"Index": 1
},
{
"ColumnId": "HierarchyViewColumn Name",
"Visible": true,
"Width": 634.5,
"Index": 2
},
{
"ColumnId": "GameObject/Active",
"Visible": false,
"Width": 50.0,
"Index": 3
},
{
"ColumnId": "GameObject/Static",
"Visible": false,
"Width": 75.0,
"Index": 4
},
{
"ColumnId": "GameObject/Layer",
"Visible": false,
"Width": 150.0,
"Index": 5
},
{
"ColumnId": "GameObject/Tag",
"Visible": false,
"Width": 100.0,
"Index": 6
}
],
"ScrollPositionX": -1.0,
"ScrollPositionY": -1.0
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,5 +0,0 @@
{
"m_Dictionary": {
"m_DictionaryValues": []
}
}
-13
View File
@@ -1,13 +0,0 @@
{
"name": "Assets",
"roots": ["Assets"],
"includes": [],
"excludes": [],
"options": {
"types": true,
"properties": true,
"extended": false,
"dependencies": false
},
"baseScore": 999
}
-90
View File
@@ -1,90 +0,0 @@
trackSelection = true
refreshSearchWindowsInPlayMode = false
pickerAdvancedUI = false
fetchPreview = true
defaultFlags = 0
keepOpen = false
queryFolder = "Assets"
onBoardingDoNotAskAgain = true
showPackageIndexes = false
showStatusBar = false
scopes = {
}
providers = {
adb = {
active = false
priority = 2500
defaultAction = null
}
find = {
active = true
priority = 25
defaultAction = null
}
store = {
active = true
priority = 100
defaultAction = null
}
packages = {
active = true
priority = 90
defaultAction = null
}
log = {
active = false
priority = 210
defaultAction = null
}
asset = {
active = true
priority = 25
defaultAction = null
}
profilermarkers = {
active = false
priority = 100
defaultAction = null
}
performance = {
active = false
priority = 100
defaultAction = null
}
scene = {
active = true
priority = 50
defaultAction = null
}
presets_provider = {
active = false
priority = -10
defaultAction = null
}
lightmaps = {
active = true
priority = 100
defaultAction = null
}
}
objectSelectors = {
}
recentSearches = [
]
searchItemFavorites = [
]
savedSearchesSortOrder = 0
showSavedSearchPanel = false
hideTabs = false
indexOnEditorStartup = true
logIndexingPerformanceReport = false
expandedQueries = [
]
queryBuilder = false
ignoredProperties = "addedobjectfileids;classname;correspondingsourceobject;editorclassidentifier;editorhideflags;fileid;gameobject;id;imagecontentshash;isprefabvariant;name;objecthideflags;pathid;prefabasset;prefabinstance;script"
helperWidgetCurrentArea = "all"
disabledIndexers = ""
minIndexVariations = 2
findProviderIndexHelper = true
itemIconSize = 32
version = 1