diff --git a/.gitattributes b/.gitattributes
index 163f9ddfe..2cbe4b423 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -62,18 +62,24 @@
# normalize to Windows-style line endings and
*.sln text eol=crlf merge=union
# treat as binary
+*.basis binary
*.bmp binary
+*.dds binary
*.dll binary
*.eot binary
*.exe binary
*.gif binary
*.jpg binary
+*.ktx binary
+*.pbm binary
*.pdf binary
*.png binary
*.ppt binary
*.pptx binary
+*.pvr binary
*.ttf binary
*.snk binary
+*.tga binary
*.woff binary
*.woff2 binary
*.xls binary
diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml
index cf97ccdea..0cc3f9644 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -82,8 +82,8 @@ jobs:
file: "coverage.${{matrix.options.framework}}.xml"
flags: unittests
- - name: Pack
- if: matrix.options.codecov == true # We can use this filter as we know it happens only once and takes the most ime to complete.
+ - name: Pack # We can use this filter as we know it happens only once and takes the most time to complete.
+ if: (github.event_name == 'push') && (matrix.options.codecov == true)
shell: pwsh
run: ./ci-build.ps1 "${{steps.gitversion.outputs.nuGetVersion}}"
diff --git a/Directory.Build.props b/Directory.Build.props
index f961ae881..dcdc62a52 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -79,10 +79,10 @@
Copyright © Six Labors and Contributors
strict;IOperation
true
- 7.3
+ 8.0
en
true
- https://raw.githubusercontent.com/SixLabors/Branding/master/icons/imagesharp/sixlabors.imagesharp.128.png
+ icon.png
Apache-2.0
$(RepositoryUrl)
true
@@ -96,10 +96,14 @@
true
-
+
+
+
+
+
diff --git a/Directory.Build.targets b/Directory.Build.targets
index 1d158ecce..f69a873ac 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -20,13 +20,13 @@
-
+
+
-
diff --git a/ImageSharp.sln b/ImageSharp.sln
index 9c627791e..2adc18f46 100644
--- a/ImageSharp.sln
+++ b/ImageSharp.sln
@@ -14,7 +14,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
Directory.Build.props = Directory.Build.props
Directory.Build.targets = Directory.Build.targets
GitVersion.yml = GitVersion.yml
- ImageSharp.sln.DotSettings = ImageSharp.sln.DotSettings
LICENSE = LICENSE
README.md = README.md
EndProjectSection
diff --git a/ImageSharp.sln.DotSettings b/ImageSharp.sln.DotSettings
deleted file mode 100644
index ece3dddb3..000000000
--- a/ImageSharp.sln.DotSettings
+++ /dev/null
@@ -1,393 +0,0 @@
-
- <?xml version="1.0" encoding="utf-16"?>
-<Profile name="StyleCop">
- <CSUpdateFileHeader>False</CSUpdateFileHeader>
- <CSArrangeQualifiers>True</CSArrangeQualifiers>
- <CSOptimizeUsings>
- <OptimizeUsings>True</OptimizeUsings>
- <EmbraceInRegion>False</EmbraceInRegion>
- <RegionName></RegionName>
- </CSOptimizeUsings>
- <CSReformatCode>True</CSReformatCode>
- <CSReorderTypeMembers>True</CSReorderTypeMembers>
-</Profile>
- StyleCop
- public protected internal private static new abstract virtual override sealed readonly extern unsafe volatile async
- Field, Property, Event, Method
- True
- True
- True
- True
- True
- True
- True
- True
- True
- NEXT_LINE_SHIFTED_2
- 1
- 1
- 1
- 1
- 1
- NEXT_LINE_SHIFTED_2
- ALWAYS_ADD
- ALWAYS_ADD
- ALWAYS_ADD
- ALWAYS_ADD
- ALWAYS_ADD
- NEXT_LINE_SHIFTED_2
- 1
- 1
- False
- False
- False
- NEVER
- False
- False
- NEVER
- False
- ALWAYS
- False
- True
- ON_SINGLE_LINE
- False
- True
- True
- False
- True
- True
- CHOP_IF_LONG
- True
- True
- CHOP_IF_LONG
- CHOP_IF_LONG
- <?xml version="1.0" encoding="utf-16"?>
-<Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns">
- <TypePattern DisplayName="COM interfaces or structs">
- <TypePattern.Match>
- <Or>
- <And>
- <Kind Is="Interface" />
- <Or>
- <HasAttribute Name="System.Runtime.InteropServices.InterfaceTypeAttribute" />
- <HasAttribute Name="System.Runtime.InteropServices.ComImport" />
- </Or>
- </And>
- <Kind Is="Struct" />
- </Or>
- </TypePattern.Match>
- </TypePattern>
- <TypePattern DisplayName="P/Invoke classes called 'NativeMethods' (StyleCop)">
- <TypePattern.Match>
- <And>
- <Kind Is="Class" />
- <Name Is=".*NativeMethods" />
- </And>
- </TypePattern.Match>
- </TypePattern>
- <TypePattern DisplayName="DataMember serialisation classes (StyleCop)">
- <TypePattern.Match>
- <And>
- <Or>
- <Kind Is="Field" />
- <Kind Is="Property" />
- </Or>
- <HasAttribute Name="System.Runtime.Serialization.DataMemberAttribute" />
- </And>
- </TypePattern.Match>
- </TypePattern>
- <TypePattern DisplayName="Default Pattern (StyleCop)" RemoveRegions="All">
- <Entry DisplayName="Constants">
- <Entry.Match>
- <Kind Is="Constant" />
- </Entry.Match>
- <Entry.SortBy>
- <Access Order="Public Internal ProtectedInternal Protected Private" />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry DisplayName="Static fields">
- <Entry.Match>
- <And>
- <Kind Is="Field" />
- <Static />
- </And>
- </Entry.Match>
- <Entry.SortBy>
- <Access Order="Public Internal ProtectedInternal Protected Private" />
- <Readonly />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry DisplayName="Fields">
- <Entry.Match>
- <Kind Is="Field" />
- </Entry.Match>
- <Entry.SortBy>
- <Access Order="Public Internal ProtectedInternal Protected Private" />
- <Readonly />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry Priority="200" DisplayName="Constructors and Destructors">
- <Entry.Match>
- <Or>
- <Kind Is="Constructor" />
- <Kind Is="Destructor" />
- </Or>
- </Entry.Match>
- <Entry.SortBy>
- <Static />
- <Kind Order="Constructor Destructor" />
- <Access Order="Public Internal ProtectedInternal Protected Private" />
- </Entry.SortBy>
- </Entry>
- <Entry DisplayName="Delegates">
- <Entry.Match>
- <Kind Is="Delegate" />
- </Entry.Match>
- <Entry.SortBy>
- <Access Order="Public Internal ProtectedInternal Protected Private" />
- <Static />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry DisplayName="Public events">
- <Entry.Match>
- <And>
- <Kind Is="Event" />
- <Access Is="Public" />
- </And>
- </Entry.Match>
- <Entry.SortBy>
- <Access Order="Public" />
- <Static />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry DisplayName="Interface events">
- <Entry.Match>
- <And>
- <Kind Is="Event" />
- <ImplementsInterface />
- </And>
- </Entry.Match>
- <Entry.SortBy>
- <ImplementsInterface Immediate="True" />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry DisplayName="Other events">
- <Entry.Match>
- <Kind Is="Event" />
- </Entry.Match>
- <Entry.SortBy>
- <Access Order="Public Internal ProtectedInternal Protected Private" />
- <Static />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry DisplayName="Enums">
- <Entry.Match>
- <Kind Is="Enum" />
- </Entry.Match>
- <Entry.SortBy>
- <Access Order="Public Internal ProtectedInternal Protected Private" />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry DisplayName="Interfaces">
- <Entry.Match>
- <Kind Is="Interface" />
- </Entry.Match>
- <Entry.SortBy>
- <Access Order="Public Internal ProtectedInternal Protected Private" />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry DisplayName="Public properties">
- <Entry.Match>
- <And>
- <Kind Is="Property" />
- <Access Is="Public" />
- </And>
- </Entry.Match>
- <Entry.SortBy>
- <Static />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry DisplayName="Interface properties">
- <Entry.Match>
- <And>
- <Kind Is="Property" />
- <ImplementsInterface />
- </And>
- </Entry.Match>
- <Entry.SortBy>
- <ImplementsInterface Immediate="True" />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry DisplayName="Other properties">
- <Entry.Match>
- <Kind Is="Property" />
- </Entry.Match>
- <Entry.SortBy>
- <Access Order="Public Internal ProtectedInternal Protected Private" />
- <Static />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry Priority="1000" DisplayName="Public indexers">
- <Entry.Match>
- <And>
- <Kind Is="Indexer" />
- <Access Is="Public" />
- </And>
- </Entry.Match>
- <Entry.SortBy>
- <Static />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry Priority="1000" DisplayName="Interface indexers">
- <Entry.Match>
- <And>
- <Kind Is="Indexer" />
- <ImplementsInterface />
- </And>
- </Entry.Match>
- <Entry.SortBy>
- <ImplementsInterface Immediate="True" />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry Priority="1000" DisplayName="Other indexers">
- <Entry.Match>
- <Kind Is="Indexer" />
- </Entry.Match>
- <Entry.SortBy>
- <Access Order="Public Internal ProtectedInternal Protected Private" />
- <Static />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry DisplayName="Public methods and operators">
- <Entry.Match>
- <And>
- <Or>
- <Kind Is="Method" />
- <Kind Is="Operator" />
- </Or>
- <Access Is="Public" />
- </And>
- </Entry.Match>
- <Entry.SortBy>
- <Static />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry DisplayName="Interface methods">
- <Entry.Match>
- <And>
- <Kind Is="Method" />
- <ImplementsInterface />
- </And>
- </Entry.Match>
- <Entry.SortBy>
- <ImplementsInterface Immediate="True" />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry DisplayName="Other methods">
- <Entry.Match>
- <Kind Is="Method" />
- </Entry.Match>
- <Entry.SortBy>
- <Access Order="Public Internal ProtectedInternal Protected Private" />
- <Static />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry DisplayName="Operators">
- <Entry.Match>
- <Kind Is="Operator" />
- </Entry.Match>
- <Entry.SortBy>
- <Access Order="Public Internal ProtectedInternal Protected Private" />
- <Static />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry Priority="600" DisplayName="Nested structs">
- <Entry.Match>
- <Kind Is="Struct" />
- </Entry.Match>
- <Entry.SortBy>
- <Static />
- <Access Order="Public Internal ProtectedInternal Protected Private" />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry Priority="700" DisplayName="Nested classes">
- <Entry.Match>
- <Kind Is="Class" />
- </Entry.Match>
- <Entry.SortBy>
- <Static />
- <Access Order="Public Internal ProtectedInternal Protected Private" />
- <Name />
- </Entry.SortBy>
- </Entry>
- <Entry DisplayName="All other members" />
- </TypePattern>
-</Patterns>
- False
- True
- // Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
- AC
- DC
- DCT
- EOF
- FDCT
- IDCT
- JPEG
- MCU
- PNG
- RGB
- RLE
- XY
- XYZ
- $object$_On$event$
- <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
- <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
- <Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" />
- <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
- <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
- <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
- <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
- <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
- <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
- <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
- <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
- <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
- <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
- <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
- <Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" />
- <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
-
\ No newline at end of file
diff --git a/shared-infrastructure b/shared-infrastructure
index c2e689abe..40f740dea 160000
--- a/shared-infrastructure
+++ b/shared-infrastructure
@@ -1 +1 @@
-Subproject commit c2e689abe9227209e6d5bc4bf56255d92b4a5d62
+Subproject commit 40f740dea2aad9dabae12a8e1e17fdcf476066ba
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index e94848675..0bddf7e69 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -25,11 +25,7 @@
true
-
-
-
-
-
+
@@ -38,8 +34,4 @@
-
-
-
-
diff --git a/src/ImageSharp/ImageSharp.csproj b/src/ImageSharp/ImageSharp.csproj
index 4d354d3cc..5e64adf53 100644
--- a/src/ImageSharp/ImageSharp.csproj
+++ b/src/ImageSharp/ImageSharp.csproj
@@ -192,7 +192,6 @@
-
diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props
index 48ffbf315..22c634d9b 100644
--- a/tests/Directory.Build.props
+++ b/tests/Directory.Build.props
@@ -17,7 +17,9 @@
- CS0618;$(NoWarn)
+ $(MSBuildThisFileDirectory)..\shared-infrastructure\SixLabors.Tests.ruleset
+
+ $(NoWarn);CS0618
@@ -26,8 +28,8 @@
-
+
+
diff --git a/tests/Directory.Build.targets b/tests/Directory.Build.targets
index 5c8f45e26..40347763d 100644
--- a/tests/Directory.Build.targets
+++ b/tests/Directory.Build.targets
@@ -26,7 +26,6 @@
- full
true
true
opencover
diff --git a/tests/ImageSharp.Benchmarks/ImageSharp.Benchmarks.csproj b/tests/ImageSharp.Benchmarks/ImageSharp.Benchmarks.csproj
index bac4ad71c..70c5481da 100644
--- a/tests/ImageSharp.Benchmarks/ImageSharp.Benchmarks.csproj
+++ b/tests/ImageSharp.Benchmarks/ImageSharp.Benchmarks.csproj
@@ -7,7 +7,7 @@
SixLabors.ImageSharp.Benchmarks
netcoreapp2.1;net472
false
- false
+
diff --git a/tests/ImageSharp.Sandbox46/ImageSharp.Sandbox46.csproj b/tests/ImageSharp.Sandbox46/ImageSharp.Sandbox46.csproj
index 289d2d850..7afe33fb5 100644
--- a/tests/ImageSharp.Sandbox46/ImageSharp.Sandbox46.csproj
+++ b/tests/ImageSharp.Sandbox46/ImageSharp.Sandbox46.csproj
@@ -10,6 +10,7 @@
win7-x64
netcoreapp2.1;net472
SixLabors.ImageSharp.Sandbox46.Program
+
false
diff --git a/tests/ImageSharp.Tests/ImageSharp.Tests.csproj b/tests/ImageSharp.Tests/ImageSharp.Tests.csproj
index d09ab9d0b..743c2eee0 100644
--- a/tests/ImageSharp.Tests/ImageSharp.Tests.csproj
+++ b/tests/ImageSharp.Tests/ImageSharp.Tests.csproj
@@ -4,7 +4,6 @@
netcoreapp2.1;net462;net472
True
- latest
True
SixLabors.ImageSharp.Tests
AnyCPU;x64;x86
@@ -16,8 +15,6 @@
-
-
diff --git a/tests/ImageSharp.Tests/ImageSharp.Tests.v3.ncrunchproject b/tests/ImageSharp.Tests/ImageSharp.Tests.v3.ncrunchproject
deleted file mode 100644
index f015b4b86..000000000
--- a/tests/ImageSharp.Tests/ImageSharp.Tests.v3.ncrunchproject
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
- False
- UseStaticAnalysis
-
- False
- False
-
-
\ No newline at end of file
diff --git a/tests/ImageSharp.Tests/RunExtendedTests.cmd b/tests/ImageSharp.Tests/RunExtendedTests.cmd
deleted file mode 100644
index c2f4b9f53..000000000
--- a/tests/ImageSharp.Tests/RunExtendedTests.cmd
+++ /dev/null
@@ -1,9 +0,0 @@
-dotnet build -c Release
-dotnet xunit -nobuild -c Release -f net462
-dotnet xunit -nobuild -c Release -f net462 -x86
-dotnet xunit -nobuild -c Release -f net47
-dotnet xunit -nobuild -c Release -f net47 -x86
-dotnet xunit -nobuild -c Release -f net471
-dotnet xunit -nobuild -c Release -f net471 -x86
-dotnet xunit -nobuild -c Release -f net472
-dotnet xunit -nobuild -c Release -f net472 -x86