From 44883b08ab2a169f3710f3ab3d2870adba985d10 Mon Sep 17 00:00:00 2001 From: Marcelo Oliveira Date: Sat, 16 Jun 2018 03:22:58 -0300 Subject: [PATCH 1/4] Can't compile without this define --- src/tests/IntegrationTests/Metrics/MetricsTests.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/tests/IntegrationTests/Metrics/MetricsTests.cs b/src/tests/IntegrationTests/Metrics/MetricsTests.cs index 3d7fa1bdb..6ec07cbe7 100644 --- a/src/tests/IntegrationTests/Metrics/MetricsTests.cs +++ b/src/tests/IntegrationTests/Metrics/MetricsTests.cs @@ -1,4 +1,6 @@ -using GitHub.Unity; +#if ENABLE_METRICS + +using GitHub.Unity; using NSubstitute; using NUnit.Framework; using System; @@ -119,3 +121,5 @@ public void SubmissionWorks() } } } + +#endif \ No newline at end of file From 268a5dd71e2b88d50182de6e06e3bd54425897a7 Mon Sep 17 00:00:00 2001 From: Marcelo Oliveira Date: Sat, 16 Jun 2018 03:23:43 -0300 Subject: [PATCH 2/4] Allow target framework command line parameter --- build.cmd | 9 +++++++-- build.sh | 7 ++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/build.cmd b/build.cmd index af6f8fab7..5b8fb648b 100644 --- a/build.cmd +++ b/build.cmd @@ -11,6 +11,11 @@ if not %2.==. ( set Target=%2 ) +set FrameworkVersion=v3.5 +if not %3.==. ( + set FrameworkVersion=%3 +) + if %Target%==Rebuild ( del /Q unity\PackageProject\Assets\Plugins\GitHub\Editor\*.dll del /Q unity\PackageProject\Assets\Plugins\GitHub\Editor\*.mdb @@ -25,8 +30,8 @@ if %Target%==Rebuild ( call common\nuget.exe restore GitHub.Unity.sln -echo xbuild GitHub.Unity.sln /verbosity:normal /property:Configuration=%Configuration% /target:%Target% -call xbuild GitHub.Unity.sln /verbosity:normal /property:Configuration=%Configuration% /target:%Target% +echo xbuild GitHub.Unity.sln /verbosity:normal /property:Configuration=%Configuration% /property:TargetFrameworkVersion=%FrameworkVersion% /target:%Target% +call xbuild GitHub.Unity.sln /verbosity:normal /property:Configuration=%Configuration% /property:TargetFrameworkVersion=%FrameworkVersion% /target:%Target% del /Q unity\PackageProject\Assets\Plugins\GitHub\Editor\deleteme* del /Q unity\PackageProject\Assets\Plugins\GitHub\Editor\deleteme* diff --git a/build.sh b/build.sh index 900c994f7..5ffd2ec36 100755 --- a/build.sh +++ b/build.sh @@ -9,6 +9,11 @@ if [ $# -gt 1 ]; then Target=$2 fi +FrameworkVersion="v3.5" +if [ $# -gt 2 ]; then + FrameworkVersion=$3 +fi + if [ x"$Target" == x"Rebuild" ]; then rm -f unity/PackageProject/Assets/Plugins/GitHub/Editor/*.dll rm -f unity/PackageProject/Assets/Plugins/GitHub/Editor/*.mdb @@ -32,7 +37,7 @@ else mono common/nuget.exe restore GitHub.Unity.sln fi -xbuild GitHub.Unity.sln /verbosity:minimal /property:Configuration=$Configuration /target:$Target || true +xbuild GitHub.Unity.sln /verbosity:minimal /property:Configuration=$Configuration /property:TargetFrameworkVersion=$FrameworkVersion /target:$Target || true rm -f unity/PackageProject/Assets/Plugins/GitHub/Editor/deleteme* rm -f unity/PackageProject/Assets/Plugins/GitHub/Editor/deleteme* From 36417820643149f28801fcf6d850805d30485764 Mon Sep 17 00:00:00 2001 From: Marcelo Oliveira Date: Sat, 16 Jun 2018 03:24:12 -0300 Subject: [PATCH 3/4] Compiles with both 3.5 and 4.5+ frameworks --- common/properties.props | 1 + src/GitHub.Api/GitHub.Api.csproj | 21 ++++--- src/GitHub.Api/Tasks/TaskEx.cs | 57 +++++++++++++++++++ .../Editor/GitHub.Unity/GitHub.Unity.csproj | 8 ++- .../IntegrationTests/IntegrationTests.csproj | 12 ++-- .../TaskSystem.csproj | 12 ++-- src/tests/TestUtils/TestUtils.csproj | 12 ++-- src/tests/UnitTests/UnitTests.csproj | 12 ++-- 8 files changed, 103 insertions(+), 32 deletions(-) create mode 100644 src/GitHub.Api/Tasks/TaskEx.cs diff --git a/common/properties.props b/common/properties.props index 977f217b3..1c1ae16cc 100644 --- a/common/properties.props +++ b/common/properties.props @@ -5,6 +5,7 @@ Internal ENABLE_METRICS $(BuildDefs);ENABLE_MONO + NET35 $(SolutionDir)script\lib\ $(SolutionDir)lib\ diff --git a/src/GitHub.Api/GitHub.Api.csproj b/src/GitHub.Api/GitHub.Api.csproj index 4b2137e88..9acdd351b 100644 --- a/src/GitHub.Api/GitHub.Api.csproj +++ b/src/GitHub.Api/GitHub.Api.csproj @@ -55,31 +55,33 @@ Debug - + $(SolutionDir)\packages\AsyncBridge.Net35.0.2.3333.0\lib\net35-Client\AsyncBridge.Net35.dll True + + $(SolutionDir)\lib\sfw\sfw.net.dll + True + + + $(SolutionDir).\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll + True + + + $(SolutionDir)lib\ICSharpCode.SharpZipLib.dll $(SolutionDir)lib\Mono.Posix.dll - - $(SolutionDir)packages\ReadOnlyCollectionInterfaces.1.0.0\lib\NET20\ReadOnlyCollectionsInterfaces.dll - True - $(SolutionDir)\lib\sfw\sfw.net.dll True - - $(SolutionDir).\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll - True - @@ -236,6 +238,7 @@ + diff --git a/src/GitHub.Api/Tasks/TaskEx.cs b/src/GitHub.Api/Tasks/TaskEx.cs new file mode 100644 index 000000000..0f20d175d --- /dev/null +++ b/src/GitHub.Api/Tasks/TaskEx.cs @@ -0,0 +1,57 @@ +#if !NET35 +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; + +namespace GitHub.Unity +{ + public static class TaskEx + { + public static Task FromResult(TResult result) + { + return Task.FromResult(result); + } + + public static Task WhenAny(System.Collections.Generic.IEnumerable tasks) + { + return Task.WhenAny(tasks); + } + + public static Task WhenAny(params Task[] tasks) + { + return Task.WhenAny(tasks); + } + + public static Task> WhenAny(IEnumerable> tasks) + { + return Task.WhenAny(tasks); + } + + public static Task> WhenAny(params Task[] tasks) + { + return Task.WhenAny(tasks); + } + + public static Task Delay(int millisecondsDelay) + { + return Task.Delay(millisecondsDelay); + } + + public static Task Delay(int millisecondsDelay, CancellationToken cancellationToken) + { + return Task.Delay(millisecondsDelay, cancellationToken); + } + + public static Task Delay(TimeSpan delay) + { + return Task.Delay(delay); + } + + public static Task Delay(TimeSpan delay, CancellationToken cancellationToken) + { + return Task.Delay(delay, cancellationToken); + } + } +} +#endif diff --git a/src/UnityExtension/Assets/Editor/GitHub.Unity/GitHub.Unity.csproj b/src/UnityExtension/Assets/Editor/GitHub.Unity/GitHub.Unity.csproj index 95b438d79..8f36e2e94 100644 --- a/src/UnityExtension/Assets/Editor/GitHub.Unity/GitHub.Unity.csproj +++ b/src/UnityExtension/Assets/Editor/GitHub.Unity/GitHub.Unity.csproj @@ -51,13 +51,15 @@ false true - - - + $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll True + + + + $(UnityDir)Managed\UnityEditor.dll False diff --git a/src/tests/IntegrationTests/IntegrationTests.csproj b/src/tests/IntegrationTests/IntegrationTests.csproj index 351a6d571..15daa1824 100644 --- a/src/tests/IntegrationTests/IntegrationTests.csproj +++ b/src/tests/IntegrationTests/IntegrationTests.csproj @@ -31,11 +31,17 @@ prompt 4 - + $(SolutionDir)\packages\AsyncBridge.Net35.0.2.3333.0\lib\net35-Client\AsyncBridge.Net35.dll True + + $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll + True + + + $(SolutionDir)packages\FluentAssertions.2.2.0.0\lib\net35\FluentAssertions.dll True @@ -58,10 +64,6 @@ - - $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll - True - diff --git a/src/tests/TaskSystemIntegrationTests/TaskSystem.csproj b/src/tests/TaskSystemIntegrationTests/TaskSystem.csproj index f81af7392..c98c427c3 100644 --- a/src/tests/TaskSystemIntegrationTests/TaskSystem.csproj +++ b/src/tests/TaskSystemIntegrationTests/TaskSystem.csproj @@ -33,11 +33,17 @@ 4 false - + $(SolutionDir)\packages\AsyncBridge.Net35.0.2.3333.0\lib\net35-Client\AsyncBridge.Net35.dll True + + $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll + True + + + ..\..\..\packages\FluentAssertions.2.2.0.0\lib\net35\FluentAssertions.dll True @@ -52,10 +58,6 @@ - - $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll - True - diff --git a/src/tests/TestUtils/TestUtils.csproj b/src/tests/TestUtils/TestUtils.csproj index 8ae36c41d..c40cdfd8c 100644 --- a/src/tests/TestUtils/TestUtils.csproj +++ b/src/tests/TestUtils/TestUtils.csproj @@ -29,11 +29,17 @@ prompt 4 - + ..\..\..\packages\AsyncBridge.Net35.0.2.3333.0\lib\net35-Client\AsyncBridge.Net35.dll True + + $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll + True + + + $(SolutionDir)packages\FluentAssertions.2.2.0.0\lib\net35\FluentAssertions.dll True @@ -48,10 +54,6 @@ - - $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll - True - diff --git a/src/tests/UnitTests/UnitTests.csproj b/src/tests/UnitTests/UnitTests.csproj index bff3c8d57..58fb02f15 100644 --- a/src/tests/UnitTests/UnitTests.csproj +++ b/src/tests/UnitTests/UnitTests.csproj @@ -37,11 +37,17 @@ - + $(SolutionDir)\packages\AsyncBridge.Net35.0.2.3333.0\lib\net35-Client\AsyncBridge.Net35.dll True + + $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll + True + + + $(SolutionDir)packages\FluentAssertions.2.2.0.0\lib\net35\FluentAssertions.dll True @@ -60,10 +66,6 @@ - - $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll - True - From e448d9fce5a68f76a35e7f4918f2c46ea6195d67 Mon Sep 17 00:00:00 2001 From: Marcelo Oliveira Date: Sat, 16 Jun 2018 03:24:38 -0300 Subject: [PATCH 4/4] Package cleanup unused files --- package.cmd | 12 ++++++-- package.sh | 29 +++++++++++++++++-- .../CopyLibrariesToPackageProject.csproj | 26 +++++++++-------- 3 files changed, 51 insertions(+), 16 deletions(-) diff --git a/package.cmd b/package.cmd index e25ddbd41..f3c6cb7ac 100644 --- a/package.cmd +++ b/package.cmd @@ -25,6 +25,11 @@ if %ChangeConfigurationToDebug%==1 ( set Configuration=Debug ) +set FrameworkVersion=v3.5 +if not %3.==. ( + set FrameworkVersion=%3 +) + set Unity=%UnityPath%\Editor\Unity.exe if not exist "%Unity%" ( echo Cannot find Unity at %Unity% @@ -39,8 +44,8 @@ if not exist "%Unity%" ( cd .. call common\nuget.exe restore GitHub.Unity.sln - echo xbuild GitHub.Unity.sln /property:Configuration=%Configuration% - call xbuild GitHub.Unity.sln /property:Configuration=%Configuration% + echo xbuild GitHub.Unity.sln /property:Configuration=%Configuration% property:TargetFrameworkVersion=%FrameworkVersion% + call xbuild GitHub.Unity.sln /property:Configuration=%Configuration% property:TargetFrameworkVersion=%FrameworkVersion% del /Q unity\PackageProject\Assets\Plugins\GitHub\Editor\deleteme* del /Q unity\PackageProject\Assets\Plugins\GitHub\Editor\*.pdb @@ -50,6 +55,9 @@ if not exist "%Unity%" ( for /f tokens^=^2^ usebackq^ delims^=^" %%G in (`find "const string Version" common\SolutionInfo.cs`) do call :Package %%G goto End + + rem TODO: Put FrameworkVersion into unitypackage name + rem TODO: Remove AsyncBridge related metas :Package set Version=%1 diff --git a/package.sh b/package.sh index ca09bd5e5..075029f8b 100755 --- a/package.sh +++ b/package.sh @@ -14,6 +14,11 @@ if [ $# -gt 1 ]; then esac fi +FrameworkVersion="v3.5" +if [ $# -gt 2 ]; then + FrameworkVersion=$3 +fi + pushd unity/PackageProject/Assets git clean -xdf popd @@ -51,17 +56,37 @@ else nuget restore GitHub.Unity.sln fi -xbuild GitHub.Unity.sln /property:Configuration=$Configuration +xbuild GitHub.Unity.sln /property:Configuration=$Configuration /property:TargetFrameworkVersion=$FrameworkVersion rm -f unity/PackageProject/Assets/Plugins/GitHub/Editor/deleteme* rm -f unity/PackageProject/Assets/Plugins/GitHub/Editor/*.pdb rm -f unity/PackageProject/Assets/Plugins/GitHub/Editor/*.pdb.meta rm -f unity/PackageProject/Assets/Plugins/GitHub/Editor/*.xml +# There should be a better way to deal with these +if [ x"$FrameworkVersion" != x"v3.5" ]; then + mv unity/PackageProject/Assets/Plugins/GitHub/Editor/AsyncBridge.Net35.dll.meta ./ + mv unity/PackageProject/Assets/Plugins/GitHub/Editor/ReadOnlyCollectionsInterfaces.dll.meta ./ + mv unity/PackageProject/Assets/Plugins/GitHub/Editor/System.Threading.dll.meta ./ + + rm -f ../github-unity-test/GitHubExtensionProject/Assets/Plugins/GitHub/Editor/AsyncBridge.Net35.dll.meta + rm -f ../github-unity-test/GitHubExtensionProject/Assets/Plugins/GitHub/Editor/ReadOnlyCollectionsInterfaces.dll.meta + rm -f ../github-unity-test/GitHubExtensionProject/Assets/Plugins/GitHub/Editor/System.Threading.dll.meta +fi + Version=`sed -En 's,.*Version = "(.*)".*,\1,p' common/SolutionInfo.cs` commitcount=`git rev-list --count HEAD` commit=`git log -n1 --pretty=format:%h` -Version="${Version}.${commitcount}-${commit}" +DotNetVersion=${FrameworkVersion:1} +DotNetVersion="$(echo $DotNetVersion | tr -d .)" +Version="${Version}.${commitcount}-${commit}.net${DotNetVersion}" Version=$Version + export GITHUB_UNITY_DISABLE=1 "$Unity" -batchmode -projectPath "`pwd`/unity/PackageProject" -exportPackage Assets/Plugins/GitHub/Editor github-for-unity-$Version.unitypackage -force-free -quit + +if [ x"$FrameworkVersion" != x"v3.5" ]; then + mv ./AsyncBridge.Net35.dll.meta unity/PackageProject/Assets/Plugins/GitHub/Editor/ + mv ./ReadOnlyCollectionsInterfaces.dll.meta unity/PackageProject/Assets/Plugins/GitHub/Editor/ + mv ./System.Threading.dll.meta unity/PackageProject/Assets/Plugins/GitHub/Editor/ +fi diff --git a/src/packaging/CopyLibrariesToPackageProject/CopyLibrariesToPackageProject.csproj b/src/packaging/CopyLibrariesToPackageProject/CopyLibrariesToPackageProject.csproj index 179d6dbe3..725a58849 100644 --- a/src/packaging/CopyLibrariesToPackageProject/CopyLibrariesToPackageProject.csproj +++ b/src/packaging/CopyLibrariesToPackageProject/CopyLibrariesToPackageProject.csproj @@ -29,6 +29,20 @@ prompt 4 + + + $(SolutionDir)\packages\AsyncBridge.Net35.0.2.3333.0\lib\net35-Client\AsyncBridge.Net35.dll + True + + + $(SolutionDir)\packages\ReadOnlyCollectionInterfaces.1.0.0\lib\NET20\ReadOnlyCollectionsInterfaces.dll + True + + + $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll + True + + {b389adaf-62cc-486e-85b4-2d8b078df763} @@ -43,23 +57,11 @@ GitHub.Unity True - - $(SolutionDir)\packages\AsyncBridge.Net35.0.2.3333.0\lib\net35-Client\AsyncBridge.Net35.dll - True - - - $(SolutionDir)\packages\ReadOnlyCollectionInterfaces.1.0.0\lib\NET20\ReadOnlyCollectionsInterfaces.dll - True - $(SolutionDir)\lib\sfw\sfw.net.dll True - - $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll - True -