diff --git a/AcceptanceTest/AcceptanceTest.csproj b/AcceptanceTest/AcceptanceTest.csproj index ac8364b9e..531eb05e2 100644 --- a/AcceptanceTest/AcceptanceTest.csproj +++ b/AcceptanceTest/AcceptanceTest.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 false true enable diff --git a/DDTool/DDTool/DDTool.csproj b/DDTool/DDTool/DDTool.csproj index 41f1d5ad4..a269962b5 100644 --- a/DDTool/DDTool/DDTool.csproj +++ b/DDTool/DDTool/DDTool.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net8.0 diff --git a/DDTool/UnitTests/UnitTests.csproj b/DDTool/UnitTests/UnitTests.csproj index 25911b7dd..8a4783231 100644 --- a/DDTool/UnitTests/UnitTests.csproj +++ b/DDTool/UnitTests/UnitTests.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 false diff --git a/Examples/Executor/Examples.Executor.csproj b/Examples/Executor/Examples.Executor.csproj index 920387f58..43e1aa2d5 100644 --- a/Examples/Executor/Examples.Executor.csproj +++ b/Examples/Executor/Examples.Executor.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net8.0 Executor Executor Copyright © Connamara Systems, LLC 2011 diff --git a/Examples/FixToJson/Examples.FixToJson.csproj b/Examples/FixToJson/Examples.FixToJson.csproj index f5a698af4..dbc19d65d 100644 --- a/Examples/FixToJson/Examples.FixToJson.csproj +++ b/Examples/FixToJson/Examples.FixToJson.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net8.0 enable Copyright © Connamara Systems, LLC 2022 Connamara Systems, LLC diff --git a/Examples/JsonToFix/Examples.JsonToFix.csproj b/Examples/JsonToFix/Examples.JsonToFix.csproj index f5a698af4..dbc19d65d 100644 --- a/Examples/JsonToFix/Examples.JsonToFix.csproj +++ b/Examples/JsonToFix/Examples.JsonToFix.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net8.0 enable Copyright © Connamara Systems, LLC 2022 Connamara Systems, LLC diff --git a/Examples/SimpleAcceptor/Examples.SimpleAcceptor.csproj b/Examples/SimpleAcceptor/Examples.SimpleAcceptor.csproj index b1df00be5..4e8e6b64e 100644 --- a/Examples/SimpleAcceptor/Examples.SimpleAcceptor.csproj +++ b/Examples/SimpleAcceptor/Examples.SimpleAcceptor.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net8.0 SimpleAcceptor SimpleAcceptor Copyright © Connamara Systems, LLC 2011 diff --git a/Examples/Standalone/SerilogLog/SerilogLog.csproj b/Examples/Standalone/SerilogLog/SerilogLog.csproj index 8e03b5169..b174430ef 100644 --- a/Examples/Standalone/SerilogLog/SerilogLog.csproj +++ b/Examples/Standalone/SerilogLog/SerilogLog.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 diff --git a/Examples/Standalone/SerilogLog/UnitTests/UnitTests.csproj b/Examples/Standalone/SerilogLog/UnitTests/UnitTests.csproj index 9b23f968b..7c9470191 100644 --- a/Examples/Standalone/SerilogLog/UnitTests/UnitTests.csproj +++ b/Examples/Standalone/SerilogLog/UnitTests/UnitTests.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 false diff --git a/Examples/TradeClient/Examples.TradeClient.csproj b/Examples/TradeClient/Examples.TradeClient.csproj index 353b2aa14..d5b28cc94 100644 --- a/Examples/TradeClient/Examples.TradeClient.csproj +++ b/Examples/TradeClient/Examples.TradeClient.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net8.0 TradeClient TradeClient Copyright © Connamara Systems, LLC 2011 diff --git a/Messages/FIX40/QuickFix.FIX40.csproj b/Messages/FIX40/QuickFix.FIX40.csproj index 9780b4aa0..2ff27cee1 100644 --- a/Messages/FIX40/QuickFix.FIX40.csproj +++ b/Messages/FIX40/QuickFix.FIX40.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 true QuickFIX/n FIX4.0 Messages QuickFIXn.FIX4.0 diff --git a/Messages/FIX41/QuickFix.FIX41.csproj b/Messages/FIX41/QuickFix.FIX41.csproj index 66201538e..54864055f 100644 --- a/Messages/FIX41/QuickFix.FIX41.csproj +++ b/Messages/FIX41/QuickFix.FIX41.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 true QuickFIX/n FIX4.1 Messages QuickFIXn.FIX4.1 diff --git a/Messages/FIX42/QuickFix.FIX42.csproj b/Messages/FIX42/QuickFix.FIX42.csproj index 9afb58178..cd225723d 100644 --- a/Messages/FIX42/QuickFix.FIX42.csproj +++ b/Messages/FIX42/QuickFix.FIX42.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 true QuickFIX/n FIX4.2 Messages QuickFIXn.FIX4.2 diff --git a/Messages/FIX43/QuickFix.FIX43.csproj b/Messages/FIX43/QuickFix.FIX43.csproj index 960cd31eb..70a4707f1 100644 --- a/Messages/FIX43/QuickFix.FIX43.csproj +++ b/Messages/FIX43/QuickFix.FIX43.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 true QuickFIX/n FIX4.3 Messages QuickFIXn.FIX4.3 diff --git a/Messages/FIX44/QuickFix.FIX44.csproj b/Messages/FIX44/QuickFix.FIX44.csproj index 21d37611e..1942848a1 100644 --- a/Messages/FIX44/QuickFix.FIX44.csproj +++ b/Messages/FIX44/QuickFix.FIX44.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 true QuickFIX/n FIX4.4 Messages QuickFIXn.FIX4.4 diff --git a/Messages/FIX50/QuickFix.FIX50.csproj b/Messages/FIX50/QuickFix.FIX50.csproj index ad0e1cf79..4e9fe2bbd 100644 --- a/Messages/FIX50/QuickFix.FIX50.csproj +++ b/Messages/FIX50/QuickFix.FIX50.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 true QuickFIX/n FIX5.0 Messages QuickFIXn.FIX5.0 diff --git a/Messages/FIX50SP1/QuickFix.FIX50SP1.csproj b/Messages/FIX50SP1/QuickFix.FIX50SP1.csproj index 360e739f9..fd9c8ecd9 100644 --- a/Messages/FIX50SP1/QuickFix.FIX50SP1.csproj +++ b/Messages/FIX50SP1/QuickFix.FIX50SP1.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 true QuickFIX/n FIX5.0 SP1 Messages QuickFIXn.FIX5.0SP1 diff --git a/Messages/FIX50SP2/QuickFix.FIX50SP2.csproj b/Messages/FIX50SP2/QuickFix.FIX50SP2.csproj index ab9f8774a..dd893616c 100644 --- a/Messages/FIX50SP2/QuickFix.FIX50SP2.csproj +++ b/Messages/FIX50SP2/QuickFix.FIX50SP2.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 true QuickFIX/n FIX5.0 SP2 Messages QuickFIXn.FIX5.0SP2 diff --git a/Messages/FIXT11/QuickFix.FIXT11.csproj b/Messages/FIXT11/QuickFix.FIXT11.csproj index 7c82242f5..61c9b7db4 100644 --- a/Messages/FIXT11/QuickFix.FIXT11.csproj +++ b/Messages/FIXT11/QuickFix.FIXT11.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 true QuickFIX/n FIXT1.1 Messages QuickFIXn.FIXT1.1 diff --git a/QuickFIXn/DataDictionary/DictionaryParseException.cs b/QuickFIXn/DataDictionary/DictionaryParseException.cs index cdb3eac79..4c74c757c 100644 --- a/QuickFIXn/DataDictionary/DictionaryParseException.cs +++ b/QuickFIXn/DataDictionary/DictionaryParseException.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; namespace QuickFix { @@ -12,9 +9,5 @@ public DictionaryParseException(string message) : base(message) { } public DictionaryParseException(string message, System.Exception inner) : base(message, inner) { } - protected DictionaryParseException( - System.Runtime.Serialization.SerializationInfo info, - System.Runtime.Serialization.StreamingContext context) - : base(info, context) { } } } diff --git a/QuickFIXn/DataDictionary/InvalidMessageTypeException.cs b/QuickFIXn/DataDictionary/InvalidMessageTypeException.cs index bbfb0e01f..4c9587531 100644 --- a/QuickFIXn/DataDictionary/InvalidMessageTypeException.cs +++ b/QuickFIXn/DataDictionary/InvalidMessageTypeException.cs @@ -1,20 +1,19 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; namespace QuickFix { + [Obsolete("This class will be removed in a future release (because it's unused)")] public class InvalidMessageTypeException : ApplicationException { + [Obsolete("This class will be removed in a future release (because it's unused)")] public InvalidMessageTypeException() { } + + [Obsolete("This class will be removed in a future release (because it's unused)")] public InvalidMessageTypeException(string message) : base(message) { } + + [Obsolete("This class will be removed in a future release (because it's unused)")] public InvalidMessageTypeException(string message, System.Exception inner) : base(message, inner) { } - protected InvalidMessageTypeException( - System.Runtime.Serialization.SerializationInfo info, - System.Runtime.Serialization.StreamingContext context) - : base(info, context) { } } } diff --git a/QuickFIXn/DataDictionary/MissingRequiredFieldException.cs b/QuickFIXn/DataDictionary/MissingRequiredFieldException.cs index 7e3c1038d..ffc1e4bee 100644 --- a/QuickFIXn/DataDictionary/MissingRequiredFieldException.cs +++ b/QuickFIXn/DataDictionary/MissingRequiredFieldException.cs @@ -7,18 +7,22 @@ namespace QuickFix { + [Obsolete("This class will be removed in a future release (because it's unused)")] public sealed class MissingRequiredFieldException : ApplicationException { + [Obsolete("This class will be removed in a future release (because it's unused)")] public MissingRequiredFieldException() { } + + [Obsolete("This class will be removed in a future release (because it's unused)")] public MissingRequiredFieldException(int field) : base("Missing required field: " + field.ToString()) { } + + [Obsolete("This class will be removed in a future release (because it's unused)")] public MissingRequiredFieldException(string message) : base(message) { } + + [Obsolete("This class will be removed in a future release (because it's unused)")] public MissingRequiredFieldException(string message, System.Exception inner) : base(message, inner) { } - protected MissingRequiredFieldException( - System.Runtime.Serialization.SerializationInfo info, - System.Runtime.Serialization.StreamingContext context) - : base(info, context) { } } } diff --git a/QuickFIXn/Exceptions.cs b/QuickFIXn/Exceptions.cs index 418c45f8b..1ef0881f0 100755 --- a/QuickFIXn/Exceptions.cs +++ b/QuickFIXn/Exceptions.cs @@ -1,5 +1,4 @@ - -using System; +using System; namespace QuickFix { @@ -16,10 +15,6 @@ public QuickFIXException(string msg) public QuickFIXException(string msg, System.Exception innerException) : base(msg, innerException) { } - - public QuickFIXException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) - : base(info, context) - { } } /// @@ -109,10 +104,6 @@ public InvalidMessage(string msg) public InvalidMessage(string msg, System.Exception innerException) : base("Invalid message: " + msg, innerException) { } - - public InvalidMessage(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) - : base(info, context) - { } } /// diff --git a/QuickFIXn/Message/FieldNotFoundException.cs b/QuickFIXn/Message/FieldNotFoundException.cs index da8f86c0a..5e653654c 100644 --- a/QuickFIXn/Message/FieldNotFoundException.cs +++ b/QuickFIXn/Message/FieldNotFoundException.cs @@ -24,11 +24,5 @@ public FieldNotFoundException(string message) public FieldNotFoundException(string message, System.Exception inner) : base(message, inner) { Field = -1; } - - protected FieldNotFoundException( - System.Runtime.Serialization.SerializationInfo info, - System.Runtime.Serialization.StreamingContext context) - : base(info, context) - { } } } diff --git a/QuickFIXn/QuickFix.csproj b/QuickFIXn/QuickFix.csproj index 18bde12c8..225d010ff 100644 --- a/QuickFIXn/QuickFix.csproj +++ b/QuickFIXn/QuickFix.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 QuickFIX/n true true diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index cb3f9f114..921d5cab0 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -9,13 +9,16 @@ What's New ---------- **CAUTION:** +* **1.13.0 has moved to .NET 8 (as Microsoft is ending .NET 6 support on Nov 12, 2024) +* **There are breaking changes between 1.12 and 1.13! Please review the 1.12.0 notes below.** * **There are breaking changes between 1.11 and 1.12! Please review the 1.12.0 notes below.** * **There are breaking changes between 1.10 and 1.11! Please review the 1.11.0 notes below.** -### (next release) +### upcoming v1.13.0 **Breaking changes** +* #883 - Moved to .NET 8 * #878 - corrections to tag 45 "Side" in various DDs (gbirchmeier) - most people won't notice, easy fix if they do * fix typo in FIX50 and FIX50SP1: `CROSS_SHORT_EXXMPT` fixed to `CROSS_SHORT_EXEMPT` * correction in FIX41 and FIX42: `D` to `UNDISCLOSED` diff --git a/UnitTests/SessionScheduleTests.cs b/UnitTests/SessionScheduleTests.cs index fd1d52441..953b1b320 100755 --- a/UnitTests/SessionScheduleTests.cs +++ b/UnitTests/SessionScheduleTests.cs @@ -19,7 +19,7 @@ private static string EasternStandardTimeZoneId { return TimeZoneInfo.GetSystemTimeZones().Any(x => x.Id == "Eastern Standard Time") ? "Eastern Standard Time" - : "US/Eastern"; + : "America/New_York"; } } @@ -33,7 +33,7 @@ private static string PacificStandardTimeZoneId { return TimeZoneInfo.GetSystemTimeZones().Any(x => x.Id == "Pacific Standard Time") ? "Pacific Standard Time" - : "US/Pacific"; + : "America/Los_Angeles"; } } #endregion @@ -75,7 +75,8 @@ public void TestCtor_WeeklongSession() } [Test] - public void TestCtor_WeekdaysSession() { + public void TestCtor_WeekdaysSession() + { SettingsDictionary settings = new SettingsDictionary(); settings.SetString(SessionSettings.WEEKDAYS, "Sun,Tue,Fri"); @@ -92,7 +93,8 @@ public void TestCtor_WeekdaysSession() { } [Test] - public void TestCtor_NonStopSession() { + public void TestCtor_NonStopSession() + { SettingsDictionary settings = new SettingsDictionary(); settings.SetBool(SessionSettings.NON_STOP_SESSION, true); Assert.DoesNotThrow(delegate { new SessionSchedule(settings); }); @@ -133,7 +135,7 @@ public void TestWeeklySessionSameDayAllWeek() settings.SetDay(SessionSettings.START_DAY, DayOfWeek.Monday); settings.SetDay(SessionSettings.END_DAY, DayOfWeek.Monday); SessionSchedule sched = new SessionSchedule(settings); - + //a sunday Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 16, 9, 43, 0, DateTimeKind.Utc))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 16, 23, 59, 59, DateTimeKind.Utc))); @@ -159,7 +161,7 @@ public void TestWeeklySessionSameDayMostWeek() settings.SetDay(SessionSettings.START_DAY, DayOfWeek.Monday); settings.SetDay(SessionSettings.END_DAY, DayOfWeek.Monday); SessionSchedule sched = new SessionSchedule(settings); - + //a sunday Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 16, 23, 59, 59, DateTimeKind.Utc))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 16, 0, 0, 0, DateTimeKind.Utc))); @@ -184,7 +186,7 @@ public void TestWeeklySessionSameDayOneDay() settings.SetDay(SessionSettings.START_DAY, DayOfWeek.Monday); settings.SetDay(SessionSettings.END_DAY, DayOfWeek.Monday); SessionSchedule sched = new SessionSchedule(settings); - + //a sunday Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 16, 23, 59, 59, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 16, 0, 0, 0, DateTimeKind.Utc))); @@ -310,7 +312,7 @@ public void TestWeeklySessionMultiDayHoursOverlap() Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 22, 7, 00, 1, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 22, 15, 30, 0, DateTimeKind.Utc))); } - + [Test] public void TestDailyIsSessionTime() @@ -355,7 +357,7 @@ public void TestInvalidTimeZone() settings.SetString(SessionSettings.END_TIME, "00:12:00"); settings.SetString(SessionSettings.TIME_ZONE, "Doh"); - Assert.Throws(typeof (TimeZoneNotFoundException), delegate { new SessionSchedule(settings); }); + Assert.Throws(typeof(TimeZoneNotFoundException), delegate { new SessionSchedule(settings); }); } [Test] @@ -368,7 +370,7 @@ public void TestLocalTimeTimeZoneConflict() settings.SetString(SessionSettings.USE_LOCAL_TIME, "Y"); settings.SetString(SessionSettings.TIME_ZONE, EasternStandardTimeZoneId); - Assert.Throws(typeof (ConfigError), delegate { new SessionSchedule(settings); }); + Assert.Throws(typeof(ConfigError), delegate { new SessionSchedule(settings); }); } [Test] diff --git a/UnitTests/UnitTests.csproj b/UnitTests/UnitTests.csproj index aac123fba..4a8333010 100644 --- a/UnitTests/UnitTests.csproj +++ b/UnitTests/UnitTests.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 true AnyCPU;x64 false diff --git a/scripts/Build-Zip-Release.ps1 b/scripts/Build-Zip-Release.ps1 index 9fd83af82..7d0d7ef05 100644 --- a/scripts/Build-Zip-Release.ps1 +++ b/scripts/Build-Zip-Release.ps1 @@ -14,6 +14,8 @@ Param ( ) $ErrorActionPreference = "Stop" +$dotNetVer = 'net8.0' + $rootPath = Join-Path $PSScriptRoot '..' | Resolve-Path $zipContentPath = Join-Path $rootPath 'tmp' 'zip' "quickfixn-$NewVersion" $zipOutPath = Join-Path $rootPath 'tmp' 'zip' "quickfixn-$NewVersion.zip" @@ -37,7 +39,7 @@ if (Test-Path $zipContentPath) { @( "bin" - "bin\net6.0" + "bin\$dotNetVer" "spec" "spec\fix" "config" @@ -47,18 +49,18 @@ if (Test-Path $zipContentPath) { } @( - 'QuickFIXn\bin\Release\net6.0\QuickFix.dll', - 'Messages\FIXT11\bin\Release\net6.0\QuickFix.FIXT11.dll', - 'Messages\FIX40\bin\Release\net6.0\QuickFix.FIX40.dll', - 'Messages\FIX41\bin\Release\net6.0\QuickFix.FIX41.dll', - 'Messages\FIX42\bin\Release\net6.0\QuickFix.FIX42.dll', - 'Messages\FIX43\bin\Release\net6.0\QuickFix.FIX43.dll', - 'Messages\FIX44\bin\Release\net6.0\QuickFix.FIX44.dll', - 'Messages\FIX50\bin\Release\net6.0\QuickFix.FIX50.dll', - 'Messages\FIX50SP1\bin\Release\net6.0\QuickFix.FIX50SP1.dll', - 'Messages\FIX50SP2\bin\Release\net6.0\QuickFix.FIX50SP2.dll' + "QuickFIXn\bin\Release\$dotNetVer\QuickFix.dll", + "Messages\FIXT11\bin\Release\$dotNetVer\QuickFix.FIXT11.dll", + "Messages\FIX40\bin\Release\$dotNetVer\QuickFix.FIX40.dll", + "Messages\FIX41\bin\Release\$dotNetVer\QuickFix.FIX41.dll", + "Messages\FIX42\bin\Release\$dotNetVer\QuickFix.FIX42.dll", + "Messages\FIX43\bin\Release\$dotNetVer\QuickFix.FIX43.dll", + "Messages\FIX44\bin\Release\$dotNetVer\QuickFix.FIX44.dll", + "Messages\FIX50\bin\Release\$dotNetVer\QuickFix.FIX50.dll", + "Messages\FIX50SP1\bin\Release\$dotNetVer\QuickFix.FIX50SP1.dll", + "Messages\FIX50SP2\bin\Release\$dotNetVer\QuickFix.FIX50SP2.dll" ) | ForEach-Object { - $toPath = Join-Path $zipContentPath 'bin' 'net6.0' + $toPath = Join-Path $zipContentPath 'bin' $dotNetVer $dllPath = Join-Path $rootPath $_ | Resolve-Path Copy-Item $_ -Destination $toPath