diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index dc687db..8f2016d 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "fake-cli": { - "version": "6.0.0", + "version": "6.1.1", "commands": [ "fake" ] @@ -15,13 +15,13 @@ ] }, "fsdocs-tool": { - "version": "20.0.0", + "version": "20.0.1", "commands": [ "fsdocs" ] }, "fantomas": { - "version": "6.3.4", + "version": "6.3.13", "commands": [ "fantomas" ] diff --git a/Directory.Build.props b/Directory.Build.props index ff2d3c3..265cc34 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,9 +1,18 @@ - - https://github.com/fsprojects/ExcelProvider - https://github.com/fsprojects/ExcelProvider/blob/master/LICENSE.txt - https://github.com/fsprojects/ExcelProvider/blob/master/RELEASE_NOTES.md - https://fsprojects.github.io/ExcelProvider/ - images/logo.png - + + https://github.com/fsprojects/ExcelProvider + https://fsprojects.github.io/ExcelProvider/ + + + + true + all + low + + + + https://github.com/fsprojects/ExcelProvider/blob/master/LICENSE.txt + https://github.com/fsprojects/ExcelProvider/blob/master/RELEASE_NOTES.md + images/logo.png + diff --git a/README.md b/README.md index effbbb0..7fb8934 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,8 @@ This library is for the .NET platform implementing a read-only Excel type provid ## Building -* Windows: Run ./build.cmd -t Build (see build.fsx for more options to pass in as arguments after -t) -* Requires dotnet core 6.0.421 or higher 6.0 level sdk to be installed. +* Windows: Run ./build.cmd -t "Build" (see build.fsx for more options to pass in as arguments after -t) +* Requires dotnet core 6.0.425 or higher 6.0 level sdk to be installed. * See DEVGUIDE.md for more information ## Maintainer(s) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 392aeff..c3330a0 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,3 +1,10 @@ +### 3.0.0 + +* Fix issue [#41](https://github.com/fsprojects/ExcelProvider/issues/41). The type provider should no longer return an extra blank row with the data as it did before. +* Fix issue [#14](https://github.com/fsprojects/ExcelProvider/issues/41) and related behaviour. We are now better at handling casting of data to the detected data type if there are rows which have data of different data types. +* Both of the above fixes where contributed by new contributor [Matthew Dupont](https://github.com/mjdupont). His contributions are very much appreciated. +* Both fixes, but especially for #41, can break existing code logic. Please test your code after upgrading to this version. + ### 2.1.0 * Fix issue [#77](https://github.com/fsprojects/ExcelProvider/issues/77). The type provider will no longer revert to the first sheet if the sheet name provided does not exist. Instead, the code will not compile. diff --git a/global.json b/global.json index 700debb..8b92a02 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "6.0.421", + "version": "6.0.425", "rollForward": "minor" } } diff --git a/nuget/paket.template b/nuget/paket.template index d515e2b..ca77847 100644 --- a/nuget/paket.template +++ b/nuget/paket.template @@ -1,7 +1,7 @@ type file id ExcelProvider version - 2.1.0 + 3.0.0 authors Contributors on Github owners @@ -23,7 +23,7 @@ description tags F# fsharp typeproviders Excel releaseNotes - Fix issue #77. No longer defaults to first sheet in workbook when the requested sheet name does not exist. + Fix issue #14 and issue #41. These are breaking changes. files diff --git a/paket.dependencies b/paket.dependencies index 4b8d53c..ab56244 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -36,7 +36,7 @@ group Build group Test source https://api.nuget.org/v3/index.json frameworks: net6.0 - nuget Microsoft.NET.Test.Sdk 17.9.0 + nuget Microsoft.NET.Test.Sdk nuget NUnit nuget NUnit.Console nuget NUnit3TestAdapter version_in_path: true diff --git a/paket.lock b/paket.lock index ef97cc0..d004e1a 100644 --- a/paket.lock +++ b/paket.lock @@ -1,11 +1,11 @@ RESTRICTION: == netstandard2.0 NUGET remote: https://api.nuget.org/v3/index.json - ExcelDataReader (3.6) - ExcelDataReader.DataSet (3.6) - ExcelDataReader (>= 3.6) + ExcelDataReader (3.7) + ExcelDataReader.DataSet (3.7) + ExcelDataReader (>= 3.7) FSharp.Core (6.0.7) - Microsoft.NET.Test.Sdk (17.9) + Microsoft.NET.Test.Sdk (17.11.1) Microsoft.NETCore.Platforms (7.0.4) NETStandard.Library (2.0.3) Microsoft.NETCore.Platforms (>= 1.1) @@ -221,7 +221,7 @@ NUGET System.Configuration.ConfigurationManager (>= 6.0) System.Security.Permissions (>= 6.0) - restriction: == netstandard2.0 System.Text.Encoding.CodePages (>= 6.0) - restriction: == netstandard2.0 - Microsoft.NET.StringTools (17.9.5) + Microsoft.NET.StringTools (17.11.4) System.Memory (>= 4.5.5) System.Runtime.CompilerServices.Unsafe (>= 6.0) Microsoft.NETCore.Platforms (7.0.4) @@ -240,22 +240,22 @@ NUGET Microsoft.Build.Framework (>= 16.10) Microsoft.Build.Utilities.Core (>= 16.10) Newtonsoft.Json (13.0.3) - NuGet.Common (6.9.1) - NuGet.Frameworks (>= 6.9.1) - NuGet.Configuration (6.9.1) - NuGet.Common (>= 6.9.1) + NuGet.Common (6.11) + NuGet.Frameworks (>= 6.11) + NuGet.Configuration (6.11) + NuGet.Common (>= 6.11) System.Security.Cryptography.ProtectedData (>= 4.4) - NuGet.Frameworks (6.9.1) - NuGet.Packaging (6.9.1) + NuGet.Frameworks (6.11) + NuGet.Packaging (6.11) Newtonsoft.Json (>= 13.0.3) - NuGet.Configuration (>= 6.9.1) - NuGet.Versioning (>= 6.9.1) + NuGet.Configuration (>= 6.11) + NuGet.Versioning (>= 6.11) System.Security.Cryptography.Pkcs (>= 6.0.4) - NuGet.Protocol (6.9.1) - NuGet.Packaging (>= 6.9.1) + NuGet.Protocol (6.11) + NuGet.Packaging (>= 6.11) System.Text.Json (>= 7.0.3) - restriction: || (&& (== net6.0) (>= net472)) (&& (== net6.0) (< net5.0)) (== netstandard2.0) - NuGet.Versioning (6.9.1) - Octokit (11.0.1) + NuGet.Versioning (6.11) + Octokit (13.0.1) runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) @@ -363,7 +363,7 @@ NUGET Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Formats.Asn1 (8.0) + System.Formats.Asn1 (8.0.1) System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) System.Globalization (4.3) @@ -685,7 +685,7 @@ NUGET System.Security.Cryptography.Primitives (>= 4.3) System.Text.Encoding (>= 4.3) System.Threading (>= 4.3) - System.Security.Cryptography.Xml (8.0) + System.Security.Cryptography.Xml (8.0.1) System.Memory (>= 4.5.5) - restriction: == netstandard2.0 System.Security.AccessControl (>= 6.0) - restriction: == netstandard2.0 System.Security.Cryptography.Pkcs (>= 8.0) @@ -708,7 +708,7 @@ NUGET System.Text.Encoding (>= 4.3) System.Text.Encodings.Web (8.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net6.0)) System.Runtime.CompilerServices.Unsafe (>= 6.0) - System.Text.Json (8.0.3) + System.Text.Json (8.0.4) System.Runtime.CompilerServices.Unsafe (>= 6.0) System.Text.Encodings.Web (>= 8.0) System.Threading (4.3) @@ -718,7 +718,7 @@ NUGET Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Threading.Tasks.Dataflow (8.0) + System.Threading.Tasks.Dataflow (8.0.1) System.Threading.Tasks.Extensions (4.5.4) - restriction: || (&& (== net6.0) (>= net472)) (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (>= uap10.1)) (== netstandard2.0) System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netstandard1.0)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= wp8)) (== netstandard2.0) System.Threading.Tasks.Parallel (4.3) @@ -772,31 +772,31 @@ NUGET FsUnit (6.0) FSharp.Core (>= 5.0.2) NUnit (>= 4.0.1) - Microsoft.Build.Framework (17.9.5) + Microsoft.Build.Framework (17.11.4) Microsoft.Win32.Registry (>= 5.0) System.Memory (>= 4.5.5) System.Runtime.CompilerServices.Unsafe (>= 6.0) System.Security.Principal.Windows (>= 5.0) - Microsoft.Build.Tasks.Core (17.9.5) - Microsoft.Build.Framework (>= 17.9.5) - Microsoft.Build.Utilities.Core (>= 17.9.5) - Microsoft.NET.StringTools (>= 17.9.5) + Microsoft.Build.Tasks.Core (17.11.4) + Microsoft.Build.Framework (>= 17.11.4) + Microsoft.Build.Utilities.Core (>= 17.11.4) + Microsoft.NET.StringTools (>= 17.11.4) Microsoft.Win32.Registry (>= 5.0) - System.CodeDom (>= 7.0) + System.CodeDom (>= 8.0) System.Collections.Immutable (>= 8.0) System.Configuration.ConfigurationManager (>= 8.0) System.Memory (>= 4.5.5) System.Reflection.Metadata (>= 8.0) System.Resources.Extensions (>= 8.0) System.Runtime.CompilerServices.Unsafe (>= 6.0) - System.Security.Cryptography.Pkcs (>= 7.0.2) - System.Security.Cryptography.Xml (>= 7.0.1) + System.Security.Cryptography.Pkcs (>= 8.0) + System.Security.Cryptography.Xml (>= 8.0) System.Security.Principal.Windows (>= 5.0) System.Text.Encoding.CodePages (>= 7.0) System.Threading.Tasks.Dataflow (>= 8.0) - Microsoft.Build.Utilities.Core (17.9.5) - Microsoft.Build.Framework (>= 17.9.5) - Microsoft.NET.StringTools (>= 17.9.5) + Microsoft.Build.Utilities.Core (17.11.4) + Microsoft.Build.Framework (>= 17.11.4) + Microsoft.NET.StringTools (>= 17.11.4) Microsoft.Win32.Registry (>= 5.0) System.Collections.Immutable (>= 8.0) System.Configuration.ConfigurationManager (>= 8.0) @@ -804,19 +804,19 @@ NUGET System.Runtime.CompilerServices.Unsafe (>= 6.0) System.Security.Principal.Windows (>= 5.0) System.Text.Encoding.CodePages (>= 7.0) - Microsoft.CodeCoverage (17.9) - Microsoft.NET.StringTools (17.9.5) + Microsoft.CodeCoverage (17.11.1) + Microsoft.NET.StringTools (17.11.4) System.Memory (>= 4.5.5) System.Runtime.CompilerServices.Unsafe (>= 6.0) - Microsoft.NET.Test.Sdk (17.9) - Microsoft.CodeCoverage (>= 17.9) - Microsoft.TestPlatform.TestHost (>= 17.9) + Microsoft.NET.Test.Sdk (17.11.1) + Microsoft.CodeCoverage (>= 17.11.1) + Microsoft.TestPlatform.TestHost (>= 17.11.1) Microsoft.NETCore.Platforms (7.0.4) Microsoft.NETCore.Targets (5.0) - Microsoft.TestPlatform.ObjectModel (17.9) + Microsoft.TestPlatform.ObjectModel (17.11.1) System.Reflection.Metadata (>= 1.6) - Microsoft.TestPlatform.TestHost (17.9) - Microsoft.TestPlatform.ObjectModel (>= 17.9) + Microsoft.TestPlatform.TestHost (17.11.1) + Microsoft.TestPlatform.ObjectModel (>= 17.11.1) Newtonsoft.Json (>= 13.0.1) Microsoft.Win32.Primitives (4.3) Microsoft.NETCore.Platforms (>= 1.1) @@ -826,21 +826,21 @@ NUGET System.Security.AccessControl (>= 5.0) System.Security.Principal.Windows (>= 5.0) Newtonsoft.Json (13.0.3) - NUnit (4.1) - NUnit.Console (3.17) - NUnit.ConsoleRunner (>= 3.17) + NUnit (4.2.2) + NUnit.Console (3.18.1) + NUnit.ConsoleRunner (>= 3.18.1) NUnit.Extension.NUnitProjectLoader (>= 3.6) NUnit.Extension.NUnitV2Driver (>= 3.8) NUnit.Extension.NUnitV2ResultWriter (>= 3.6) NUnit.Extension.TeamCityEventListener (>= 1.0.7) NUnit.Extension.VSProjectLoader (>= 3.8) - NUnit.ConsoleRunner (3.17) - NUnit.Extension.NUnitProjectLoader (3.7.1) + NUnit.ConsoleRunner (3.18.1) + NUnit.Extension.NUnitProjectLoader (3.8) NUnit.Extension.NUnitV2Driver (3.9) - NUnit.Extension.NUnitV2ResultWriter (3.7) + NUnit.Extension.NUnitV2ResultWriter (3.8) NUnit.Extension.TeamCityEventListener (1.0.9) NUnit.Extension.VSProjectLoader (3.9) - NUnit3TestAdapter (4.5.0) - version_in_path: true + NUnit3TestAdapter (4.6.0) - version_in_path: true runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) @@ -947,7 +947,7 @@ NUGET Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Formats.Asn1 (8.0) + System.Formats.Asn1 (8.0.1) System.Globalization (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) @@ -1249,7 +1249,7 @@ NUGET System.Security.Cryptography.Primitives (>= 4.3) System.Text.Encoding (>= 4.3) System.Threading (>= 4.3) - System.Security.Cryptography.Xml (8.0) + System.Security.Cryptography.Xml (8.0.1) System.Security.Cryptography.Pkcs (>= 8.0) System.Security.Principal (4.3) System.Runtime (>= 4.3) @@ -1272,7 +1272,7 @@ NUGET Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Threading.Tasks.Dataflow (8.0) + System.Threading.Tasks.Dataflow (8.0.1) System.Threading.Tasks.Parallel (4.3) System.Collections.Concurrent (>= 4.3) System.Diagnostics.Debug (>= 4.3) diff --git a/src/ExcelProvider.DesignTime/AssemblyInfo.fs b/src/ExcelProvider.DesignTime/AssemblyInfo.fs index 07826da..71ec509 100644 --- a/src/ExcelProvider.DesignTime/AssemblyInfo.fs +++ b/src/ExcelProvider.DesignTime/AssemblyInfo.fs @@ -6,8 +6,8 @@ open System.Reflection [] [] [] -[] -[] +[] +[] do () module internal AssemblyVersionInformation = @@ -22,7 +22,7 @@ module internal AssemblyVersionInformation = "This library implements a read-only Excel type provider for Net Standard 2.0." [] - let AssemblyVersion = "2.1.0" + let AssemblyVersion = "3.0.0" [] - let AssemblyFileVersion = "2.1.0" + let AssemblyFileVersion = "3.0.0" diff --git a/src/ExcelProvider.Runtime/AssemblyInfo.fs b/src/ExcelProvider.Runtime/AssemblyInfo.fs index 7eb3ea5..b8ae375 100644 --- a/src/ExcelProvider.Runtime/AssemblyInfo.fs +++ b/src/ExcelProvider.Runtime/AssemblyInfo.fs @@ -6,8 +6,8 @@ open System.Reflection [] [] [] -[] -[] +[] +[] do () module internal AssemblyVersionInformation = @@ -22,7 +22,7 @@ module internal AssemblyVersionInformation = "This library implements a read-only Excel type provider for Net Standard 2.0." [] - let AssemblyVersion = "2.1.0" + let AssemblyVersion = "3.0.0" [] - let AssemblyFileVersion = "2.1.0" + let AssemblyFileVersion = "3.0.0" diff --git a/src/ExcelProvider.Runtime/ExcelProvider.Runtime.fsproj b/src/ExcelProvider.Runtime/ExcelProvider.Runtime.fsproj index 56e4664..fd0f662 100644 --- a/src/ExcelProvider.Runtime/ExcelProvider.Runtime.fsproj +++ b/src/ExcelProvider.Runtime/ExcelProvider.Runtime.fsproj @@ -33,7 +33,7 @@ - + diff --git a/tests/ExcelProvider.Tests/ExcelProvider.Tests.fs b/tests/ExcelProvider.Tests/ExcelProvider.Tests.fs index d32f797..3d95374 100644 --- a/tests/ExcelProvider.Tests/ExcelProvider.Tests.fs +++ b/tests/ExcelProvider.Tests/ExcelProvider.Tests.fs @@ -391,7 +391,7 @@ let ``Reading all rows in a well-formed excel file does not return empty rows``( fileWithUnboundRange.Data |> Seq.length |> should equal 6 let fileWithBoundRange = MultipleRegions() - fileWithBoundRange |> Seq.length |> should equal 4 + fileWithBoundRange.Data |> Seq.length |> should equal 4 module AutomaticCoercion = @@ -491,9 +491,9 @@ module AutomaticCoercion = sprintf "%s (%f) %i" row.Title (row.Year) (row.``Date Watched``.Year) |> ignore (fun () -> printTitles file.Data) |> should (not' << throw) typeof -// See https://github.com/fsprojects/ExcelProvider/issues/14 -[] -let ``Can automatically coerce non-string cells in a column of string data to their string form`` () = + // See https://github.com/fsprojects/ExcelProvider/issues/14 + [] + let ``Can automatically coerce non-string cells in a column of string data to their string form`` () = let file = MixedDataTypes() let printTitles data = for (row:MixedDataTypes.Row) in data do