From 23145f45e16e7e144e5d58841f0ba7c119eae643 Mon Sep 17 00:00:00 2001 From: Alan Rynne Date: Mon, 9 Jan 2023 20:48:47 +0100 Subject: [PATCH 1/4] ci: Updated github actions to use new actions repo --- .github/workflows/close-issue.yml | 74 ++----------------------------- .github/workflows/open-issue.yml | 46 ++----------------- 2 files changed, 8 insertions(+), 112 deletions(-) diff --git a/.github/workflows/close-issue.yml b/.github/workflows/close-issue.yml index 094d6df..30e1ebc 100644 --- a/.github/workflows/close-issue.yml +++ b/.github/workflows/close-issue.yml @@ -6,73 +6,7 @@ on: jobs: update_issue: - runs-on: ubuntu-latest - steps: - - name: Get project data - env: - GITHUB_TOKEN: ${{secrets.GHPROJECT_TOKEN}} - ORGANIZATION: specklesystems - PROJECT_NUMBER: 9 - run: | - gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query=' - query($org: String!, $number: Int!) { - organization(login: $org){ - projectNext(number: $number) { - id - fields(first:20) { - nodes { - id - name - settings - } - } - } - } - }' -f org=$ORGANIZATION -F number=$PROJECT_NUMBER > project_data.json - - echo 'PROJECT_ID='$(jq '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV - echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV - - echo "$PROJECT_ID" - echo "$STATUS_FIELD_ID" - - echo 'DONE_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") | .settings | fromjson | .options[] | select(.name== "Done") | .id' project_data.json) >> $GITHUB_ENV - echo "$DONE_ID" - - - name: Add Issue to project #it's already in the project, but we do this to get its node id! - env: - GITHUB_TOKEN: ${{secrets.GHPROJECT_TOKEN}} - ISSUE_ID: ${{ github.event.issue.node_id }} - run: | - item_id="$( gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query=' - mutation($project:ID!, $id:ID!) { - addProjectNextItem(input: {projectId: $project, contentId: $id}) { - projectNextItem { - id - } - } - }' -f project=$PROJECT_ID -f id=$ISSUE_ID --jq '.data.addProjectNextItem.projectNextItem.id')" - - echo 'ITEM_ID='$item_id >> $GITHUB_ENV - - - name: Update Status - env: - GITHUB_TOKEN: ${{secrets.GHPROJECT_TOKEN}} - ISSUE_ID: ${{ github.event.issue.node_id }} - run: | - gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query=' - mutation($project:ID!, $status:ID!, $id:ID!, $value:String!) { - set_status: updateProjectNextItemField( - input: { - projectId: $project - itemId: $id - fieldId: $status - value: $value - } - ) { - projectNextItem { - id - } - } - }' -f project=$PROJECT_ID -f status=$STATUS_FIELD_ID -f id=$ITEM_ID -f value=${{ env.DONE_ID }} - + uses: specklesystems/github-actions/.github/workflows/project-add-issue.yml@main + secrets: inherit + with: + issue-id: ${{ github.event.issue.node_id }} \ No newline at end of file diff --git a/.github/workflows/open-issue.yml b/.github/workflows/open-issue.yml index 831d2b0..27fe2b8 100644 --- a/.github/workflows/open-issue.yml +++ b/.github/workflows/open-issue.yml @@ -6,45 +6,7 @@ on: jobs: track_issue: - runs-on: ubuntu-latest - steps: - - name: Get project data - env: - GITHUB_TOKEN: ${{secrets.GHPROJECT_TOKEN}} - ORGANIZATION: specklesystems - PROJECT_NUMBER: 9 - run: | - gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query=' - query($org: String!, $number: Int!) { - organization(login: $org){ - projectNext(number: $number) { - id - fields(first:20) { - nodes { - id - name - settings - } - } - } - } - }' -f org=$ORGANIZATION -F number=$PROJECT_NUMBER > project_data.json - - echo 'PROJECT_ID='$(jq '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV - echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV - - - name: Add Issue to project - env: - GITHUB_TOKEN: ${{secrets.GHPROJECT_TOKEN}} - ISSUE_ID: ${{ github.event.issue.node_id }} - run: | - item_id="$( gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query=' - mutation($project:ID!, $id:ID!) { - addProjectNextItem(input: {projectId: $project, contentId: $id}) { - projectNextItem { - id - } - } - }' -f project=$PROJECT_ID -f id=$ISSUE_ID --jq '.data.addProjectNextItem.projectNextItem.id')" - - echo 'ITEM_ID='$item_id >> $GITHUB_ENV + uses: specklesystems/github-actions/.github/workflows/project-add-issue.yml@main + secrets: inherit + with: + issue-id: ${{ github.event.issue.node_id }} \ No newline at end of file From db2b8312780d7b79784f2c6dc6c0962c0b040f0f Mon Sep 17 00:00:00 2001 From: Matteo Cominetti Date: Wed, 15 Feb 2023 12:47:19 +0000 Subject: [PATCH 2/4] Delete .github/workflows directory --- .github/workflows/close-issue.yml | 12 ------------ .github/workflows/open-issue.yml | 12 ------------ 2 files changed, 24 deletions(-) delete mode 100644 .github/workflows/close-issue.yml delete mode 100644 .github/workflows/open-issue.yml diff --git a/.github/workflows/close-issue.yml b/.github/workflows/close-issue.yml deleted file mode 100644 index 30e1ebc..0000000 --- a/.github/workflows/close-issue.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: Update issue Status - -on: - issues: - types: [closed] - -jobs: - update_issue: - uses: specklesystems/github-actions/.github/workflows/project-add-issue.yml@main - secrets: inherit - with: - issue-id: ${{ github.event.issue.node_id }} \ No newline at end of file diff --git a/.github/workflows/open-issue.yml b/.github/workflows/open-issue.yml deleted file mode 100644 index 27fe2b8..0000000 --- a/.github/workflows/open-issue.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: Move new issues into Project - -on: - issues: - types: [opened] - -jobs: - track_issue: - uses: specklesystems/github-actions/.github/workflows/project-add-issue.yml@main - secrets: inherit - with: - issue-id: ${{ github.event.issue.node_id }} \ No newline at end of file From 2aaaf6572c0600e327347b811b712b53af8e711e Mon Sep 17 00:00:00 2001 From: Jedd Morgan <45512892+JR-Morgan@users.noreply.github.com> Date: Sat, 22 Apr 2023 00:14:40 +0100 Subject: [PATCH 3/4] Final polish --- .editorconfig | 210 ++++++++++++++++++ .../Editor/Components/StreamManagerEditor.cs | 4 +- .../Runtime/Components/SpeckleReceiver.cs | 2 +- .../Runtime/Utils/ObjectExtensions.cs | 2 + .../Runtime/Utils/Utils.cs | 4 +- .../package.json | 4 +- ProjectSettings/ProjectSettings.asset | 2 +- 7 files changed, 219 insertions(+), 9 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..2505756 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,210 @@ +root = true +# Don't use tabs for indentation. +[*] +indent_style = space + +# Microsoft .NET properties +csharp_using_directive_placement = outside_namespace:silent + +dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary:none +dotnet_style_parentheses_in_other_binary_operators = never_if_unnecessary:none +dotnet_style_parentheses_in_relational_binary_operators = never_if_unnecessary:none + +# ReSharper properties +resharper_align_linq_query = false +resharper_align_multiline_calls_chain = true +resharper_align_multiline_extends_list = true +resharper_align_multiline_for_stmt = true +resharper_align_multiline_parameter = true +resharper_align_multiple_declaration = true +resharper_align_multline_type_parameter_constrains = true +resharper_align_multline_type_parameter_list = true +resharper_braces_for_dowhile = not_required +resharper_braces_for_fixed = not_required +resharper_braces_for_lock = not_required +resharper_braces_for_using = not_required +resharper_csharp_align_multiline_calls_chain = false +resharper_csharp_align_multiline_extends_list = false +resharper_csharp_align_multiline_parameter = false +resharper_csharp_int_align_comments = false +resharper_csharp_outdent_commas = true +resharper_csharp_outdent_dots = false +resharper_csharp_wrap_after_declaration_lpar = true +resharper_csharp_wrap_after_invocation_lpar = true +resharper_csharp_wrap_arguments_style = chop_if_long +resharper_csharp_wrap_before_declaration_rpar = true +resharper_csharp_wrap_before_invocation_rpar = false +resharper_csharp_wrap_extends_list_style = chop_if_long +resharper_csharp_wrap_parameters_style = chop_if_long +resharper_force_attribute_style = join +resharper_indent_nested_fixed_stmt = false +resharper_indent_nested_foreach_stmt = true +resharper_indent_nested_for_stmt = true +resharper_indent_nested_lock_stmt = false +resharper_indent_nested_usings_stmt = false +resharper_indent_nested_while_stmt = true +resharper_int_align = false +resharper_int_align_nested_ternary = false +resharper_int_align_switch_expressions = false +resharper_keep_existing_declaration_block_arrangement = true +resharper_keep_existing_declaration_parens_arrangement = false +resharper_keep_existing_embedded_block_arrangement = true +resharper_keep_existing_enum_arrangement = true +resharper_keep_existing_expr_member_arrangement = true +resharper_keep_existing_initializer_arrangement = false +resharper_local_function_body = expression_body +resharper_max_attribute_length_for_same_line = 20 +resharper_max_formal_parameters_on_line = 5 +resharper_max_initializer_elements_on_line = 0 +resharper_max_invocation_arguments_on_line = 5 +resharper_outdent_binary_ops = true +resharper_outdent_dots = false +resharper_place_constructor_initializer_on_same_line = false +resharper_place_simple_initializer_on_single_line = true +resharper_prefer_explicit_discard_declaration = false +resharper_wrap_after_declaration_lpar = false +resharper_wrap_before_invocation_rpar = false +resharper_wrap_chained_binary_expressions = chop_if_long +resharper_wrap_chained_binary_patterns = chop_if_long +resharper_wrap_chained_method_calls = chop_if_long +resharper_xmldoc_indent_text = ZeroIndent + +# Standard properties +insert_final_newline = true + +# (Please don't specify an indent_size here; that has too many unintended consequences.) + +# Code files +[*.{cs,csx,vb,vbx}] +indent_size = 4 +charset = utf-8 + +# Xml project files +[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}] +indent_size = 2 +space_after_last_pi_attribute = false +# Xml config files +[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}] +indent_size = 2 +space_after_last_pi_attribute = false + +# JSON files +[*.json] +indent_size = 2 + +# Dotnet code style settings: +[*.{cs,vb}] +# Sort using and Import directives with System.* appearing first +dotnet_sort_system_directives_first = true +dotnet_separate_import_directive_groups = false + +# Avoid "this." and "Me." if not necessary +dotnet_style_qualification_for_field = false:suggestion +dotnet_style_qualification_for_property = false:suggestion +dotnet_style_qualification_for_method = false:suggestion +dotnet_style_qualification_for_event = false:suggestion + +# Use language keywords instead of framework type names for type references +dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion +dotnet_style_predefined_type_for_member_access = true:suggestion + +# Parentheses preferences +dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary:silent +dotnet_style_parentheses_in_relational_binary_operators = never_if_unnecessary:silent +dotnet_style_parentheses_in_other_binary_operators = never_if_unnecessary:silent +dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent + +# Modifier preferences +dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent +dotnet_style_readonly_field = true:suggestion + +# Expression-level preferences +dotnet_style_object_initializer = true:suggestion +dotnet_style_collection_initializer = true:suggestion +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_null_propagation = true:suggestion +dotnet_style_explicit_tuple_names = true:suggestion +dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent +dotnet_style_prefer_inferred_tuple_names = true:suggestion +dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion +dotnet_style_prefer_auto_properties = true:warning +dotnet_style_prefer_conditional_expression_over_assignment = true:silent +dotnet_style_prefer_conditional_expression_over_return = true:silent + + +# CSharp code style settings: +[*.cs] +# Prefer "var" everywhere +csharp_style_var_elsewhere = false:none +csharp_style_var_for_built_in_types = false:none +csharp_style_var_when_type_is_apparent = false:none + +# Prefer method-like constructs to have a block body +csharp_style_expression_bodied_methods = false:suggestion +csharp_style_expression_bodied_constructors = false:suggestion +csharp_style_expression_bodied_operators = true:suggestion + +# Prefer property-like constructs to have an expression-body +csharp_style_expression_bodied_properties = true:suggestion +csharp_style_expression_bodied_indexers = true:suggestion +csharp_style_expression_bodied_accessors = true:suggestion + +# Suggest more modern language features when available +csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion +csharp_style_pattern_matching_over_as_with_null_check = true:suggestion +csharp_style_inlined_variable_declaration = true:suggestion +csharp_style_throw_expression = true:suggestion +csharp_style_conditional_delegate_call = true:suggestion + +# Newline settings +csharp_new_line_before_open_brace = all +csharp_new_line_before_else = true +csharp_new_line_before_catch = true +csharp_new_line_before_finally = true +csharp_new_line_before_members_in_object_initializers = true +csharp_new_line_before_members_in_anonymous_types = true + +# Space preferences +csharp_space_after_cast = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_between_method_call_parameter_list_parentheses = false +csharp_space_between_method_declaration_parameter_list_parentheses = false +csharp_space_between_parentheses = false +csharp_space_before_colon_in_inheritance_clause = true +csharp_space_after_colon_in_inheritance_clause = true +csharp_space_around_binary_operators = before_and_after +csharp_space_between_method_declaration_empty_parameter_list_parentheses = false +csharp_space_between_method_call_name_and_opening_parenthesis = false +csharp_space_between_method_call_empty_parameter_list_parentheses = false + +# Wrapping preferences +csharp_preserve_single_line_statements = true +csharp_preserve_single_line_blocks = true + +# Analyzer settings +dotnet_diagnostic.ide0055.severity = none + +# Maintainability rules +dotnet_diagnostic.ca1501.severity = warning +dotnet_diagnostic.ca1502.severity = warning +dotnet_diagnostic.ca1505.severity = warning +dotnet_diagnostic.ca1506.severity = warning +dotnet_diagnostic.ca1507.severity = warning +dotnet_diagnostic.ca1508.severity = warning +dotnet_diagnostic.ca1509.severity = warning + +# Misc +dotnet_diagnostic.ca1051.severity = none # Do not declare visible instance fields +dotnet_diagnostic.ca1062.severity = none # Public method must check all parameters for null +dotnet_diagnostic.ca1707.severity = none # Remove underscores in names + + +dotnet_analyzer_diagnostic.category-globalization.severity = none +dotnet_analyzer_diagnostic.category-security.severity = none +dotnet_analyzer_diagnostic.category-interoperability.severity = none +dotnet_analyzer_diagnostic.category-singlefile.severity = none + +[*.{appxmanifest,asax,ascx,aspx,axaml,build,c,c++,cc,cginc,compute,cp,cpp,cs,cshtml,cu,cuh,cxx,dtd,fs,fsi,fsscript,fsx,fx,fxh,h,hh,hlsl,hlsli,hlslinc,hpp,hxx,inc,inl,ino,ipp,ixx,master,ml,mli,mpp,mq4,mq5,mqh,nuspec,paml,razor,resw,resx,shader,skin,tpp,usf,ush,vb,xaml,xamlx,xoml,xsd}] +indent_style = space +indent_size = 4 +tab_width = 2 diff --git a/Packages/systems.speckle.speckle-unity/Editor/Components/StreamManagerEditor.cs b/Packages/systems.speckle.speckle-unity/Editor/Components/StreamManagerEditor.cs index c070163..3adffa0 100644 --- a/Packages/systems.speckle.speckle-unity/Editor/Components/StreamManagerEditor.cs +++ b/Packages/systems.speckle.speckle-unity/Editor/Components/StreamManagerEditor.cs @@ -26,7 +26,7 @@ namespace Speckle.ConnectorUnity.Components.Editor private static bool generateAssets; public int StreamsLimit { get; set; } = 30; - public int BranchesLimit { get; set; } = 30; + public int BranchesLimit { get; set; } = 75; public int CommitsLimit { get; set; } = 25; private int SelectedAccountIndex @@ -364,4 +364,4 @@ namespace Speckle.ConnectorUnity.Components.Editor } } } -} \ No newline at end of file +} diff --git a/Packages/systems.speckle.speckle-unity/Runtime/Components/SpeckleReceiver.cs b/Packages/systems.speckle.speckle-unity/Runtime/Components/SpeckleReceiver.cs index 4058f96..573e50d 100644 --- a/Packages/systems.speckle.speckle-unity/Runtime/Components/SpeckleReceiver.cs +++ b/Packages/systems.speckle.speckle-unity/Runtime/Components/SpeckleReceiver.cs @@ -147,7 +147,7 @@ namespace Speckle.ConnectorUnity.Components commitId = commitId, message = $"received commit from {Application.unityVersion}", sourceApplication = HostApplications.Unity.GetVersion(CoreUtils.GetHostAppVersion()) - }).ConfigureAwait(false);; + }).ConfigureAwait(false); } catch (Exception e) { diff --git a/Packages/systems.speckle.speckle-unity/Runtime/Utils/ObjectExtensions.cs b/Packages/systems.speckle.speckle-unity/Runtime/Utils/ObjectExtensions.cs index a9a4320..90f2ff9 100644 --- a/Packages/systems.speckle.speckle-unity/Runtime/Utils/ObjectExtensions.cs +++ b/Packages/systems.speckle.speckle-unity/Runtime/Utils/ObjectExtensions.cs @@ -15,6 +15,7 @@ namespace Speckle.ConnectorUnity.Utils /// /// /// +#pragma warning disable CS0618 public static void SetDetachedPropertyChecked(this Base speckleObject, string propertyName, object? value) { if(speckleObject.GetInstanceMembersNames().Any(name => name == propertyName)) @@ -22,5 +23,6 @@ namespace Speckle.ConnectorUnity.Utils else speckleObject[$"@{propertyName}"] = value; } +#pragma warning restore CS0618 } } diff --git a/Packages/systems.speckle.speckle-unity/Runtime/Utils/Utils.cs b/Packages/systems.speckle.speckle-unity/Runtime/Utils/Utils.cs index d9f7d41..9027c7f 100644 --- a/Packages/systems.speckle.speckle-unity/Runtime/Utils/Utils.cs +++ b/Packages/systems.speckle.speckle-unity/Runtime/Utils/Utils.cs @@ -1,7 +1,5 @@ using System; using System.Collections; -using System.Threading; -using System.Threading.Tasks; using UnityEngine; using UnityEngine.Networking; @@ -96,4 +94,4 @@ namespace Speckle.ConnectorUnity.Utils callback.Invoke(texture); } } -} \ No newline at end of file +} diff --git a/Packages/systems.speckle.speckle-unity/package.json b/Packages/systems.speckle.speckle-unity/package.json index a868f98..1aa2be8 100644 --- a/Packages/systems.speckle.speckle-unity/package.json +++ b/Packages/systems.speckle.speckle-unity/package.json @@ -1,11 +1,11 @@ { "name": "systems.speckle.speckle-unity", - "version": "2.10.0", + "version": "2.13.0", "displayName": "Speckle Unity Connector", "description": "AEC Interoperability for Unity through Speckle", "unity": "2018.4", "documentationUrl": "https://speckle.guide/user/unity.html", - "changelogUrl": "https://speckle.notion.site/Public-Changelog-45cb90c7514642ffab2e72d0288e4071", + "changelogUrl": "https://speckle.systems/blog/", "license": "Apache-2.0", "licensesUrl": "https://github.com/specklesystems/speckle-unity/blob/main/LICENSE", "keywords": [ diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 59993c3..82b1eff 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -853,7 +853,7 @@ PlayerSettings: allowUnsafeCode: 0 useDeterministicCompilation: 1 enableRoslynAnalyzers: 1 - selectedPlatform: 3 + selectedPlatform: 2 additionalIl2CppArgs: scriptingRuntimeVersion: 1 gcIncremental: 1 From 32533ddb21e65368835ee2e1b9e5bbf88ca6e805 Mon Sep 17 00:00:00 2001 From: Jedd Morgan <45512892+JR-Morgan@users.noreply.github.com> Date: Sat, 22 Apr 2023 01:20:08 +0100 Subject: [PATCH 4/4] Added IsMultiplayer --- .../Editor/Components/StreamManagerEditor.cs | 14 +++++++++++--- .../Runtime/Components/Deprecated/Receiver.cs | 19 ++++++++++++++----- .../Runtime/Components/SpeckleReceiver.cs | 18 +++++++++++++----- .../Runtime/Components/SpeckleSender.cs | 6 +++++- 4 files changed, 43 insertions(+), 14 deletions(-) diff --git a/Packages/systems.speckle.speckle-unity/Editor/Components/StreamManagerEditor.cs b/Packages/systems.speckle.speckle-unity/Editor/Components/StreamManagerEditor.cs index 3adffa0..9040c53 100644 --- a/Packages/systems.speckle.speckle-unity/Editor/Components/StreamManagerEditor.cs +++ b/Packages/systems.speckle.speckle-unity/Editor/Components/StreamManagerEditor.cs @@ -163,9 +163,10 @@ namespace Speckle.ConnectorUnity.Components.Editor try { + Commit selectedCommit = Branches[SelectedBranchIndex].commits.items[SelectedCommitIndex]; // Receive Speckle Objects var @base = await Operations.Receive( - Branches[SelectedBranchIndex].commits.items[SelectedCommitIndex].referencedObject, + selectedCommit.referencedObject, remoteTransport: transport, onProgressAction: dict => { @@ -179,8 +180,15 @@ namespace Speckle.ConnectorUnity.Components.Editor ); EditorUtility.ClearProgressBar(); - - Analytics.TrackEvent(SelectedAccount, Analytics.Events.Receive); + + Analytics.TrackEvent(SelectedAccount, Analytics.Events.Receive, new Dictionary() + { + {"mode", nameof(StreamManagerEditor)}, + {"sourceHostApp", HostApplications.GetHostAppFromString(selectedCommit.sourceApplication).Slug}, + {"sourceHostAppVersion", selectedCommit.sourceApplication ?? ""}, + {"hostPlatform", Application.platform.ToString()}, + {"isMultiplayer", selectedCommit.authorId != SelectedAccount.userInfo.id}, + }); //Convert Speckle Objects int childrenConverted = 0; diff --git a/Packages/systems.speckle.speckle-unity/Runtime/Components/Deprecated/Receiver.cs b/Packages/systems.speckle.speckle-unity/Runtime/Components/Deprecated/Receiver.cs index f9fbbf6..708c036 100644 --- a/Packages/systems.speckle.speckle-unity/Runtime/Components/Deprecated/Receiver.cs +++ b/Packages/systems.speckle.speckle-unity/Runtime/Components/Deprecated/Receiver.cs @@ -5,8 +5,10 @@ using Speckle.Core.Logging; using Speckle.Core.Transports; using System; using System.Collections.Concurrent; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using JetBrains.Annotations; using Sentry; using Speckle.ConnectorUnity.Components; using Speckle.Core.Kits; @@ -93,7 +95,7 @@ namespace Speckle.ConnectorUnity if (!mainBranch.commits.items.Any()) throw new Exception("This branch has no commits"); var commit = mainBranch.commits.items[0]; - GetAndConvertObject(commit.referencedObject, commit.id); + GetAndConvertObject(commit.referencedObject, commit.id, commit.sourceApplication, commit.authorId); } catch (Exception e) { @@ -116,12 +118,12 @@ namespace Speckle.ConnectorUnity if (e.branchName == BranchName) { Debug.Log("New commit created"); - GetAndConvertObject(e.objectId, e.id); + GetAndConvertObject(e.objectId, e.id, e.sourceApplication, e.authorId); } } - private async void GetAndConvertObject(string objectId, string commitId) + private async void GetAndConvertObject(string objectId, string commitId, string sourceApplication, string authorId) { try { @@ -136,7 +138,14 @@ namespace Speckle.ConnectorUnity disposeTransports: true ); - Analytics.TrackEvent(Client.Account, Analytics.Events.Receive); + Analytics.TrackEvent(Client.Account, Analytics.Events.Receive, new Dictionary() + { + {"mode", nameof(Receiver)}, + {"sourceHostApp", HostApplications.GetHostAppFromString(sourceApplication).Slug}, + {"sourceHostAppVersion", sourceApplication ?? ""}, + {"hostPlatform", Application.platform.ToString()}, + {"isMultiplayer", authorId != null && authorId != Client.Account.userInfo.id}, + }); Dispatcher.Instance().Enqueue(() => { @@ -186,4 +195,4 @@ namespace Speckle.ConnectorUnity #endregion } -} \ No newline at end of file +} diff --git a/Packages/systems.speckle.speckle-unity/Runtime/Components/SpeckleReceiver.cs b/Packages/systems.speckle.speckle-unity/Runtime/Components/SpeckleReceiver.cs index 573e50d..2fc51f9 100644 --- a/Packages/systems.speckle.speckle-unity/Runtime/Components/SpeckleReceiver.cs +++ b/Packages/systems.speckle.speckle-unity/Runtime/Components/SpeckleReceiver.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Concurrent; +using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; using System.Threading; @@ -86,7 +87,7 @@ namespace Speckle.ConnectorUnity.Components client: client, streamId: stream.id, objectId: commit.referencedObject, - commitId: commit.id, + commit: commit, onProgressAction: dict => OnReceiveProgressAction.Invoke(dict), onErrorAction: (m, e) => OnErrorAction.Invoke(m, e), onTotalChildrenCountKnown: c => OnTotalChildrenCountKnown.Invoke(c) @@ -100,7 +101,7 @@ namespace Speckle.ConnectorUnity.Components /// /// /// - /// + /// /// /// /// @@ -109,7 +110,7 @@ namespace Speckle.ConnectorUnity.Components Client client, string streamId, string objectId, - string? commitId, + Commit? commit, Action>? onProgressAction = null, Action? onErrorAction = null, Action? onTotalChildrenCountKnown = null) @@ -134,7 +135,14 @@ namespace Speckle.ConnectorUnity.Components disposeTransports: false ).ConfigureAwait(false); - Analytics.TrackEvent(client.Account, Analytics.Events.Receive); + Analytics.TrackEvent(client.Account, Analytics.Events.Receive, new Dictionary() + { + {"mode", nameof(SpeckleReceiver)}, + {"sourceHostApp", HostApplications.GetHostAppFromString(commit?.sourceApplication).Slug}, + {"sourceHostAppVersion", commit?.sourceApplication ?? ""}, + {"hostPlatform", Application.platform.ToString()}, + {"isMultiplayer", commit != null && commit.authorId != client.Account.userInfo.id}, + }); token.ThrowIfCancellationRequested(); @@ -144,7 +152,7 @@ namespace Speckle.ConnectorUnity.Components await client.CommitReceived(token, new CommitReceivedInput { streamId = streamId, - commitId = commitId, + commitId = commit?.id, message = $"received commit from {Application.unityVersion}", sourceApplication = HostApplications.Unity.GetVersion(CoreUtils.GetHostAppVersion()) }).ConfigureAwait(false); diff --git a/Packages/systems.speckle.speckle-unity/Runtime/Components/SpeckleSender.cs b/Packages/systems.speckle.speckle-unity/Runtime/Components/SpeckleSender.cs index 43867ae..18b4be2 100644 --- a/Packages/systems.speckle.speckle-unity/Runtime/Components/SpeckleSender.cs +++ b/Packages/systems.speckle.speckle-unity/Runtime/Components/SpeckleSender.cs @@ -84,7 +84,11 @@ namespace Speckle.ConnectorUnity.Components onErrorAction: onErrorAction ); - Analytics.TrackEvent(client.Account, Analytics.Events.Send); + Analytics.TrackEvent(client.Account, Analytics.Events.Send, new Dictionary() + { + {"mode", nameof(SpeckleSender)}, + {"hostPlatform", Application.platform.ToString()}, + }); if (createCommit && !cancellationToken.IsCancellationRequested) {