diff --git a/devdocs/deploy.md b/devdocs/deploy.md index be7819ec..7a0dd206 100644 --- a/devdocs/deploy.md +++ b/devdocs/deploy.md @@ -6,14 +6,14 @@ If any packages have been changed in the release do a thorough security scan and ### Bump version numbers: -Search and replace 8.0.0 -webapp,server,launcher, v8migrate +Search and replace 8.0.1 +webapp,server,launcher, v8migrate (don't change v8migrate unless it has it's own code changes, it's version should be it's own thing other than major release changes etc) Client end ayanova-version.js, -Server end ayanova-version.cs -The TWO windows installers are versioned +Server end ayanova-version.cs AND AyaNova.csproj +The TWO windows installers are versioned (LAN.ISS and STANDALONE.ISS) RavenLauncher "single" Launcher is also versioned and needs to be changed individually -Docs index.md file is also versioned +Docs are not versioned but dated in mkdocs.yml copyright property so if that needs to change be sure it's udpated #MyAppVersion in C:\data\code\raven\dist\install\windows\x64\lan.iss #MyAppVersion in C:\data\code\raven\dist\install\windows\x64\standalone.iss diff --git a/devdocs/todo.txt b/devdocs/todo.txt index d0ff4ec3..d7027ed3 100644 --- a/devdocs/todo.txt +++ b/devdocs/todo.txt @@ -7,17 +7,6 @@ LICENSE STUFF -Updates: - Test that can't upgrade to newer release if support and updates not current!!!! - it should also have some license route fetch prevention i.e. license has updates end date so server won't send if expired? Or something along those lines?? - Or maybe that would be bad if they downgrade and want to put back in the license they paid for (restore from backup?) - -Update scenarios to handle - boot with newer version than licensed and no db at all - in this case it's ok to do the schema update and install the fresh empty db then fetch the license - LICENSE FETCH SHOULD COMPARE DATES BEFORE INSTALLING A FETCHED LICENSE AND BALK IF MISMATCH - Boot with newer version and have existing db with outdated schema - TODO: it should check the license version *before* the schema update in order to not break anything todo: RELEASE FINAL RELEASE @@ -28,8 +17,8 @@ todo: RELEASE FINAL RELEASE test carefully once done reversion everything to 8.0.1 for official release Post in /next download folder for testing before posting fully Re-run the smoke tests and e2e tests before posting 8.0.1 officially - todo: test on every platform every installer and be certain they work as advertised, yes this is a pain but it's necessary - + *** todo: test on every platform every installer and be certain they work as advertised, yes this is a pain but it's necessary + Once all platforms pass all tests then and only then move to regular download folder and post about it on forum post @@ -1148,7 +1137,7 @@ https://www.ayanova.com/download/next/ayanova-linux-x64-server.zip https://www.ayanova.com/download/next/ayanova-windows-x64-lan-setup.exe Current v8 docs home: https://www.ayanova.com/docs/next -BUILD 8.0.0 rc2 CHANGES OF NOTE +BUILD 8.0.1 rc2 CHANGES OF NOTE Added integration back end feature for integration of external applications with AyaNova 8 Added front end administrative UI for viewing and controlling integrated applications and their logs diff --git a/dist/install/windows/x64/lan.iss b/dist/install/windows/x64/lan.iss index 2e96da79..5c6b133e 100644 --- a/dist/install/windows/x64/lan.iss +++ b/dist/install/windows/x64/lan.iss @@ -1,7 +1,7 @@ ; LAN install for internal network use only #define MyAppName "AyaNova server" -#define MyAppVersion "8.0.0" +#define MyAppVersion "8.0.1" #define MyAppPublisher "Ground Zero Tech-Works, Inc." #define MyAppURL "https://ayanova.com/" #define MyAppLauncherExeName "ayanova-launcher.exe" diff --git a/dist/install/windows/x64/standalone.iss b/dist/install/windows/x64/standalone.iss index b2821ecf..3884a43d 100644 --- a/dist/install/windows/x64/standalone.iss +++ b/dist/install/windows/x64/standalone.iss @@ -3,7 +3,7 @@ ; external to lan requires different config #define MyAppName "AyaNova" -#define MyAppVersion "8.0.0" +#define MyAppVersion "8.0.1" #define MyAppPublisher "Ground Zero Tech-Works, Inc." #define MyAppURL "https://ayanova.com/" #define MyAppLauncherExeName "ayanova-launcher.exe" diff --git a/server/AyaNova/AyaNova.csproj b/server/AyaNova/AyaNova.csproj index 0643e1c4..8a4a3580 100644 --- a/server/AyaNova/AyaNova.csproj +++ b/server/AyaNova/AyaNova.csproj @@ -4,8 +4,8 @@ true - 8.0.0 - 8.0.0.0 + 8.0.1 + 8.0.1.0 ayanova.ico bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml 1591 diff --git a/server/AyaNova/Program.cs b/server/AyaNova/Program.cs index 84845048..90d7c509 100644 --- a/server/AyaNova/Program.cs +++ b/server/AyaNova/Program.cs @@ -209,8 +209,7 @@ namespace AyaNova #if (DEBUG) - logger.Info($"### Linker timestamp is {Util.FileUtil.GetLinkerTimestampUtc(System.Reflection.Assembly.GetExecutingAssembly())}"); - + logger.Info($"### DEBUG ONLY - Linker timestamp is {Util.FileUtil.GetLinkerTimestampUtc(System.Reflection.Assembly.GetExecutingAssembly())}"); #endif //log configuration diff --git a/server/AyaNova/Startup.cs b/server/AyaNova/Startup.cs index 0c451376..493b21aa 100644 --- a/server/AyaNova/Startup.cs +++ b/server/AyaNova/Startup.cs @@ -599,32 +599,33 @@ namespace AyaNova //if there is a build date issue or a license issue it will fail with an exception, log to log file, log to console and not go beyond the license check preserving the db //Note: case 4160 is to build an external license fetcher utility to allow a user to upgrade without uninstalling the newer version by purchasing a new sub and installing the key out of AyaNova //If they don't want to purchase then they must downgrade - var tempSchema = dbContext.SchemaVersion.AsNoTracking().SingleOrDefault(); - var tempLicense = dbContext.License.AsNoTracking().SingleOrDefault(); bool licenseChecked = false; - if (tempSchema != null && tempLicense != null && !string.IsNullOrWhiteSpace(tempSchema.Id)) + try { - //we have a schema and a license, check it now thus triggering build date vs maintenance expiry check - try + //NOTE: a completely missing db will trigger an exception on this line, we expect that and will be fine as the schema check will run below and create the tables required + var tempSchema = dbContext.SchemaVersion.AsNoTracking().SingleOrDefault(); + var tempLicense = dbContext.License.AsNoTracking().SingleOrDefault(); + + if (tempSchema != null && tempLicense != null && !string.IsNullOrWhiteSpace(tempSchema.Id)) { + //we have a schema and a license, check it now thus triggering build date vs maintenance expiry check + AyaNova.Core.License.InitializeAsync(apiServerState, dbContext, _newLog).Wait(); licenseChecked = true; } - catch (Exception ex) + } + catch (Exception ex) + { + //Only re-throw if it's a 1020 error with the text VERSION-TOO-NEW included, any other error allow it to keep doing it's thing below before the second license init + //our exception is buried inside multiple inner exceptions but it's the innermost so drill down into it + while (ex.InnerException != null) + ex = ex.InnerException; + if (ex.Message.Contains("1020") && ex.Message.Contains("VERSION-TOO-NEW ")) { - //Only re-throw if it's a 1020 error with the text VERSION-TOO-NEW included, any other error allow it to keep doing it's thing below before the second license init - //our exception is buried inside multiple inner exceptions but it's the innermost so drill down into it - while (ex.InnerException != null) - ex = ex.InnerException; - if (ex.Message.Contains("1020") && ex.Message.Contains("VERSION-TOO-NEW ")) - { - throw new Exception("AyaNova did not start to protect the integrity of your data, see the console and / or error log for details"); - } + throw new Exception("AyaNova did not start to protect the integrity of your data, see the console and / or error log for details"); } } - - //Check schema _newLog.LogDebug("DB schema check"); AySchema.CheckAndUpdateAsync(dbContext, _newLog).Wait(); diff --git a/server/AyaNova/util/AyaNovaVersion.cs b/server/AyaNova/util/AyaNovaVersion.cs index 28be6df4..9317c26d 100644 --- a/server/AyaNova/util/AyaNovaVersion.cs +++ b/server/AyaNova/util/AyaNovaVersion.cs @@ -5,7 +5,7 @@ namespace AyaNova.Util /// internal static class AyaNovaVersion { - public const string VersionString = "8.0.0"; + public const string VersionString = "8.0.1"; public const string FullNameAndVersion = "AyaNova server " + VersionString; public const string CurrentApiVersion="v8"; }//eoc