From eff71d9b3ff0ba42092fd53351b6a4eaeda320d3 Mon Sep 17 00:00:00 2001 From: Caelan Sayler Date: Sun, 31 Dec 2023 10:59:34 +0000 Subject: [PATCH] Rename to Velopack --- .github/workflows/build.yml | 12 +- LICENSE | 1 - README.md | 206 +----------------- ...rrel.entitlements => Velopack.entitlements | 0 Squirrel.sln => Velopack.sln | 22 +- Squirrel.snk => Velopack.snk | Bin docs-v3/building.md | 69 ------ docs-v3/readme.md | 59 ----- docs-v3/troubleshooting.md | 0 docs/artwork/Clowd_200.png | Bin 7006 -> 0 bytes docs/artwork/Squirrel-Clowd-Logo.png | Bin 13716 -> 0 bytes .../artwork/Squirrel-Logo-Square-On-Black.png | Bin 3405 -> 0 bytes docs/artwork/Squirrel-Logo-Square.png | Bin 6662 -> 0 bytes docs/artwork/Squirrel-Logo.png | Bin 26595 -> 0 bytes docs/artwork/Squirrel-Logo.svg | 201 ----------------- docs/contributing/branching-strategy.md | 28 --- docs/contributing/building-squirrel.md | 23 -- docs/contributing/contributing.md | 20 -- docs/contributing/vs-solution-overview.md | 29 --- docs/faq.md | 73 ------- docs/getting-started/0-overview.md | 34 --- docs/getting-started/1-integrating.md | 62 ------ docs/getting-started/2-packaging.md | 80 ------- docs/getting-started/3-distributing.md | 22 -- docs/getting-started/4-installing.md | 31 --- docs/getting-started/5-updating.md | 99 --------- docs/getting-started/example/MyApp.zip | Bin 8918 -> 0 bytes .../images/1-MyApp-Solution.png | Bin 12905 -> 0 bytes docs/getting-started/images/1-MyApp.png | Bin 18346 -> 0 bytes .../images/1.1-post-package-install.png | Bin 10228 -> 0 bytes .../images/1.2-nuget-package-explorer.png | Bin 86701 -> 0 bytes .../images/1.2-releases-directory.png | Bin 11996 -> 0 bytes .../images/1.3-local-app-data-dir.png | Bin 51050 -> 0 bytes docs/getting-started/images/1.5-MyApp.png | Bin 19076 -> 0 bytes .../images/1.5-local-app-data-dir.png | Bin 92781 -> 0 bytes .../images/1.5-releases-directory.png | Bin 14043 -> 0 bytes docs/goals.md | 46 ---- docs/readme.md | 63 ------ docs/using/amazon-s3.md | 34 --- docs/using/application-signing.md | 41 ---- docs/using/custom-squirrel-events-non-cs.md | 45 ---- docs/using/custom-squirrel-events.md | 62 ------ docs/using/debugging-installs.md | 22 -- docs/using/debugging-updates.md | 42 ---- docs/using/delta-packages.md | 34 --- docs/using/github.md | 79 ------- docs/using/images/debugging-update-dir.png | Bin 15425 -> 0 bytes docs/using/images/naming-releases.png | Bin 20359 -> 0 bytes docs/using/images/uninstall-app.png | Bin 27235 -> 0 bytes docs/using/install-process.md | 74 ------- docs/using/loading-gif.md | 20 -- docs/using/machine-wide-installs.md | 36 --- docs/using/microsoft-iis.md | 34 --- docs/using/naming.md | 45 ---- docs/using/nuget-package-metadata.md | 27 --- docs/using/octopack.md | 33 --- docs/using/packaging-tools.md | 26 --- docs/using/squirrel-command-line.md | 47 ---- docs/using/staged-rollouts.md | 50 ----- docs/using/teamcity.md | 22 -- docs/using/update-manager.md | 57 ----- docs/using/update-process.md | 29 --- docs/using/visual-studio-packaging.md | 69 ------ docs/using/x-doc-template.md | 26 --- squirrel.ico | Bin 140206 -> 0 bytes src/Directory.Build.props | 10 +- src/Rust/.vscode/launch.json | 8 +- src/Rust/Cargo.lock | 177 +++++++-------- src/Rust/Cargo.toml | 2 +- src/Rust/build.rs | 6 +- src/Rust/src/commands/apply.rs | 2 +- src/Rust/src/commands/patch.rs | 1 - src/Rust/src/setup.rs | 8 +- src/Rust/src/shared/bundle.rs | 38 ++-- src/Rust/src/stub.rs | 2 +- src/Rust/src/update.rs | 6 +- src/Rust/src/windows/splash.rs | 2 +- src/Rust/src/windows/util.rs | 2 +- .../GitHubRepository.cs | 0 .../S3Repository.cs | 0 .../SimpleWebRepository.cs | 0 .../Velopack.Deployment.csproj} | 2 +- .../AppInfo.cs | 0 .../Commands/OsxBundleCommandRunner.cs | 0 .../Commands/OsxBundleOptions.cs | 0 .../Commands/OsxReleasifyCommandRunner.cs | 0 .../Commands/OsxReleasifyOptions.cs | 0 .../HelperExe.cs | 0 .../PListParser.cs | 0 .../PlistWriter.cs | 0 .../Properties/AssemblyInfo.cs | 0 .../StructureBuilder.cs | 0 .../Velopack.Packaging.OSX.csproj} | 2 +- .../AuthenticodeTools.cs | 0 .../Commands/WindowsPackCommandRunner.cs | 0 .../Commands/WindowsPackOptions.cs | 0 .../Commands/WindowsReleasifyCommandRunner.cs | 0 .../Commands/WindowsReleasifyOptions.cs | 0 .../Commands/WindowsSigningOptions.cs | 0 .../HelperExe.cs | 0 .../HostModel/AppHost/AppHostExceptions.cs | 0 .../HostModel/AppHost/BinaryUtils.cs | 0 .../HostModel/AppHost/ElfUtils.cs | 0 .../HostModel/AppHost/HResultException.cs | 0 .../HostModel/AppHost/HostWriter.cs | 0 .../HostModel/AppHost/MachOFormatError.cs | 0 .../HostModel/AppHost/MachOUtils.cs | 0 .../HostModel/AppHost/PEUtils.cs | 0 .../PlaceHolderNotFoundInAppHostException.cs | 0 .../HostModel/AppHost/RetryUtil.cs | 0 .../HostModel/Bundle/BundleOptions.cs | 0 .../HostModel/Bundle/Bundler.cs | 0 .../HostModel/Bundle/FileEntry.cs | 0 .../HostModel/Bundle/FileSpec.cs | 0 .../HostModel/Bundle/FileType.cs | 0 .../HostModel/Bundle/Manifest.cs | 0 .../HostModel/Bundle/TargetInfo.cs | 0 .../HostModel/Bundle/Trace.cs | 0 .../HostModel/HostModelUtils.cs | 0 .../HostModel/README.md | 0 .../HostModel/ResourceUpdater.Squirrel.cs | 0 .../HostModel/ResourceUpdater.cs | 0 .../SetupBundle.cs | 0 .../Velopack.Packaging.Windows.csproj} | 2 +- .../Commands/DeltaGenCommandRunner.cs | 0 .../Commands/DeltaGenOptions.cs | 0 .../Commands/DeltaPatchCommandRunner.cs | 0 .../Commands/DeltaPatchOptions.cs | 0 .../DeltaPackageBuilder.cs | 0 .../HelperFile.cs | 0 .../ICommand.cs | 0 .../MarkdownSharp.cs | 0 .../NugetConsole.cs | 0 .../NugetLoggingWrapper.cs | 0 .../ProcessFailedException.cs | 0 .../ReleasePackageBuilder.cs | 0 .../Velopack.Packaging.csproj} | 2 +- .../Commands/DeltaGenCommand.cs | 0 .../Commands/DeltaPatchCommand.cs | 0 .../Commands/GitHubBaseCommand.cs | 0 .../Commands/GitHubDownloadCommand.cs | 0 .../Commands/GitHubUploadCommand.cs | 0 .../Commands/HttpDownloadCommand.cs | 0 .../Commands/OsxBundleCommand.cs | 0 .../Commands/OsxReleasifyCommand.cs | 0 .../Commands/S3BaseCommand.cs | 0 .../Commands/S3DownloadCommand.cs | 0 .../Commands/S3UploadCommand.cs | 0 .../Commands/SystemCommandLineExtensions.cs | 0 .../Commands/WindowsPackCommand.cs | 0 .../Commands/WindowsReleasifyCommand.cs | 0 .../Commands/WindowsSigningCommand.cs | 0 .../Commands/_BaseCommand.cs | 0 .../Commands/_OutputCommand.cs | 0 .../Commands/_PlatformCommand.cs | 0 .../Compat/EmbeddedRunner.cs | 0 .../Compat/ICommandRunner.cs | 0 .../Compat/RunnerFactory.cs | 0 .../Compat/SquirrelVersionLocator.cs | 0 .../Compat/V2CompatRunner.cs | 0 .../GlobalUsings.cs | 0 src/{Squirrel.Csq => Velopack.Vpk}/Program.cs | 0 .../Updates/NugetDownloader.cs | 0 .../Updates/NullNugetLogger.cs | 0 .../Updates/UpdateChecker.cs | 0 .../Velopack.Vpk.csproj} | 26 +-- .../Compression/BZip2Stream.cs | 0 .../Compression/BinaryPatchUtility.cs | 0 .../Compression/ChecksumFailedException.cs | 0 .../Compression/DeltaPackage.cs | 0 .../Compression/EasyZip.cs | 0 .../Compression/MsDeltaCompression.cs | 0 .../Internal/Disposable.cs | 0 .../Internal/EnumerableExtensions.cs | 0 .../Internal/LoggerExtensions.cs | 0 .../Internal/ProcessExtensions.cs | 0 .../Internal/SimpleJson.cs | 0 .../Internal/Utility.cs | 0 .../Locators/ISquirrelLocator.cs | 0 .../Locators/OsxSquirrelLocator.cs | 0 .../Locators/SquirrelLocator.cs | 0 .../Locators/TestSquirrelLocator.cs | 0 .../Locators/WindowsSquirrelLocator.cs | 0 .../NuGet/ContentType.cs | 0 src/{Squirrel => Velopack}/NuGet/IPackage.cs | 0 .../NuGet/IPackageFile.cs | 0 .../NuGet/IZipPackage.cs | 0 src/{Squirrel => Velopack}/NuGet/NugetUtil.cs | 0 .../NuGet/NuspecManifest.cs | 0 .../NuGet/PackageDependency.cs | 0 .../NuGet/ZipPackage.cs | 0 .../NuGet/ZipPackageFile.cs | 0 .../Properties/AssemblyInfo.cs | 16 +- src/{Squirrel => Velopack}/RID.cs | 0 src/{Squirrel => Velopack}/ReleaseEntry.cs | 0 .../ReleaseEntryName.cs | 0 .../Sources/GithubSource.cs | 0 .../Sources/GitlabSource.cs | 0 .../Sources/HttpClientFileDownloader.cs | 0 .../Sources/IFileDownloader.cs | 0 .../Sources/IUpdateSource.cs | 0 .../Sources/SimpleFileSource.cs | 0 .../Sources/SimpleWebSource.cs | 0 .../Sources/SourceBase.cs | 0 src/{Squirrel => Velopack}/SquirrelApp.cs | 0 .../SquirrelRuntimeInfo.cs | 0 src/{Squirrel => Velopack}/UpdateInfo.cs | 0 src/{Squirrel => Velopack}/UpdateManager.cs | 2 +- .../Velopack.csproj} | 14 +- .../Windows/RuntimeInfo.cs | 0 .../Windows/Runtimes.cs | 0 .../Windows/ShellLink.cs | 0 .../Windows/Shortcuts.cs | 0 test/Directory.Build.props | 6 +- test/TestApp/TestApp.csproj | 2 +- .../BaseCommandTests.cs | 0 .../Commands/GitHubCommandTests.cs | 0 .../Commands/HttpDownloadCommandTests.cs | 0 .../Commands/OsxCommandTests.cs | 0 .../Commands/S3CommandTests.cs | 0 .../Commands/WindowsCommandTests.cs | 0 .../TempFileTestBase.cs | 0 .../Velopack.CommandLine.Tests.csproj} | 2 +- .../WindowsOnlyFact.cs | 0 .../WindowsOnlyTheoryAttribute.cs | 0 .../DeltaPackageTests.cs | 0 .../Init.cs | 0 .../Properties/AssemblyInfo.cs | 0 .../ReleasePackageTests.cs | 0 .../Velopack.Packaging.Tests.csproj} | 2 +- .../WindowsPackTests.cs | 0 .../ContentTypeTests.cs | 0 .../OldSquirrel/ReleaseEntry.cs | 0 .../OldSquirrel/ReleaseExtensions.cs | 0 .../OldSquirrel/SemanticVersion.cs | 0 .../OldSquirrel/Utility.cs | 0 .../ReleaseEntryTests.cs | 0 .../RuntimeTests.cs | 0 .../TestHelpers/AssertExtensions.cs | 0 .../TestHelpers/ExposedClass.cs | 0 .../TestHelpers/ExposedObject.cs | 0 .../TestHelpers/ExposedObjectHelper.cs | 0 .../TestHelpers/FakeDownloader.cs | 0 .../TestHelpers/FakeFixtureRepository.cs | 0 .../TestHelpers/StaticHttpServer.cs | 0 .../UpdateManager/ApplyReleasesTests.cs | 0 .../UpdateManager/CheckForUpdateTests.cs | 0 .../UpdateManager/DownloadReleasesTests.cs | 0 .../UpdateManager/UpdateManagerTests.cs | 0 .../UpdateManagerTests.cs | 0 .../UtilityTests.cs | 0 .../Velopack.Tests.csproj} | 2 +- .../ZipPackageTests.cs | 0 vendor/THIRD_PARTY_NOTICES.md | 2 +- version.json | 2 +- 255 files changed, 190 insertions(+), 2292 deletions(-) rename Squirrel.entitlements => Velopack.entitlements (100%) rename Squirrel.sln => Velopack.sln (84%) rename Squirrel.snk => Velopack.snk (100%) delete mode 100644 docs-v3/building.md delete mode 100644 docs-v3/readme.md delete mode 100644 docs-v3/troubleshooting.md delete mode 100644 docs/artwork/Clowd_200.png delete mode 100644 docs/artwork/Squirrel-Clowd-Logo.png delete mode 100644 docs/artwork/Squirrel-Logo-Square-On-Black.png delete mode 100644 docs/artwork/Squirrel-Logo-Square.png delete mode 100644 docs/artwork/Squirrel-Logo.png delete mode 100644 docs/artwork/Squirrel-Logo.svg delete mode 100644 docs/contributing/branching-strategy.md delete mode 100644 docs/contributing/building-squirrel.md delete mode 100644 docs/contributing/contributing.md delete mode 100644 docs/contributing/vs-solution-overview.md delete mode 100644 docs/faq.md delete mode 100644 docs/getting-started/0-overview.md delete mode 100644 docs/getting-started/1-integrating.md delete mode 100644 docs/getting-started/2-packaging.md delete mode 100644 docs/getting-started/3-distributing.md delete mode 100644 docs/getting-started/4-installing.md delete mode 100644 docs/getting-started/5-updating.md delete mode 100644 docs/getting-started/example/MyApp.zip delete mode 100644 docs/getting-started/images/1-MyApp-Solution.png delete mode 100644 docs/getting-started/images/1-MyApp.png delete mode 100644 docs/getting-started/images/1.1-post-package-install.png delete mode 100644 docs/getting-started/images/1.2-nuget-package-explorer.png delete mode 100644 docs/getting-started/images/1.2-releases-directory.png delete mode 100644 docs/getting-started/images/1.3-local-app-data-dir.png delete mode 100644 docs/getting-started/images/1.5-MyApp.png delete mode 100644 docs/getting-started/images/1.5-local-app-data-dir.png delete mode 100644 docs/getting-started/images/1.5-releases-directory.png delete mode 100644 docs/goals.md delete mode 100644 docs/readme.md delete mode 100644 docs/using/amazon-s3.md delete mode 100644 docs/using/application-signing.md delete mode 100644 docs/using/custom-squirrel-events-non-cs.md delete mode 100644 docs/using/custom-squirrel-events.md delete mode 100644 docs/using/debugging-installs.md delete mode 100644 docs/using/debugging-updates.md delete mode 100644 docs/using/delta-packages.md delete mode 100644 docs/using/github.md delete mode 100644 docs/using/images/debugging-update-dir.png delete mode 100644 docs/using/images/naming-releases.png delete mode 100644 docs/using/images/uninstall-app.png delete mode 100644 docs/using/install-process.md delete mode 100644 docs/using/loading-gif.md delete mode 100644 docs/using/machine-wide-installs.md delete mode 100644 docs/using/microsoft-iis.md delete mode 100644 docs/using/naming.md delete mode 100644 docs/using/nuget-package-metadata.md delete mode 100644 docs/using/octopack.md delete mode 100644 docs/using/packaging-tools.md delete mode 100644 docs/using/squirrel-command-line.md delete mode 100644 docs/using/staged-rollouts.md delete mode 100644 docs/using/teamcity.md delete mode 100644 docs/using/update-manager.md delete mode 100644 docs/using/update-process.md delete mode 100644 docs/using/visual-studio-packaging.md delete mode 100644 docs/using/x-doc-template.md delete mode 100644 squirrel.ico rename src/{Squirrel.Deployment => Velopack.Deployment}/GitHubRepository.cs (100%) rename src/{Squirrel.Deployment => Velopack.Deployment}/S3Repository.cs (100%) rename src/{Squirrel.Deployment => Velopack.Deployment}/SimpleWebRepository.cs (100%) rename src/{Squirrel.Deployment/Squirrel.Deployment.csproj => Velopack.Deployment/Velopack.Deployment.csproj} (89%) rename src/{Squirrel.Packaging.OSX => Velopack.Packaging.OSX}/AppInfo.cs (100%) rename src/{Squirrel.Packaging.OSX => Velopack.Packaging.OSX}/Commands/OsxBundleCommandRunner.cs (100%) rename src/{Squirrel.Packaging.OSX => Velopack.Packaging.OSX}/Commands/OsxBundleOptions.cs (100%) rename src/{Squirrel.Packaging.OSX => Velopack.Packaging.OSX}/Commands/OsxReleasifyCommandRunner.cs (100%) rename src/{Squirrel.Packaging.OSX => Velopack.Packaging.OSX}/Commands/OsxReleasifyOptions.cs (100%) rename src/{Squirrel.Packaging.OSX => Velopack.Packaging.OSX}/HelperExe.cs (100%) rename src/{Squirrel.Packaging.OSX => Velopack.Packaging.OSX}/PListParser.cs (100%) rename src/{Squirrel.Packaging.OSX => Velopack.Packaging.OSX}/PlistWriter.cs (100%) rename src/{Squirrel.Packaging.OSX => Velopack.Packaging.OSX}/Properties/AssemblyInfo.cs (100%) rename src/{Squirrel.Packaging.OSX => Velopack.Packaging.OSX}/StructureBuilder.cs (100%) rename src/{Squirrel.Packaging.OSX/Squirrel.Packaging.OSX.csproj => Velopack.Packaging.OSX/Velopack.Packaging.OSX.csproj} (80%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/AuthenticodeTools.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/Commands/WindowsPackCommandRunner.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/Commands/WindowsPackOptions.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/Commands/WindowsReleasifyCommandRunner.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/Commands/WindowsReleasifyOptions.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/Commands/WindowsSigningOptions.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HelperExe.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/AppHost/AppHostExceptions.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/AppHost/BinaryUtils.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/AppHost/ElfUtils.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/AppHost/HResultException.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/AppHost/HostWriter.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/AppHost/MachOFormatError.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/AppHost/MachOUtils.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/AppHost/PEUtils.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/AppHost/PlaceHolderNotFoundInAppHostException.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/AppHost/RetryUtil.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/Bundle/BundleOptions.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/Bundle/Bundler.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/Bundle/FileEntry.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/Bundle/FileSpec.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/Bundle/FileType.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/Bundle/Manifest.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/Bundle/TargetInfo.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/Bundle/Trace.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/HostModelUtils.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/README.md (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/ResourceUpdater.Squirrel.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/HostModel/ResourceUpdater.cs (100%) rename src/{Squirrel.Packaging.Windows => Velopack.Packaging.Windows}/SetupBundle.cs (100%) rename src/{Squirrel.Packaging.Windows/Squirrel.Packaging.Windows.csproj => Velopack.Packaging.Windows/Velopack.Packaging.Windows.csproj} (88%) rename src/{Squirrel.Packaging => Velopack.Packaging}/Commands/DeltaGenCommandRunner.cs (100%) rename src/{Squirrel.Packaging => Velopack.Packaging}/Commands/DeltaGenOptions.cs (100%) rename src/{Squirrel.Packaging => Velopack.Packaging}/Commands/DeltaPatchCommandRunner.cs (100%) rename src/{Squirrel.Packaging => Velopack.Packaging}/Commands/DeltaPatchOptions.cs (100%) rename src/{Squirrel.Packaging => Velopack.Packaging}/DeltaPackageBuilder.cs (100%) rename src/{Squirrel.Packaging => Velopack.Packaging}/HelperFile.cs (100%) rename src/{Squirrel.Packaging => Velopack.Packaging}/ICommand.cs (100%) rename src/{Squirrel.Packaging => Velopack.Packaging}/MarkdownSharp.cs (100%) rename src/{Squirrel.Packaging => Velopack.Packaging}/NugetConsole.cs (100%) rename src/{Squirrel.Packaging => Velopack.Packaging}/NugetLoggingWrapper.cs (100%) rename src/{Squirrel.Packaging => Velopack.Packaging}/ProcessFailedException.cs (100%) rename src/{Squirrel.Packaging => Velopack.Packaging}/ReleasePackageBuilder.cs (100%) rename src/{Squirrel.Packaging/Squirrel.Packaging.csproj => Velopack.Packaging/Velopack.Packaging.csproj} (88%) rename src/{Squirrel.Csq => Velopack.Vpk}/Commands/DeltaGenCommand.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Commands/DeltaPatchCommand.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Commands/GitHubBaseCommand.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Commands/GitHubDownloadCommand.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Commands/GitHubUploadCommand.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Commands/HttpDownloadCommand.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Commands/OsxBundleCommand.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Commands/OsxReleasifyCommand.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Commands/S3BaseCommand.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Commands/S3DownloadCommand.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Commands/S3UploadCommand.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Commands/SystemCommandLineExtensions.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Commands/WindowsPackCommand.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Commands/WindowsReleasifyCommand.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Commands/WindowsSigningCommand.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Commands/_BaseCommand.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Commands/_OutputCommand.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Commands/_PlatformCommand.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Compat/EmbeddedRunner.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Compat/ICommandRunner.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Compat/RunnerFactory.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Compat/SquirrelVersionLocator.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Compat/V2CompatRunner.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/GlobalUsings.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Program.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Updates/NugetDownloader.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Updates/NullNugetLogger.cs (100%) rename src/{Squirrel.Csq => Velopack.Vpk}/Updates/UpdateChecker.cs (100%) rename src/{Squirrel.Csq/Squirrel.Csq.csproj => Velopack.Vpk/Velopack.Vpk.csproj} (77%) rename src/{Squirrel => Velopack}/Compression/BZip2Stream.cs (100%) rename src/{Squirrel => Velopack}/Compression/BinaryPatchUtility.cs (100%) rename src/{Squirrel => Velopack}/Compression/ChecksumFailedException.cs (100%) rename src/{Squirrel => Velopack}/Compression/DeltaPackage.cs (100%) rename src/{Squirrel => Velopack}/Compression/EasyZip.cs (100%) rename src/{Squirrel => Velopack}/Compression/MsDeltaCompression.cs (100%) rename src/{Squirrel => Velopack}/Internal/Disposable.cs (100%) rename src/{Squirrel => Velopack}/Internal/EnumerableExtensions.cs (100%) rename src/{Squirrel => Velopack}/Internal/LoggerExtensions.cs (100%) rename src/{Squirrel => Velopack}/Internal/ProcessExtensions.cs (100%) rename src/{Squirrel => Velopack}/Internal/SimpleJson.cs (100%) rename src/{Squirrel => Velopack}/Internal/Utility.cs (100%) rename src/{Squirrel => Velopack}/Locators/ISquirrelLocator.cs (100%) rename src/{Squirrel => Velopack}/Locators/OsxSquirrelLocator.cs (100%) rename src/{Squirrel => Velopack}/Locators/SquirrelLocator.cs (100%) rename src/{Squirrel => Velopack}/Locators/TestSquirrelLocator.cs (100%) rename src/{Squirrel => Velopack}/Locators/WindowsSquirrelLocator.cs (100%) rename src/{Squirrel => Velopack}/NuGet/ContentType.cs (100%) rename src/{Squirrel => Velopack}/NuGet/IPackage.cs (100%) rename src/{Squirrel => Velopack}/NuGet/IPackageFile.cs (100%) rename src/{Squirrel => Velopack}/NuGet/IZipPackage.cs (100%) rename src/{Squirrel => Velopack}/NuGet/NugetUtil.cs (100%) rename src/{Squirrel => Velopack}/NuGet/NuspecManifest.cs (100%) rename src/{Squirrel => Velopack}/NuGet/PackageDependency.cs (100%) rename src/{Squirrel => Velopack}/NuGet/ZipPackage.cs (100%) rename src/{Squirrel => Velopack}/NuGet/ZipPackageFile.cs (100%) rename src/{Squirrel => Velopack}/Properties/AssemblyInfo.cs (53%) rename src/{Squirrel => Velopack}/RID.cs (100%) rename src/{Squirrel => Velopack}/ReleaseEntry.cs (100%) rename src/{Squirrel => Velopack}/ReleaseEntryName.cs (100%) rename src/{Squirrel => Velopack}/Sources/GithubSource.cs (100%) rename src/{Squirrel => Velopack}/Sources/GitlabSource.cs (100%) rename src/{Squirrel => Velopack}/Sources/HttpClientFileDownloader.cs (100%) rename src/{Squirrel => Velopack}/Sources/IFileDownloader.cs (100%) rename src/{Squirrel => Velopack}/Sources/IUpdateSource.cs (100%) rename src/{Squirrel => Velopack}/Sources/SimpleFileSource.cs (100%) rename src/{Squirrel => Velopack}/Sources/SimpleWebSource.cs (100%) rename src/{Squirrel => Velopack}/Sources/SourceBase.cs (100%) rename src/{Squirrel => Velopack}/SquirrelApp.cs (100%) rename src/{Squirrel => Velopack}/SquirrelRuntimeInfo.cs (100%) rename src/{Squirrel => Velopack}/UpdateInfo.cs (100%) rename src/{Squirrel => Velopack}/UpdateManager.cs (99%) rename src/{Squirrel/Squirrel.csproj => Velopack/Velopack.csproj} (83%) rename src/{Squirrel => Velopack}/Windows/RuntimeInfo.cs (100%) rename src/{Squirrel => Velopack}/Windows/Runtimes.cs (100%) rename src/{Squirrel => Velopack}/Windows/ShellLink.cs (100%) rename src/{Squirrel => Velopack}/Windows/Shortcuts.cs (100%) rename test/{Squirrel.CommandLine.Tests => Velopack.CommandLine.Tests}/BaseCommandTests.cs (100%) rename test/{Squirrel.CommandLine.Tests => Velopack.CommandLine.Tests}/Commands/GitHubCommandTests.cs (100%) rename test/{Squirrel.CommandLine.Tests => Velopack.CommandLine.Tests}/Commands/HttpDownloadCommandTests.cs (100%) rename test/{Squirrel.CommandLine.Tests => Velopack.CommandLine.Tests}/Commands/OsxCommandTests.cs (100%) rename test/{Squirrel.CommandLine.Tests => Velopack.CommandLine.Tests}/Commands/S3CommandTests.cs (100%) rename test/{Squirrel.CommandLine.Tests => Velopack.CommandLine.Tests}/Commands/WindowsCommandTests.cs (100%) rename test/{Squirrel.CommandLine.Tests => Velopack.CommandLine.Tests}/TempFileTestBase.cs (100%) rename test/{Squirrel.CommandLine.Tests/Squirrel.CommandLine.Tests.csproj => Velopack.CommandLine.Tests/Velopack.CommandLine.Tests.csproj} (75%) rename test/{Squirrel.CommandLine.Tests => Velopack.CommandLine.Tests}/WindowsOnlyFact.cs (100%) rename test/{Squirrel.CommandLine.Tests => Velopack.CommandLine.Tests}/WindowsOnlyTheoryAttribute.cs (100%) rename test/{Squirrel.Packaging.Tests => Velopack.Packaging.Tests}/DeltaPackageTests.cs (100%) rename test/{Squirrel.Packaging.Tests => Velopack.Packaging.Tests}/Init.cs (100%) rename test/{Squirrel.Packaging.Tests => Velopack.Packaging.Tests}/Properties/AssemblyInfo.cs (100%) rename test/{Squirrel.Packaging.Tests => Velopack.Packaging.Tests}/ReleasePackageTests.cs (100%) rename test/{Squirrel.Packaging.Tests/Squirrel.Packaging.Tests.csproj => Velopack.Packaging.Tests/Velopack.Packaging.Tests.csproj} (60%) rename test/{Squirrel.Packaging.Tests => Velopack.Packaging.Tests}/WindowsPackTests.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/ContentTypeTests.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/OldSquirrel/ReleaseEntry.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/OldSquirrel/ReleaseExtensions.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/OldSquirrel/SemanticVersion.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/OldSquirrel/Utility.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/ReleaseEntryTests.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/RuntimeTests.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/TestHelpers/AssertExtensions.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/TestHelpers/ExposedClass.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/TestHelpers/ExposedObject.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/TestHelpers/ExposedObjectHelper.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/TestHelpers/FakeDownloader.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/TestHelpers/FakeFixtureRepository.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/TestHelpers/StaticHttpServer.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/UpdateManager/ApplyReleasesTests.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/UpdateManager/CheckForUpdateTests.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/UpdateManager/DownloadReleasesTests.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/UpdateManager/UpdateManagerTests.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/UpdateManagerTests.cs (100%) rename test/{Squirrel.Tests => Velopack.Tests}/UtilityTests.cs (100%) rename test/{Squirrel.Tests/Squirrel.Tests.csproj => Velopack.Tests/Velopack.Tests.csproj} (91%) rename test/{Squirrel.Tests => Velopack.Tests}/ZipPackageTests.cs (100%) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0a8c31f4..c119aca0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -65,14 +65,14 @@ jobs: - name: Build .NET run: dotnet build -c Release - - name: Test .NET Squirrel.Tests - run: dotnet test --no-build -c Release -l "console;verbosity=detailed" test/Squirrel.Tests/Squirrel.Tests.csproj + - name: Test .NET Velopack.Tests + run: dotnet test --no-build -c Release -l "console;verbosity=detailed" test/Velopack.Tests/Velopack.Tests.csproj - - name: Test .NET Squirrel.Packaging.Tests - run: dotnet test --no-build -c Release -l "console;verbosity=detailed" test/Squirrel.Packaging.Tests/Squirrel.Packaging.Tests.csproj + - name: Test .NET Velopack.Packaging.Tests + run: dotnet test --no-build -c Release -l "console;verbosity=detailed" test/Velopack.Packaging.Tests/Velopack.Packaging.Tests.csproj - - name: Test .NET Squirrel.CommandLine.Tests - run: dotnet test --no-build -c Release -l "console;verbosity=detailed" test/Squirrel.CommandLine.Tests/Squirrel.CommandLine.Tests.csproj + - name: Test .NET Velopack.CommandLine.Tests + run: dotnet test --no-build -c Release -l "console;verbosity=detailed" test/Velopack.CommandLine.Tests/Velopack.CommandLine.Tests.csproj - name: Upload Rust Artifacts uses: actions/upload-artifact@v4 diff --git a/LICENSE b/LICENSE index 7c8b6964..5b6fb4e9 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,3 @@ -Copyright (c) 2012 GitHub, Inc. Copyright (c) 2021 Caelan Sayler Permission is hereby granted, free of charge, to any person obtaining a diff --git a/README.md b/README.md index 8d20a7fe..2890da70 100644 --- a/README.md +++ b/README.md @@ -1,203 +1,7 @@ -[![Nuget](https://img.shields.io/nuget/v/Clowd.Squirrel?style=flat-square)](https://www.nuget.org/packages/Clowd.Squirrel/) -[![Nuget (with prereleases)](https://img.shields.io/nuget/vpre/Clowd.Squirrel?style=flat-square)](https://www.nuget.org/packages/Clowd.Squirrel/) +[![Nuget](https://img.shields.io/nuget/v/Velopack?style=flat-square)](https://www.nuget.org/packages/Velopack/) [![Discord](https://img.shields.io/discord/767856501477343282?style=flat-square&color=purple)](https://discord.gg/CjrCrNzd3F) -[![Build](https://img.shields.io/github/actions/workflow/status/clowd/Clowd.Squirrel/build.yml?branch=develop&style=flat-square)](https://github.com/clowd/Clowd.Squirrel/actions) -[![Codecov](https://img.shields.io/codecov/c/github/clowd/Clowd.Squirrel?style=flat-square)](https://app.codecov.io/gh/clowd/Clowd.Squirrel) -[![License](https://img.shields.io/github/license/clowd/Clowd.Squirrel?style=flat-square)](https://github.com/clowd/Clowd.Squirrel/blob/develop/LICENSE) +[![Build](https://img.shields.io/github/actions/workflow/status/velopack/velopack/build.yml?branch=develop&style=flat-square)](https://github.com/velopack/velopack/actions) +[![Codecov](https://img.shields.io/codecov/c/github/velopack/velopack?style=flat-square)](https://app.codecov.io/gh/velopack/velopack) +[![License](https://img.shields.io/github/license/velopack/velopack?style=flat-square)](https://github.com/velopack/velopack/blob/develop/LICENSE) - -# Clowd.Squirrel - -Squirrel is both a set of tools and a library, to completely manage both installation and updating your desktop application. - -Feel free to join our discord to recieve updates or to ask questions: - -[![discordimg2](https://user-images.githubusercontent.com/1287295/150318745-cbfcf5d0-3697-4bef-ac1a-b0d751f53b48.png)](https://discord.gg/CjrCrNzd3F) - ---- - -## Looking for info on v3.0 / cross-platform? -Clowd.Squirrel v3.0 is a ground-up re-write and now supports macos (linux in the future?). Documentation for this is very limited but I have started working on this [in the docs-v3 folder](docs-v3). This work is being done in the `develop` branch. - -I will continue to support 2.x with critical fixes until further notice. This is currently the `master` branch. - ---- - -## What Do We Want? - -Apps should be as fast easy to install. Update should be seamless like Google Chrome. From a developer's side, it should be really straightforward to create an installer for my app, and publish updates to it, without having to jump through insane hoops. - -* **Integrating** an app to use Squirrel should be extremely easy, provide a client API, and be developer friendly. -* **Packaging** is really easy, can be automated, and supports delta update packages. -* **Distributing** should be straightforward, use simple HTTP updates, and provide multiple "channels" (a-la Chrome Dev/Beta/Release). -* **Installing** is Wizard-Free™, with no UAC dialogs, does not require reboot, and is .NET Framework friendly. -* **Updating** is in the background, doesn't interrupt the user, and does not require a reboot. - ---- - -## Migrating from Squirrel.Windows? - - - The command line interface for Squirrel.exe is different. Check 'Squirrel.exe -h' for more info. - - The command line for Update.exe here is compatible with the old Squirrel. - - Update.exe here is bigger and is included in your packages. This means Update.exe will be updated each time you update your app. As long as you build delta packages, this will not impact the size of your updates. - - Migrating to this library is fully compatible, except for the way we detect SquirrelAware binaries. Follow the Quick Start guide. - - There have been a great many other improvements here. To see some of them [have a look at the feature matrix](#feature-matrix). - - Something detected as a virus? This was an issue at the old Squirrel, and also see [issue #28](https://github.com/clowd/Clowd.Squirrel/issues/28) - ---- - -## Quick Start For .NET Apps - -1. Install the [Clowd.Squirrel Nuget Package](https://www.nuget.org/packages/Clowd.Squirrel/) - -2. Add SquirrelAwareVersion to your assembly manifest to indicate that your exe supports Squirrel. -Note: In newer .NET Core versions you first need to add the Application Manifest through New Item window. - - ```xml - - - 1 - - ``` - -3. Handle Squirrel events somewhere very early in your application startup (such as the beginning of `main()` or `Application.OnStartup()` for WPF). - - ```cs - public static void Main(string[] args) - { - // run Squirrel first, as the app may exit after these run - SquirrelAwareApp.HandleEvents( - onInitialInstall: OnAppInstall, - onAppUninstall: OnAppUninstall, - onEveryRun: OnAppRun); - - // ... other app init code after ... - } - - private static void OnAppInstall(SemanticVersion version, IAppTools tools) - { - tools.CreateShortcutForThisExe(ShortcutLocation.StartMenu | ShortcutLocation.Desktop); - } - - private static void OnAppUninstall(SemanticVersion version, IAppTools tools) - { - tools.RemoveShortcutForThisExe(ShortcutLocation.StartMenu | ShortcutLocation.Desktop); - } - - private static void OnAppRun(SemanticVersion version, IAppTools tools, bool firstRun) - { - tools.SetProcessAppUserModelId(); - // show a welcome message when the app is first installed - if (firstRun) MessageBox.Show("Thanks for installing my application!"); - } - ``` - - When installed, uninstalled or updated, these methods will be executed, giving your app a chance to add or remove application shortcuts or perform other tasks. You should not update your app from the hooks. - -4. Build/Publish your app (with `msbuild`, `dotnet publish` or similar) - -5. Create a Squirrel release using the `Squirrel.exe` command line tool. - The tool can be downloaded from GitHub Releases, and it is also bundled into the [Clowd.Squirrel](https://www.nuget.org/packages/Clowd.Squirrel/) nuget package. - If installed through NuGet, the tools can usually be found at: - - `%userprofile%\.nuget\packages\clowd.squirrel\2.9.40\tools`, or; - - `..\packages\clowd.squirrel\2.9.40\tools` - - Once you have located the tools folder, create a release. Minimal example below with some useful options, but explore `Squirrel.exe -h` for a complete list. - ```cmd - Squirrel.exe pack --packId "YourApp" --packVersion "1.0.0" --packDirectory "path-to/publish/folder" - ``` - Important Notes: - - The same `--releaseDir` (default `.\Releases` if not specified) should be used each time, so delta updates can be generated. - - The package version must comply to strict 3-part SemVer syntax. (eg. `1.0.0`, `1.0.1-pre`) - - A list of supported runtimes for the `--framework` argument is [available here](https://github.com/clowd/Clowd.Squirrel/blob/develop/src/Squirrel/Runtimes.cs) - -6. Distribute your entire `--releaseDir` folder online. This folder can be hosted on any static web/file server, [Amazon S3](docs/using/amazon-s3.md), BackBlaze B2, or even via [GitHub Releases](docs/using/github.md). - - If using CI to deploy releases, you can use the package syncing commands to download the currently live version, before creating a package. This means delta/patch updates can be generated. Complete powershell example: - ```ps1 - # build / publish your app - dotnet publish -c Release -o ".\publish" - - # find Squirrel.exe path and add an alias - Set-Alias Squirrel ($env:USERPROFILE + "\.nuget\packages\clowd.squirrel\2.9.40\tools\Squirrel.exe"); - - # download currently live version - Squirrel http-down --url "https://the.place/you-host/updates" - - # build new version and delta updates. - Squirrel pack` - --framework net6,vcredist143-x86` # Install .NET 6.0 (x64) and vcredist143 (x86) during setup, if not installed - --packId "YourApp"` # Application / package name - --packVersion "1.0.0"` # Version to build. Should be supplied by your CI - --packAuthors "YourCompany"` # Your name, or your company name - --packDir ".\publish"` # The directory the application was published to - --icon "mySetupIcon.ico"` # Icon for Setup.exe and Update.exe - --splashImage "install.gif" # The splash artwork (or animation) to be shown during install - ``` - -7. Update your app on startup / periodically with UpdateManager. - ```cs - private static async Task UpdateMyApp() - { - using var mgr = new UpdateManager("https://the.place/you-host/updates"); - var newVersion = await mgr.UpdateApp(); - - // optionally restart the app automatically, or ask the user if/when they want to restart - if (newVersion != null) { - UpdateManager.RestartApp(); - } - } - ``` - ---- - -## Feature Matrix - -| Feature | Clowd.Squirrel | Squirrel.Windows | -|---|---|---| -| Continuous updates, bug fixes, and other improvements | ✅ | ❌ | -| Provides a command line update interface (Update.exe) with your app | ✅ | ✅ | -| Update.exe Size | ❌ 12.5mb | ✅ 2mb | -| Provides a C# SDK | netstandard2.0
net461
net5.0
net6.0 | netstandard2.0 | -| SDK has 100% XML comment coverage in Nuget Pacakge | ✅ | None, does not ship comments in NuGet | -| SDK Dependencies | SharpCompress | SharpCompress (outdated & security vulnerability)
NuGet (outdated and bugs)
Mono.Cecil (outdated and bugs)
Microsoft.Web.Xdt
Microsoft.CSharp
Microsoft.Win32.Registry
System.Drawing.Common
System.Net.Http
System.Web | -| SDK is strong-name signed | ✅ | ❌ | -| Provides an update package builder (Squirrel.exe) | ✅ | ✅ | -| Supports building tiny delta updates | ✅ | ✅ | -| Can compile a release/setup in a single easy command | ✅ | ❌ | -| Command line tool for package building that actually prints helpful messages to the console | ✅ | ❌ | -| CLI help text that is command-based and easily understandable | ✅ | ❌ | -| Supports building packages for native apps | ✅ | ✅ | -| Supports building packages for .Net/Core | ✅ | Limited/Buggy | -| Supports building packages for PublishSingleFile apps | ✅ | ❌ | -| Supports fully automated CI package deployments easily | ✅ | ❌ | -| Compiles an installer (Setup.exe) | ✅ | ✅ | -| Setup Splash Gif | ✅ | ✅ | -| Setup Splash Png,Jpeg,Tiff,Etc | ✅ | ❌ | -| Setup Splash Progress Bar | ✅ | ❌ | -| Setup Splash has Multi-Monitor DPI support | ✅ | ❌ | -| No internal dependencies on external frameworks/runtimes | ✅ | ❌ | -| Can deploy an application that has no dependencies | ✅ | ❌ (always installs .Net Framework with your app) | -| Can install .Net Full Framework during setup | ✅ | ✅ | -| Can install .Net/Core during setup | ✅ | ❌ | -| Can install vcredist during setup | ✅ | ❌ | -| Can install new runtimes (see above) during updates | ✅ | ❌ | -| Cleans up after itself | ✅ | Leaves huge log files everywhere
Does not delete itself during uninstall | -| Can build an MSI enterprise machine-wide deployment tool | ✅ | ✅ | - ---- - -## Building Squirrel -For the impatient: - -```cmd -git clone https://github.com/clowd/Clowd.Squirrel -cd clowd/Clowd.Squirrel -build.cmd -``` - -See [Contributing](docs/contributing/contributing.md) for additional information on building and contributing to Squirrel. - -## License and Usage - -See [COPYING](COPYING) for details on copyright and usage. +# Velopack \ No newline at end of file diff --git a/Squirrel.entitlements b/Velopack.entitlements similarity index 100% rename from Squirrel.entitlements rename to Velopack.entitlements diff --git a/Squirrel.sln b/Velopack.sln similarity index 84% rename from Squirrel.sln rename to Velopack.sln index e38b4641..db47deb6 100644 --- a/Squirrel.sln +++ b/Velopack.sln @@ -3,36 +3,36 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.31815.197 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Squirrel", "src\Squirrel\Squirrel.csproj", "{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Velopack", "src\Velopack\Velopack.csproj", "{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Squirrel.Tests", "test\Squirrel.Tests\Squirrel.Tests.csproj", "{98AEB048-E27D-42F4-9440-505B7F78BAFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Velopack.Tests", "test\Velopack.Tests\Velopack.Tests.csproj", "{98AEB048-E27D-42F4-9440-505B7F78BAFD}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionLevel", "SolutionLevel", "{ED657D2C-F8A0-4012-A64F-7367D41BE4D2}" ProjectSection(SolutionItems) = preProject .editorconfig = .editorconfig .github\workflows\build.yml = .github\workflows\build.yml src\Directory.Build.props = src\Directory.Build.props - Squirrel.entitlements = Squirrel.entitlements + Velopack.entitlements = Velopack.entitlements version.json = version.json EndProjectSection EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Squirrel.Packaging", "src\Squirrel.Packaging\Squirrel.Packaging.csproj", "{352C15EA-622F-4132-80D8-9B6E3C83404E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Velopack.Packaging", "src\Velopack.Packaging\Velopack.Packaging.csproj", "{352C15EA-622F-4132-80D8-9B6E3C83404E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Squirrel.Csq", "src\Squirrel.Csq\Squirrel.Csq.csproj", "{9E769C7E-A54C-4844-8362-727D37BB1578}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Velopack.Vpk", "src\Velopack.Vpk\Velopack.Vpk.csproj", "{9E769C7E-A54C-4844-8362-727D37BB1578}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Squirrel.CommandLine.Tests", "test\Squirrel.CommandLine.Tests\Squirrel.CommandLine.Tests.csproj", "{519EAB50-47B8-425F-8B20-AB9548F220B4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Velopack.CommandLine.Tests", "test\Velopack.CommandLine.Tests\Velopack.CommandLine.Tests.csproj", "{519EAB50-47B8-425F-8B20-AB9548F220B4}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{7AC3A776-B582-4B65-9D03-BD52332B5CA3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Squirrel.Packaging.Windows", "src\Squirrel.Packaging.Windows\Squirrel.Packaging.Windows.csproj", "{E35039C8-1F98-48EB-B7D5-08E33DF061A7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Velopack.Packaging.Windows", "src\Velopack.Packaging.Windows\Velopack.Packaging.Windows.csproj", "{E35039C8-1F98-48EB-B7D5-08E33DF061A7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Squirrel.Packaging.OSX", "src\Squirrel.Packaging.OSX\Squirrel.Packaging.OSX.csproj", "{3382BCB7-657E-4E7B-A2B9-D65AA4DA073B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Velopack.Packaging.OSX", "src\Velopack.Packaging.OSX\Velopack.Packaging.OSX.csproj", "{3382BCB7-657E-4E7B-A2B9-D65AA4DA073B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Squirrel.Deployment", "src\Squirrel.Deployment\Squirrel.Deployment.csproj", "{D19EA72C-E7AE-4A7B-924A-E7550901A49C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Velopack.Deployment", "src\Velopack.Deployment\Velopack.Deployment.csproj", "{D19EA72C-E7AE-4A7B-924A-E7550901A49C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Squirrel.Packaging.Tests", "test\Squirrel.Packaging.Tests\Squirrel.Packaging.Tests.csproj", "{175B06A5-5C09-4DAB-A6AF-C8A2257BD1B6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Velopack.Packaging.Tests", "test\Velopack.Packaging.Tests\Velopack.Packaging.Tests.csproj", "{175B06A5-5C09-4DAB-A6AF-C8A2257BD1B6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestApp", "test\TestApp\TestApp.csproj", "{784B5987-2E71-4AEE-81B9-E0CC7F1DBEB3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestApp", "test\TestApp\TestApp.csproj", "{784B5987-2E71-4AEE-81B9-E0CC7F1DBEB3}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/Squirrel.snk b/Velopack.snk similarity index 100% rename from Squirrel.snk rename to Velopack.snk diff --git a/docs-v3/building.md b/docs-v3/building.md deleted file mode 100644 index 84f7ad04..00000000 --- a/docs-v3/building.md +++ /dev/null @@ -1,69 +0,0 @@ -# Building Squirrel - -You can compile Squirrel on the command line, or via an alternative IDE like VSC or Rider, but you will need VS2022 installed, or you will need to install all of Squirrel's VS requirements separately. - -## Prerequisites -- Be on Windows 10/11 -- [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) - - **Workload**: Desktop development with C++ - - **Individual**: MSVC v143 x86 / x64 - - **Individual**: C++ MFC for v143 (x86 & x64) - - **Workload**: .NET desktop development - - **Individual**: .NET Framework 4.6.1 SDK - - **Individual**: .NET Framework 4.6.1 targeting pack -- [dotnet 5.0 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/5.0) -- [dotnet 6.0 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/6.0) -- dotnet tool install -g [nbgv](https://github.com/dotnet/Nerdbank.GitVersioning/blob/main/doc/nbgv-cli.md) - -## Components -- `/vendor` - third party binaries -- `/src/Squirrel` - core Squirrel.Core.dll library, used by installed applications to update. Packaged as .nupkg -- `/src/Squirrel.Tool` - csq locator tool, for building releases. Packaged as .nupkg (dotnet tool) -- `/src/Squirrel.CommandLine` - used by csq -- `/src/Setup` - windows Setup.exe. This is a small self-extractor that runs Update.Windows. -- `/src/StubExecutable` - windows stubs (for running installed apps) -- `/src/Update.Windows` - windows Update.exe, used by installed apps to install updates. Published as single-file exe. -- `/src/Update.OSX` - UpdateMac, used by apps on macOS to install updates. Published as single-file exe. - -## Compiling on the command line - -There is a one-command build script. Use this to test if you are unable to build with Visual Studio, or when distributing squirrel. -> ./build.cmd - -This script will compile the whole solution, package the single-file projects (Update.Windows & Update.OSX) and bundle all the required files into two nupkg's. The two complete nupkg's will be placed in `/build/Release`. - -## Compiling in your favorite IDE - -This should be fairly straight forward. Open the solution file, run the build-all command (usually F6). This will compile all the Squirrel binaries, and will create nupkg's in `/build/Debug`. - -Note that these packages generated on build are incomplete, as they will not contain `Update.exe` or `UpdateMac`. You will need to run the build script if you wish to create a package intended for release. - -## Debugging Squirrel - -You can run any of the Squirrel projects in your debugger with the appropriate command line arguments to find issues or test how Squirrel works. Below is examples on how you might debug various features of squirrel. - -[If you are looking for help troubleshooting an installed application, that is available here.](troubleshooting.md) - -### Package Creation -- Debug csq (src/Squirrel.Tool) with the argument `--csq-embedded` and any other arguments required to create your package. Example: - > `csq --csq-embedded pack -u MyTestApp -v 1.0.1 -p "path-to/files"` - -### Debug Windows Extractor (Setup.exe) -- Compile Setup.exe (src/Setup) in Debug mode -- Attach a package to this binary with csq and the `--debugSetupExe` argument. Example: - > `csq --csq-embedded pack -u MyTestApp -v 1.0.1 -p "path-to/files" --debugSetupExe "path-to/Setup.exe"` -- Run debugger for Setup.exe (without re-compiling) - -### Windows Install (Partial) - -- Create a update package (-full.nupkg) using csq (src/Squirrel.Tool). -- Debug Update.exe (src/Update.Windows) with the arguments `"--install {directoryContainingNupkg}"` - -### Windows Install (Full) - -- Create a Setup bundle using csq (src/Squirrel.Tool). Note the path to generaged Setup.exe, and the `setupBundleOffset` which is printed to the console. -- Debug Update.exe (src/Update.Windows) with the arguments `"--setup {setupExePath} --setupOffset {setupBundleOffset}"` - -## Distributing - -Before distributing a nupkg to end users, it is necessary to code-sign `UpdateMac` with a valid Apple developer certificate, and send it to Apple for notarization. This will need to be performed on a computer running macOS after the nupkg's has been created. diff --git a/docs-v3/readme.md b/docs-v3/readme.md deleted file mode 100644 index 035840a0..00000000 --- a/docs-v3/readme.md +++ /dev/null @@ -1,59 +0,0 @@ -[![Nuget (with prereleases)](https://img.shields.io/nuget/vpre/Clowd.Squirrel?style=flat-square)](https://www.nuget.org/packages/Clowd.Squirrel/) - -# Clowd.Squirrel - -Squirrel is both a set of tools and a library, to completely manage both installation and updating your desktop application. - -Feel free to join our discord to recieve updates or to ask questions: - -[![discordimg2](https://user-images.githubusercontent.com/1287295/150318745-cbfcf5d0-3697-4bef-ac1a-b0d751f53b48.png)](https://discord.gg/CjrCrNzd3F) - -## What Do We Want? - -Apps should be as fast easy to install. Update should be seamless like Google Chrome. From a developer's side, it should be really straightforward to create an installer for my app, and publish updates to it, without having to jump through insane hoops. - -* **Integrating** an app to use Squirrel should be extremely easy, provide a client API, and be developer friendly. -* **Packaging** is really easy, can be automated, and supports delta update packages. -* **Distributing** should be straightforward, use simple HTTP updates, and provide multiple "channels" (a-la Chrome Dev/Beta/Release). -* **Installing** is Wizard-Free™, with no UAC dialogs, does not require reboot, and is .NET Framework friendly. -* **Updating** is in the background, doesn't interrupt the user, and does not require a reboot. - - -## Clowd.Squirrel is now cross-platform - - -## Quick Start Guide! -*This guide contains everything you need to know to publish your first app. I know, it's short and sweet. Squirrel can do lots more than what you see here, so once you've tried the instructions here, check out some of our other docs!* - -### Prerequisites -These are required to build packages with Squirrel, but are not required for applications using Squirrel. -- [Install dotnet 6.0 runtime](https://dotnet.microsoft.com/en-us/download/dotnet/6.0) -- [Install Squirrel Tool (csq)](https://www.nuget.org/packages/csq/) - > dotnet tool install -g csq - -### Adding Squirrel to your App -- Install the [Clowd.Squirrel](https://www.nuget.org/packages/Clowd.Squirrel/) NuGet package -- **IMPORTANT:** Add `SquirrelAwareApp.HandleEvents();` to the beginning of `Main()` - - -### Building a package / installer -Instructions may vary by OS. Consult `csq -h` on your target platform for more info. -```txt -> dotnet publish YourApp.csproj -o ./publish -> csq pack -u YourApp -v 1.0.1 -p ./publish -e YourApp.exe -``` - -### Updating your App -You can host releases in a directory/file share, online on any static web/file server, [Amazon S3](docs/using/amazon-s3.md), BackBlaze B2, or even via [GitHub Releases](docs/using/github.md). - -```cs -private static async Task UpdateMyApp() -{ - using var mgr = new UpdateManager("https://the.place/you-host/releases"); - var newVersion = await mgr.UpdateApp(); - - // You must restart to complete the update. - // This can be done later / at any time. - if (newVersion != null) UpdateManager.RestartApp(); -} -``` \ No newline at end of file diff --git a/docs-v3/troubleshooting.md b/docs-v3/troubleshooting.md deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/artwork/Clowd_200.png b/docs/artwork/Clowd_200.png deleted file mode 100644 index cc568c78c7d1c8e1e4571870c8fdc39903026080..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7006 zcmV-k8=>ThP)PvZ?5$@G&o5}SxlW|2)az$TkWY^^p+orE&M|s`}Qc zQ+4W`$%~5%7Kuc%nehDpkx0lyfkYw_qCg@M2~i-Ch=eGRNJPSS>!Ov74D>K4nSJ%xG zmYXP$Pif(DYEkzeq(!lHc;@!$6o7^4+?mQFmR($SMgJs46v$Oz7JZ=m$FOATzC209 z;o4G|0+t0t(p{KNmShGzjMn52qChU0#q$C!Cmfbe8+)hTt%WZ4=BC*C-5beLOp_fv z->Lm!V-(2cl4@JW*8q#r`RVtmY5FK@=#$lwItxV0-vIvttVU=)Mp3{=0c!$&iUzgyOX@0+p6YA^ ztOf|9EPh5_z&`<@Xjqd?w79jRjsj7NV=(%_+AogT{_#28Q+Z^5W`gyu|fvv@-;b7|E-JYzq;IHrH9 z3h?CH8Cht`2yb9kDgwBQ7DVWG@MzpfKA`P};^=}#6@wb9CXi)WeyaA1+q!D+BpWE+?m?lM8#)wyagI{%np zE=0cx+7#MW5dAxkeNy^MR#n;N9f}0feEK@5dmZ=Yrji_1%a{O8hvD&gk|-jCv_fg- zXC~P2`!7T<@8h;_si}fMg!jt9nGC`AfPvIqn9iHn?Fu{xSNG*f5W;`3FwMFPH$^X( z{yuvZ1d?ezU?73@@VPwU!qB*cl#5<+!tGZmuuKFiA`t#A28@=LvODR*LN&gVxxvgj zSh?j)900sGdQT%_z4M0iWkm+xV4zuPK4@6juKky772EVDp_F;~9g ztu!wgIm6cdmgdZabOT{{eEvzui6l;|)G=CR-sWwKVy=1z^gBHU>2sU`pA7=l3FQY1 z2R|T$<=dBA&5Jp#-Y(WRIXn?gv<>X5QabBpwjlkixGU(aKmF|=qz?iE3w(i)Xgzy# z#gZ)Fp2VN)NeWV8w#pg~Up5Oeo2n%H?^%D)BfjUsmsOzw&-CAaKV^46zs&O9@Mzhv zullK<(k!>iVnLSC(GxDKIN+#K9j3vc1IuApUZC!bP$WIf7Z5a|3#5bL3R*SCsh3xp ziPj=wcJaDyu>MJiQy&jJJi-%l?SlNw5>%J z<2yI5&`i%695C=f5HOLzZx?L^;^Dhx@H^+W_dbfnyN}{qAUt=K@S3a%*ZLzHZ=>Yb z@4qOGWA3}aD34yw8K}95Ve{U0y?hF!txD`R4s`UpbH@JTpFcgZg&A?>`CHr1_zBSA z{cmTSe@;=Lt$GJ%L50Ud+wls#28_^}cu8^UV;baE~6_Pj@CZU7pg6D(hJkkp$ZQxk(lEIO>x3z1Kb75@konDE` z6`5%|ff&txWOQG?`=qTxW&ij*sll>7^)9KtE4fdSW);T|X)Sk33(`iXODPVRUBKaf z`10hF4j07>4My$-vXtNHbOyH=S#1?M@VxNc+@ff(h+~K>Y=uf79i1iBVDur0MupkM zG;CYbTo+>bHf;#Ij3R9n8r-75_mN~v;qWCFNeDfKKzcf*mSKtT^|Lq91PijABMN~~ z-|-Nk(^h2!z7KpaMcysWV~X<<*FK1{>>2nD?H9*dd-5`YP@I4GUS65BRhfZhSO4&R zvRkOwPUmCGnKf}~L6qX?AD)pN?%BYn1u0uw6$QR0d|%0RUe2mZOX5l(N^yW0{jp@Z za(!8lGPacs;QPY&)>v{m6N!r@RyP*Rv`1{K%O%(F_(B!lvziKew1#a9(!rp!OpY)+ zc-=c(2WYD(jz8elcNLp44{ZA*HU-j>?N;%G0->Gmnn1Br#!_t+#c>sA4`>%fKRmXX zi_4ZkW>t}wRj4Mbu}5!(I_y;CWf#*MDcH6ZmSRgFeTr(bvT%|-897X$uprP@RXg9X z4YZF&^<68$jWz@VPSKL+MVsqrnLsFZm|Rfkvsy~5WUbPxYZ^T2$dDtJUA_E zMJU>;Za{k~CNE=$-88ESSdX8xUVs7f=clhtKR*}S-+i8$p`5ZV2z-9tq}7ydWx^8X zv-+d*?)59%=e+7J{|)|Nh=-brv`k-{+-WzRa;1(r70@wR0->@X47Yqika?0ggjBcv zGKK1tR^BRjowqUn-oEp0WdZFgNzJrw63}R3L16v%Yt{=?IjK0%NzVkccj(#OsoP4# z>YW=&fl-^ge_$D5i4($sCyWotg!yL-jaOpQIzsDV!)Y}E2AOF6PMKI?gl8Bghld+` zeg_X&3|NBnzWL1h);PQ$yf3`Jhax>!P_(lX3v!gTwd-p=4JPzn#_}fQ3R6CP53qI{ zU)?0lNZ&g+O_n>pHX|gy$VfNZS9b~#7OtVT9-RL>%HBnSb#j()T*5=JRhGn8Tk$Gb z)a4rB^Wbx-w%^B*w0A={x0bF25!M6rQLG=#_tv*F!m?sMtK9zY(k(WXG3`KG{oDV% zW&d>J>h6$gNysAy_|8#Qg;~`z`K-LlELPt&1;)ql`!7V_U8_8`jzGW^{g(9tm{95< zJKfR)KI)`HNBs7~mn5IHgLOT4DT6H0giv{x!(+~LR zN9)jCn0Ed=XCRkCJEFPm%JVeKvZ`VRwg(41y?E`)z^>RxQJEvS`=~$4= z6h71r=lsk>;t1<@IMwp6jVb-9{T>x(=PYxn=Nli(a(>Gv1CU-e94{&cGG+lqBvN}l29TEVic~9II3oBiprwd4*QnzU|~8}R>SqX z(~0G=#q#aRkNf=h?@s%!JziR%9Ul-bfhA*gUKPNoI?WL(jLL$*0EdB|2bitE7b&`t z&_dtG*5Mc5kzyEpDcT<9@lgC3Lh&bT0DTHREX78OVyrI9f*4gjo_U`aI+bb-2?M;y z!06n$k#t0!-4j?!!RN0QI6t@y>U*EmF9E-;=q?V36rQWqxU4E0O2&CpY)xJ|jBr8{ zw3YPEdM<%bS`QnCTQK{7{p^j=zv(XAOneyAWz^-?>-)s4%R*xE0s`AX?~>tOKM18g zH<|n{OL0+#lUMiU37HjfA&|^;J`~lQn8mGHXc$=YKGZnLZsGQ*$#x`FZ>v5JEP@UCfXI&jim#)mM3;3V%_wgK(_p5(vd<=sgEBU|$fP0-v+}-RIgnD`2jd zpTAAcfi@4qESw3?1kVP~2+vBrEw2kz?3`lE<`PKe+KeiJvx{=eJRCa>EUAW?;n^?? z!C+f?{x-;)bRu@}4hlSbh!%yaw6-`kS|EFc+55(1ZOVR2BZrLzc%K9`JL;qAg8Pn9SVQHy}3$Jfu^)G8e)d{_9+ zicINF@!97x!h9-EfUi;KEbH*yW46buM1jPDnOD##Oj9drFOXO;^HZQLz%L2GdG}3_ z0-=ia@|8@W3_zP`RFt&_RiB$;ED+DT4OWTOWaU8HP%XDS?~WdcUXTeSv#hh{{c3B( zYO;E4;X$cuJfE)#lUWD3#2TGlIE@+VzI+#b4g;XApv_zXeI4pytV|%8W{2tqo2%&4 z{^6O{y^zRNpv`R8XXH>t8cW8mFp;%PAem-|>Xh3>Qi!3tmR&@GtNSHX2|y%cH`baJ8tcY##K=>r<7nPEaIc~%u{ zv?=s0RZys8%u4GOsz!R|KW;UylU;BDD^esw2XsQH=N%193<4UaFkx+!yz znE-7HZJRgg!jZZntu-2{1bi735=iD@Awxw{I9D*kZ0wyRw*XC{>;zrz%}p8SuuA9J z3h9nYk;x1CGyvY_cvHE*81a>`DSF+VerlqvY_hcA=NDlqGs zY;-g+fgb!@cn^3ln>mN`!Y40Npf4$XLdjU&R~7TrY2{3XQQu|m{PergwlDmx?}C|J z7{l+sNCvo#GbDHqcrSR*5QGA4Y}zljw~AFr#;VkMFinBEx>(Dxue?|JtpM5ihftVRWf4>j5+R&nvfb z`Am7ZOagtG5z?16(ed+qT`f?IQ7Zyrsa(lpA3jB1BZDUykj+9cqxtYXcsXbv8P{9* z**+@DLR-tM$jD<6Ps#Esb4-t;D-hu_%ST=%Xz2g?yVycd*G^jmm!nVf%}&3<&M*q$^?Sb55Kx+3PWSf(s?PSjVfk&Mle zZGkXR6`tnIgqImhw6{&2x&{U!b z4KDJ1C~GG+aJCM?a*V?*38jy?{VIDI#f$tXtO~iJQ&u*6m&le`lmY?kA^E&b)!|?o)7}+Y5z3BOzMZ{vpsazhl$1U5pZHk? zJR{}gCF%oFpSfV;E9n-y_VSA55Xe9j9t^Y9{hZZkO%Zjt$i%yVazZEy<+F!F}y;nW?6-AghM4RK9^{EmEo11X&-rJ|AjehtQ| zx~?pHqKqP=7(R42>jl0C?*fqtEn{hFYN(!F)EBPKixg*3yQVu=X^KwsLZ=7Tn~xp% zBcjt`isZ*jwdoOJWWx73>ae%MK5;l+#uUMp-6sA zxtH$>itj*`eEk01Y1Mt3ho;-Qm1oSD#0ekKbip%7V_W?vB$-$B+FIs%2U0AoTUxbcxoaWJAHo*mil7KbN4 zlbx5y1VXVpQ%Bn^<4qhp)(!!6@NqTn2>lY}l8cR{`+xH73_CpWEs*l=WKpGL74-%59rU4LIS9U_ z>evb&G2z<9h1Vs+EUqQ**?6;SeWl*4@ay+qlf$BUZw6bnGP(8DyKG?-E;l*mC@huR}Hdtody2~vTs%YEIgHy6A zzBYho-6YCcT(A%JaSXI{sy|T>ia4Pj{h)gKA^?Vh~{OyM?MQz|T z;?^Z)u^?FlQJ$J%_)933#Fsb}%d1jYi!916kW8PXbB8|rAvnS&b=+OxOB_tz=A+R4 z3>jq>$dSm3wCAS0)C`A#*?jui%f%}AO!#ac;()f6Tx=o>EObGc1;S)A6LsB04miat z&)>4{%XcK!1U>^k3qF(5Ay1Wyo5faZ|87X*I4VGw}E=yus)^5%^&A!RsjJ((Pi3fM>ABe>WqQ>x&DFzg6nh6_cS{74QI zZ5m|YVIHa?5Qf`{nIZD9jESjE?E!5m$v(1M_O0DCRas(jmKkHuL@$EF?&Bb>N+_0A z45M^Q8(K0>l`IIuj@c5u*pIn@3(-*5!QZTsI9LS*!Z2zyGe)baE*Bh;0BtAPn$BH| zJY=dUkRw@Wb$f0q`Xf2`>sL2biKM+JSa3lV1;Q{uPMDmoyKplW@i73}N>PGfv+O~M zBC6)3rbrxLThS*;VNgxBl72^;ItYZ} z$*!`nXcP%!_wP>YY=u9n(rLMjs{0`0K&P%s{~+M#U)Lz2b2+8WP?Cqb354m0WPn*p zLb^xdlKGj5B+5Xex>K#h!D=cHrXv!bc&+N&z_6^``0A!kPOsXDgVk6dOm@jCP5r{kPTTz<+!odv>hMtrRLqsz=8C+yK)`RamX0giZgVOlp6qqCl>q<(F{4qQKG%{FKmql*ZJx#J_;0lwm!^hoV$UbtDSpQ+Uk^ zVUXiE;G=*@LP*QQ(+aiqYIUU9twZRDDN!I|)^R2^D%qMA3oON4TNbbsuyo2P3WmN$ zx30TXDxyH-@X}z?GZPtu(T7ARgVA}iBrBSJXbBU}wHgzNFfkA1e-iiXA+&7@#oX^2q^FAha~cei({pR`B;nse`-W*iVFjD3C}*LS62pMz9sci)00(?l!^#aoK#)TyNK1V7%DOOu_rkGy ze=l}OQbvbN!cdev?o_}of{}(*jW0MF%`bJ$d0I}^MA>Cnp|_UeSGr&5_n|CmyO=}eRwV%ViGmzy7w zPBmxY>3FtK!*{tRC_Ww$cVt)8a5_oVw=ru!Rzn0H--&v z*VeMhOrA3tF|lqp4eH~iYGOX8P2n1?O6??S+vS>#8g#LL?1O7t#Tv>~5y=L2cBh3B z5)yR9&1x5GEk|>6bFJ;|f@rNSdvGn5qgbrW%%75|H`?7_y%#IA_`F{`+`j@w6g8Xn z2E+ID^~EVBQqt0fC+1aDL}N?&`-}4VK7yyVwoH7h9v5C5io0X*oGL!lpfeS4Hwc5^=r$FZZ^M(86?d5!Lkm{{FPf^78UF`MpV! zGBU7KnwFMD)CzxEoVuY6M4dhyT{C6Th}Yssgs^1eNjvAVw1jAA!p28N*oE@g3|mbV zkQdk6J+G#;BZr1$8<&6kzX>K=2L}gJE6i2u)RJ*O)cyr57;E;t+FZHW8xF9H!=aLk z+i!N%Q%gGd7dD{{c=vp=Y_=GV z3zK}cm|EN``RTa3RAXfCqHR)V8YEDda~__G7~DZ~?fQMe-FtYbs)~8CezweZKVkOE zbdJbYR;3(pVR7^v8y{yGh34fko)PnXtddCrueT-=bK4~B`$0iLHC$J1zIXm->!*J4 zo2RGgq(71pLNF3-U0uem;!6t)brye`9nRD=B2mE2VeMZ}lJtTDd&pf~T^shbnW(9y zH9ze3F`NhpdV715-c>LDH0`Ca7z}CY=qRD}{rRIWiv+5qW(bYtW7ThHy?cv^jZLLi z`1EPQ-$@%7$Zkh~u(Pw1p-~hVQAN`M?c~PJ#U)gH)1`liFhS_>)YsonqcGQGuT%RK zyfD)1@(aA$(DCP&ZKG;5PJVtqn3vbOe#is1&#T-2%}^1^>})1KWU!jd`QcRS@q692 zQljNZ0>u`1^S6KkRRn$l^iW-EE5E`=X-|)Mb37X}Gq+IPcAuHbjF!~dVkN%8EHmVg zqCi}11R6>7!pKh0eh*&0+tJj|BKcnA7JN2iZlM&9i$8<0gj}+VMHtPPRI<)%Elw@+ zNhSersl-AaRr~HHh*h25cP`2Z8m9n`Fp;?Gr&d zoYb_mijGYM1qEo{nP0{WN9*mEYo0kQhJF;aVchu2Pez3hlbrBx*lt9v+} z?JqDKBwPjSw>YvWB!z~;#Jhm+nAEeojkOVyWIr>WVv7%^j5MBS~y zWHXz(K~wQuG0#v}Zg+1SiZx;|Ee1{zmV3m26i+hS2SnDojkwB^I$7WOKJOk4DME+ z`>U<3%g=l>SwGye+@8Xzk<)e;7g4-uzLSY34VVmQvgOSZ zWnzV-f#KmR*R(I=H2cod6~vPaY8%^&hYAV`lhf2XQ3YwiA}TZyR2m!Cj1sEuNc*ur zuJ3@`85GqRbtsBb)%v&WPwk!pf1-#e{>&$z0tS{u?B@>-+BWySY^X^>jzu)3zNWgH zX)r@`_j7M)QcEQ$ZXid*cj6CYmBYX0KZd%HM+3nkXf*%b^Y_{P!FW0inc=5|yCPb? zsE|yT`(t&P#Y0!9xh(a%VT%7fmq2iq5FZM)C39l(jZ}5dX29V@hDuCvgdeg2ubWzf zX}r;Y6Gm(gE8uBgcTUFd+~c6o`zkfcP**73|JrY7g{FveULOUDQ*;l}>owf}(ZT2G zhJ@3X10@vaNL~UWoJ@rEt)hgl`qNq`pz$e_dvuri#708JK{?LKWOCayx=+t}5E$U$*ncTwOC{AJ1~hKYd~}^Jq-Sn}XTuEQZ?8Ih0k3jrK`e zAC?RZgt=~Ub(PT;BDlH`9-Sr6*V~dgmgkMR4NE!Z`2{uexF8L%_N7$m!d&*GDkh8R zgWDvWji=h(&wR#dhXLPe@%;dGeIct5Br2UN>bL%WFg6J;_(HD7%N?~TjZ}ZdZ#@N4 zSjBjx-`k`658r`Zne~4ii|!>S?hau+`>}8fTt0God*TmZw=!+_o?gOwfM)kwFTVXf zNN2f(B_095qI<)LS>%nQ=--pl+%yr(Jc_`~84|-OkzNLj{IVR7l9O`sS#t;n<7bQM zY@sI(y?t@{f}1G&rKF}-6mb-)?Ru$Tc6~+)xW2iuz4?fZ zjct&p2?rt-#U-@AKDXb?*JOJkWGdP3d6Pf+`lFKI&`HmeL{~xppfdN{`>qTKA@{xT zWNLnXoogZ?g)@!Ts-eo{li11`oHDb%QHh1H#Gy(504QVw;7;w0B7+vkNpx<VA(Jfp|K#hvX7LoNpb=dZ6P8WlA)9v#-sID+n{1GIkt3^bBy z!{NAGr6<+>{!+Oo2r1^ZM|1Rg)$LSI?f1B9eeSuiy4GM7qdcBD=i}w+iL~FC`V;Z= zCX;qJR}o=l+p+8K7mxRrEr0u4&$cy2?EA|N-|U;HEx#wD805Qs_RV2~29@Zbc(_k0 zDjq8lX~~yzliL<28?y{Evy*r&B=z@oXf$%bZdl6bXiWfFT4w)}VHpz|Sk-hA)K+K(wMvs()3KE$`o@`VKU8~fn8A6zYsCwBLE*1QiSBSoZM9`v?y6g^i^3XJE z+P{B`NSj`#Ba8D!#3l&{Um)5N3Q^tZ1zsM`mV-gSJf|t6b&bYuV?kfd*svPTr>)8; zZ)ZcjKAasr6x9tnM8s31TgbW53!pr3W~%->{OP1`sEa1>Ov@Lng!1iMWPScPFvKB{ zv(NBXW()T@XC3a?)KuDAn589|dKw5C9?j6=TLF7%0?+<7@#9=G98zzRh}9U*F8Mm)O%QP}5t z5vatnXUnxu$JR}uDJeK#zK29e0+7TiyU}G&_HZ)L(+fzf((l&_UL(OKo=nbw4}P5C z+xo_JvEDYnv+POZ>gIN$8t{VMIAsB)w)@tG9F9(=@{`xWyoi9)GP26}&KL)q_ETO6 zJbL@RLbV5(3-$IAhus4GBjq;U_SDGqv~|((Tru)pfSrwv^Vv~7yx+^cnWGSp=A~V* z4%Gg-4*73uG3NBsFhyYKO2VTM^cbtCsKo6)xlsebYA6fJTf?hS(=?t`gn)sQi!0+J z8D!Y%EYZYNt)zoyA>Q0OezMsqITuoxK`2?*KA7gofq3zUEImQDBJuryjv z(~60S#dxx@v3dSfkl_K$`==z0(%=35z?OdBOCULihmYU!TeU{AQoEXfA@7^KvT`wi zVq-+qUyJDA7OO#$roIorVzi&XySuyJ1I~!o=?MuL*=Px0hl-m!C2?oH&F#D!K`Gd%J@%pGGbLH2~V~&`v!A|8m;ew3AAsGuEE< zV`Hy&Pv?qFa~meSEx;(J+C#3y^t%)BqJwD~8XL7XOc+eb3qH_A?i0XmNL&67r;FSH z@83Es7!%&G`rd)Fl|knLB&#vq>1kK9lhY652F60qe!rn=vG!ARcT7J3S z*9|z_ic9n$5H5J3!_!H>!-K_uWc!5Oc8(g`90I_v_s50t6^cvqmS{|Q^Cv41{iZ=q z>Rw*0j4w3dOVtLAqPIoYPkgJ?k>*=nerSlik^^Mxj%Xx;1FnDcDQWgI#QyD|XO6f3 z30&_6aBJJe( z0E68s_LC`!C<*~_YKLcs(NSSNiJ zM7rAay=rUzIR{2v#QZhIyM)(Tz`?aC{=e}=98rBEo;eNxITHXgG2=2Jt z8U2u41Z?*ODC}_MJUNwhm4O&_Y6b>LndrQ`dyHAd9udEHBK1Dvgf2~`HJN^;_6G&p z^T9E|F>xEx(9krnp;=@ZB6n1V#3r4HMaH2aX(-htig=(> z4BgwZ-#8e)EQE zP1oI9kJxh-&Z2bj2jVqjjvS(Ef|-33Gp*R$eKI3LfkS0hnZ`bo!G{0qMMIn%icp-6 z!H^6+dP<6$;Me0Gu)J%fI0J0UiZ+E9i(#e+&3KsMUb=p)<%mXbbxu;CEQ)I?(+(aJ zJj|@v$KPqN@6JW>zyd_V65&AD+IJ?cPDh%Ay^!k~;u&WfXH<;aXac-q$i-%+d8)Qz zObnMPFI(r0z@1MaZjjTP_{Ltn3{T$ri;GKiH_yOW3{8+5obVD;I$tY=>Bt5XN;$4P?kUQ; z&sjCAH#F&$L0BHO^dQAqPD-&J_J}gYFyf5f4M9zkP}Z)2mGXL{hHkgNUt@d{pH3(b zJOOOx=!m&j)j;JTc10DlD$8~4#+y$s2 zRGHs`>tDAikR=ERR})J#k>vA{WFnJ#_}o&7V|UjoPE)<;8pHPH96ErQT06-t}kw~^xyl8g>o72e3NAp1?vEk6}s`nFb| z2O!yIF=+ne?&rqqrE2z#i`r(}?Bw<1x*z@gdD$eu2=nh}h9@rpwXX-_59Fbe!61yt zMIJj_+#}$J`U5H^af&z~Qsv8|cHK#z^ z(o!qRWHt{{N0C7Y6*GtJRl?f^BColUP*PaF?r%7&AcwhdRASvZI01;n{qv9d>^|y< zg0~q?i4A0Q*afIxa0H%l^b5A=IEe!9?@!$^muB@od6{Jx*@Euo6~;wF0~%El-r}Sw z1}R%ardAR%x|R;1XJ~|DWV$f`BGi3l+&~t-5n_1iWNYt3C8#68TVOUSS;%eq{P&eqepKjuBrjPcU zfK*sLkCVGOO^P+BIaIX_1fb;zK5re%dtOXT)*PhCkusJ%ktuaIu}^4#lpjm!3yz|^mwtxg^&Fm z@;eXrKVtQ8dN6bo*924?;|~i|92c^BcmV-{s(XCq>Y6dZopOvj74m+*AyXa?94)L? z6M!_ZJ^f|-S$$2u2^EB^&5be4v)aclHcabLh&H-$5;vMWx;z|VTbIUWGF5;}qNlV0 z%BrYtfU9Ya^Px1A;)MHLTITS6-Z;%!Yd|lb6*Sf^%h;+e2Y)+$a$W4&{#je8v_@Og zNNQde`T8#ZvO0vG)llwjPtw*|lKz2^KeX%LtvppuI5sh+5+`|P`q=_PZb4_z(KWc^iw9PNu`mMAzvA#X(n4>Qs)KWsoMg6U*wLp<}ENBG;gf*uN<~*u&MtXfR@-}^L zS5WFQubR4*h!I1r1?tC;Q!JJRdiQQ-EAM5H?@k*=(5bu)R2x1dq3L%W=Q0;e__zUw z>u@}1LqRYH$dO-D(x7piUQ)8F$LXLccA>{*q0^n6MjA$g$#35Ix3Qk;-(sGxr*^o1 z|30ggO)ZBS@{=tOi8$AG_|kH^-vgi*^eCZa4YQC3l8pncW_>a{7)$*x`)IgAb_(74 zcgXjhx-11&lKcirqxA6bu%QTX$)-`UlGtV=ijuLSqV%~A!VU+8Vxn7@q`-~LS@Qc~ zad8Tt_$c7u?jOeBPL~9K9L6i>^**Fk~Ghp(jY=K?aeOp+BQK z1-?}q3t(KKcJdn&d;!Tp@?!4G?ploUl)>vdkY7_K&12n0+tZh}hL1v<-`QC?P>FC* zs^D>WeT_o=Qe9M$gJx2Z7gOAnVxm93{;AGYTw5V>M*VZ0nES;-6dsGdw70i6GX?0| zJveMs{@3SRsoLen{TVMk-5e9Y2d#*b+o#9hO?J}m?mUe#+XgX^UFv_Wn!ssnt?Ej! zR!v2BT$A<48D`Fs2&iY|TeLyF-8>yBj|ZvqtM*!-ZDwqYSZgh`zy1@U9EsoUcLx)v zq)aSbfumb9qpZ3Cr)|U^Y*cF6ZLET;3R3)?Trkwr;~+m zSfu1&Oh_zjt;kU^EH7X~GbxraxV4>n0qMJ)w~rcalcH}i3)I=bggS@(aKsRwAc3hF zM$nb?z+CW3NKQ2fd4(jZiXiiE^|tC((@=5?m?$n@W1VZx;zUBTdAYP&ME$I{CQi9- zYTRO^4{N|Js=dfJcWVTDKb9t}A5am=Xh&S;*BX}y@zfjL>$J*GyZ@?|(9ISG`@$h0 zcXTDS=BAiIp8GQIy`%%7&$mF9XuzOocQE2GyIR56d?j6<4&>jB(uk5hd~_@NSvYEfEmA2MF><$aT)uhBAaO)&W9Nt+45wJOq6{>R9 z%q`vu+L2)O{B}L42ooo|hg@Uc?y!)lsy%iK6io_-fWTG#PYVFlQgjtHg<~*Xr6eV# z{kD`xZtmw*YmFN$M;j9p6C=W?gW7TbDq*U_1!Z}9^1^X$^b(>#-i`dK>3s|0u92UK zFfDhJSp*OA>+33TP`pn}f275Vox8O5-WG?#cttf4_3T!aj4?$~Hsz zL6z%Ayfk(dOdkv7Ku#CTpG?tFQ=flQQhJ>qCJXqN#Ow-DUS9sez{*Mr5Z~?G{QS=; z3Dl89Azu&=eF&ll%taIE+}D~NQgU)?qJuMtz{7xi;K##XeJc_c`RT&s>(sfA>D$!mm-MKMjuUP%8*%SQZGq?c&X!Ydu7)0M{a zmHIs~;9L{}H0@i=0?UMk+h`Kam5#Rd;|~BcN4&qk)1K5&7P)+cmfH@C89a(4MmX@T97zQn{@1n8TSvUEe9Zv1y}yFHx{TC z^@;71v4jIxBRMV1rA7;$&M`*r_I(9IWRe~!t;#IkkFO@-b*BRym)t9Ic}aevGxs5N zXwpUev7`nlK`#Q8u*?pCU(Meej{neYU4-(u+ML`+VeU8Q*p}ahi^a2J74IKRm!8j4 z*?uKACRV^;&$B1uzr|m@6xW3LD1Gxjz$v&ZWaS9@Y;3@G>Wn~E{>v}j_F|OMj{Vak zImtd0ihmW9jTH~-CneaVo$hPA46zy#mTs;@QqsA!AsU&P9*=zP0x5z?&`LO->Z$yA zDYZKIM_gNJ1U#g`r!+ds~jd0RuF;XdLCiF2Bi z9M48RH`RIn{w)xX+9Mv2i#Obd{AA}Xf_jFbI9@^xgj9%&Nha%NbWv`+n$sgCyH&fd z+vWmBUFu4WaLxInA_Xk67+;Jl^3r(^W=|@$Cd^qulg}S7aB-sDEyyp?A0%O+G3KXM zKNleZ{f9L=h@agZkefVxz4-HhzoQ66LE?(AV4a{eAj;WCEI~TpV=ALAMG=7d0o^=` zk;8R6o&l)}Hto9rZ8lBEDVq*J$kK$*=XvCR*1rR)HEyiUs@VlltLGo5)g%mpt)r@T zy02=@EKt2OKFzc94n|Zby%G*KvjcJWQ%-{O`Bp^H&7s7p`a(NFfD(E7@6l98SHgCo*syCS)Wp*f3w{jtP4$L@BTc*IHmO248whlp@b z1gE&Qz+9Zr{j35aL7mSszkdX;eT_pa+1HksU~17>OS?RGy}sO(^a(JbFi89cTM4x= zX^}*Ee6@#V${*VHEqY~ahu!sB7tl_00wqCZ7FJe33xc?ds5S#5kW@7GMEMJ^EoEEp zB+41zReW}?L{rD-{1rULR>`4WOR0}uIi!RwSVy=;up(N$;vTj6@xZwuMjlQ|h&BHC z_sSg=&-Bx9%nv&PXk6B#CR7${Z-lG5uOSK550K0((<@V$6WjFg2q``kZ<21z@-baJ zt_w7@k(-%WFa@L$&X+iVWv$LT&`w={4>f_z908XK(Hthn_fo*;I6s2AMU$A%(bADg z4b~THJq+ZG+xB@=+|$n^32{S`+|*X1h2CfHQKbOtdaywsm>em;wNnPpmH4Gx=8{x+ zHm)NH(IDah6nW0RI}Q|q-ON1+^7uf*Mz|(317^2VNZ2DRW7L+in?4jzK3>F1G&qt+`*i9qoFb6B%u zoY$AT8jtNBJAyHl{qE9N0(LS`0&FovdNTI&XiEoN39vi? zb(GygnR;$aB8)4XBDyIL=34q)ul6%Bw}B${-P{Ze&I&rxbunpm$PWxA7?>}Xh!O~u z7%Nl1TWS;hMYZ}s2*s8#aq-Yj+XNYQ-;?O&S#(?RYNG5*FPJP1SSe=c?v;<6d@O{K za~R4->u*vPjyx2u2S*aA?f{94D3^$cpCnK)Ue<3&BwtrYr~=7z6~Y=Yz^8-++RGd2 z<|!1wn0IM(ePa6c*RXtat2u|sicp@sS>B;g9OC?~ANuXbx4AYg4Etw3|4P0DX_VHI zc(z$pYek!B@Ar{3nUUY=<4-q|Se5Zvd zyS8sA2CQYePIhFnZjN!KPgj?pKK>fXxqT4dbhoq64 zU70bGLquNlLe-Gc5cq==QJX^t4Q?}jBGw)KLp@}|E#cCFxxurOzIgN2Wv*`JN_0HK z8(jD${Qu1`ppnG5r=y(7wGvuQod2wf;U{jAc}`r?|C8%EcqikZpCA8XatQplGd7bh zVVquVKv*RgN*%<8r=0+BTMf7}%!DC$-~)bfsYpCBJoy&)c=M@1b7-7Kp&QpU4rK8Ch5^;E5GXP4l8+VQh8CWA0DpBSvY>!JXgm_iJcAUn;3B)WmC4nY8-FY z-lkW(89Ex%@>Klxdsn^Bi{Hl*^Nc*g`O^;LCM|WKmPK$Hy_)4>U<`uB(Wg(%qKz~_ zJ}t?I%{h=vzUH&^V7C;Z8|8&{|Mm`9z3Ps_1eYR_G=$ZXV9c^ApRnq<-s&!8Fli8ywvpf(67_Nes-X2Q)QUXd5%@@XlU7z%Isv}{nOz?XgLoP$uA+s4R1`fxuHFv%p&xi84F&t$ zAYle+kVue+CwC%PHk7|DUOkMKD5x)3PBlrKEMAyQnVAid7${MDhyAcWIDsY<%3_Ae z4}TP0Oc+K(GK!rb7lUFeH~W7dSiK-A@)9cjU~}GLVze&Nu>GqoKbRVzu zw~E2k&N{v167BK`&p9Y4t}v+-f6y6SI7}M?|Ap(ib{#WlZ)b2>H(b~Nlr_mYM(!u& zlABTGTLa0~I9TeaQMfvJCs6}RqAokc|7@V~ks>0udeh5%d^ibo1_$h8ReM$2Ii z>5)AoF`(W;Y)piKh0UNYlF|T=P_pAGuF9)Hdd`<9Psnlt^r*Fmi3fHCW9! zGDs&;>43@}44&8kHU?v-u^4LG%5Ix>wu!mF)*tIkkR@AI#lGak*&yMQp(Ku?v{8Y%ZzEI$}^deANPVL z`dzPBBn&vps!T|r7`J=MOY&CuOW2G83!G%8DdHE`_>b5LWcpg z)IC`@0gpsb-|B&q1+c^%>4+#e9O6AD_2ywlsnuDSQlum#lVc+yHv`yJ(NzR$r03b5 zn`RkzgTgry(Eu%L;(JdzhMKDO} zwGHV52&ZV=KSuaJhKQYJfGLqy;*69)bnS_bof}1fh>3~87J*x%DKm3Hfy$6hs9Zi{ z0+RI`T;7CWc*cVdUCpf@&);5P(}GLgZ2~PNdH1^{|H04QU28iK++*~XqO(s53_{Bl z_z!P%7Mu(sl8~3}1v!TB+bWf2XZj701a`VumtMl1vGwB%!Z2T=TX+dGj0Y%*Y^$0+t0lWlF_BPfx(A^$Wg;otHYg8lwiGnRBTm z-^rZ)kuQWU5Mu-Z+G;Qgo6bkvdnd1^7;`ot!Qt&;O-Nn!*<4GY27~c`bzNW^TeX%- z?JTY_GEDsByP5@rj2}%E6^!!Wjxa1IdHZN0Zw)3`&MAu~Or}xOt7f~EIx}!n@S;A_ z$YHRkV%x0+6i`7}eg0!#I|=OgZml7Xj6hgNlJ%X282jVDCag30F$WV#7i>GeR%oJd z%Q&ss=r;I@Y^vwt3d$7*IL|+!rdHy5^$oeT~ z^o~dhSb(<<1oR-Vo!7vI1HzpT(XdNF1rr7&*Iz*BE6o<3m(OFrRF_IEB(!##Dy4Gz z83S+dMC|35D$Pj|rVWty2t59~o9<>dFIB_hkPlRl4v>JrLh%_%eeEyDI^;oKg<;go zCl=C19635C5Ho3Sw8q)ksKg!5aU3DKjoWEo2F-fvy?-T-So*Zq<@fsMJ2BrSl@ues zN>y=Dku!kZvvBO}>{@^Q;&yz#-borJDAcJnUQeP?YCS!*8?~r0Z0jp7DRB)73M%lE z4Crt_d%XLv-=X8WBitF}2|w%-F>`dA>2o>J#CSR0uhVAjKe6-0-!GH+cKTDz$6AD5 ze>aetgj+a+Wt5>mMj}v_kz6dvtR$$y|NgIg!Dc3pM}zw2;o+b}HFwI&+FA+C#x2C? z(q*~U#JXta>>;TL5QeNIrls+!%Usp647+si@jIgD+^+O1?3!{iG9*cqKwrRj znZFV!sHmvx6M>aXVU z$-203c>cY$x&%~C>wtG}10-?ICf{ygvB!#WAb^UR9?)fTz18`aZNKl_7@h$N(Xlg? zlaq5(S6BbUnPx#1ZP1_K>z@;j|==^1poj5nNUnrMF0Q*8X6i_R#t3mZ2$lN?Ck8`-rnu)?bz7Z z=jZ3*;^NlU*4*6OGBPsP*Vo$G+T-Kn@$vEL>FM9!-^t0z&CSi`=H}|^>g43)+uPga z<>k!G%*e>d(9qD`-QCX4&e74)$H&Ld&(F)t%gV~iySuyL;o;fY+2G*d?(Xh$b8};3 zWApR#>+9?A@bJ~u)#&Kx@9*!mwY96KwuS%z010qNS#tmY4#EHc4#EKyC`y0;01Q1z zL_t(|UhSP}W8Ah8h7D*P+jV@(cH&sF;>4}frbp8M|KkdPz;JNS0N}Od`$enO@_0Cd znU^5BdUWd4sZ*y;ojP^u)TvXaPMtb+>eQ*@NJuG#eSO^$^5$~6-25NFPNYhYuRgTG zl4^Z-)wDuBv7D2hUM;PV&n)BRFZSo<`Bl;i`Mu>+fG^}r`}*?o>S%?0W!Ws8kgx6U zmz%4i6>}KB2QVQY+xM=h0SWosG9gl}xhP*r145*)Es^p~?gh~LN8yk{+3R9wa@SQP z^!I}oDHOMv)Yc@|Z4m8&8xSIO)dy8y99!r{M~yAAgSM+6s7bEd;0AO+SkzIh6GSa` zmP4CAez=m10%g+@4NFgeHm89r*M|@ywdDpio=9^iN*Iov%QL=JQZ0vuK6i*B6*tUW z_F~N?Ib3?bitV6~Pwg9J&FvPlV%O&cu^q%Mwx&6@`#&c@`3L2OPO1g%78cuQ146kv z+rc;X9kRe)?YIFY?I5HgL-TRkYmrLX!MFAeuB2I`UIPsN9i0>4V&X_|?HgR-Anxy+ z0Fl}~iYz`^Ard|(*q%0J2kX`$t&}s|PXkKX!B*1SOyKr$P7sf$n(@u6z=3M~R_6pL zg0Ff>E0zJRc#9&1HV?+PHG2u>2(5hW282i(jBg-X&DrRj03Bo-k{(j>j&Cq2g}A`b zHIwo#O0IlPFwFRBu?r2_`tl7ZWqeynn~Dq?Kg%{C#0B%9Fou}okqY_ly{(ZPOql`5x3f6A1{5i@HZZ=eq;I&S zAMAoDL3f9}>1;spJZNJ4P{k`D^~MdZEj)>C5$2j!+(XLR4^lfzHK0~lX;%O{x|+qO zHg0G@uwy^4HUtts+U2{AFE6)P1p$f_&@wCiBpX&BEmew=cr}CF&Y%I!E}0K&SYb`I zN|DpTq*_q}a#s%MdIyWO8{Y-97YlOlqxtnEXQNs|kItX;QlgcVYw>9prIT_EXd1TM zz?u~P1h4q|$Ruqp@%Cg!Gwd;|Kn}C`41r@Zft_MZmS%mhueIpKm}k`5+ZhsapyIRo{k{E# zD9!q_eLab`S7@^Y4I%X%=oj@)1M9tg?NrY;E@^8!LkfF%2dlWp>nhhvu60P2nW5tOGW_`6JiE`m6ex zWu>*&A*5bR3+r2uRUPgM?0Ab`T;HOsmZ7Qd1so3RebUUUOB!Cv;TepNpkS%(;3 zT>dEbaue1eq`0loOxGr?jh98R@Ks~#1<{S-+Ut{$F{7`nhxMKM**so*oIW(=2}E~mF+Q@<baM<#h{OdAvVl$FpCTl>D_L^{{?XKL@aS;ZwA>qxb>O*Xd{*!&x8HBEwk2cB{aA z(o+A8wxM?|seQ0U?UqcM*v9bMq*(`zSF7~YdEG%q+sF>>R@V1wk&$uL@{FDl;mja$ z=W}kUJ+b=jR_`<6jPF@G8>U;pef6-8&EZLNYzZ+nN^c{T$gQlJaeQ30+%nk`6DYHd z1njb`eolhcU`@dGu-0=pRd1A5VU1VN%KEEXq#jo-?DVYGVHN%t=&!-*TR@|stiL6P ziB`CV9#%>Y8+oQkX(%f_iC19_P0?6ZJr$JHNLFeN8{v|CFjjp+%wokQc`R!i1i=# zXHlvo_p{#IzZ38<>e8(GQQwgD_ILZDqUZWKudFDnw`M4~PyEwsXtS1NmD5v*ouaT# zpP4_AblqnD4{IRnzeI8WsA^$N_)sN1hmAFmRqen^tUpX(UK+)B@rr-jKRJzMHBVe> zb=jD7uV@< zo7(rEo{C&!^@4{a!0@XSfg2$UYp%nh*fX1E|L820X?k2{lkuRDpHYa zp{mSEO5xOCRqA04o^5cfmyZTEd&#$=e%4&WTOh9HReKV5vu4k>T3PiXCD#8oKfch( zTDbXtDOUaWHWgV--4mH}bE85!9gOv}d?Dpay@8w-V$Id21z9f_(>M#6tP4p-J+)~Q zR-*!IVZ#IC`c{f{SktphR{EqQqk*i-Mc8V;C~J{4n(N2v$>HpC%}cUY&T~qc-xJp@ zSo2qwjYR1iR*uFhABp=1lf~YRd`_jXcIB{MWNp^p&HY^;9;E(`9QV;#>$Cn@xnxsR znbo^HF=CBw2l3RC!&z2UEWg+_voZ>@b9PwDukj>6V*yACjd!$gGj50LWB!H{&sXUN~hbjhJ0y+5|7ng-4QZ9`R*bySJ3jgLq=$nPRoxe$t+e^9W&p3YHyZ9 zH`Aw|pdbj1(kWAz&txaXVSW8VbACxp@+-wL4Q~Qv2@Mi=hwiidtryX|LPj#Miy>Fw>dn-#1> z&?bfnw`#NI=62i33f3WL|3ih=-qmiqSmQP`IHpc0YdYF(2kSuVP#3NS;Q^+qnKh1S z?tga=(p;0E-7>$rzL6C=0FZW>B$7}~f_BR?7fr0Nsqj!QEOcn$U^C1`11mJtx%3Y( zNi?D20E38ZF8Hj_P?xX{b)ne0;z(_`TvlkPOIe4y677~o%VUMSS<*Vxm1wt=2E<{7 zh8mc*4U}lNb#p;yjT`Ff*^8BEx3$<(S)s*Zeg^wPHR4d+L&s-!} z3Uo<9qNi&q>G!+8pnNy)}gLw|EJW( ztk6*RZXN21@=}+rnH6Gs1nW>$s@*yo`|3(awJLoiuGoiG!5o5>1IYs6(10lEOJC|3BVen}n@PldhTc)TvXaPMtb+ j>eQ)Ir%sL2qeuS(1m~VEuy16Q00000NkvXXu0mjf*~!nA diff --git a/docs/artwork/Squirrel-Logo-Square.png b/docs/artwork/Squirrel-Logo-Square.png deleted file mode 100644 index 777c3c90c52be9c907201e8643f5320ac631c6e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6662 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 diff --git a/docs/artwork/Squirrel-Logo.svg b/docs/artwork/Squirrel-Logo.svg deleted file mode 100644 index b284e7cf..00000000 --- a/docs/artwork/Squirrel-Logo.svg +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - Created by Jetro Cabau Quirós - from the Noun Project - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Squirrel - - diff --git a/docs/contributing/branching-strategy.md b/docs/contributing/branching-strategy.md deleted file mode 100644 index ce3fe782..00000000 --- a/docs/contributing/branching-strategy.md +++ /dev/null @@ -1,28 +0,0 @@ -| [docs](..) / [contributing](.) / branching-strategy.md -|:---| - -# tl;dr - -1. Fork Squirrel.Windows on GitHub -2. Send features/fixes via pull request targeting the default branch: `develop` - - -# Branching Strategy - -Squirrel.Windows uses a very lightweight rendition of [gitflow](https://nvie.com/posts/a-successful-git-branching-model/). - -* `master` branch - the `master` branch is where official releases of squirrel are built. Changes to `master` are made only via merge commits from the `develop` branch. Tags are made for each each release. -* `develop` branch - the `develop` branch is where the next version of squirrel is under development. Changes to `develop` are made via pull request from forks and feature branches. So `develop` is the default branch on GitHub. -* fork - your development takes place in fork. When a feature/fix is ready, a pull request is sent to Squirrel.Windows targeting the `develop` branch. - -**Why gitflow?** This lightweight rendition of giflow adds minimal "overhead" in the `develop` branch. The `develop` branch allows us to experiment with new ideas and iterate on features. When "enough" work is completed for a release, complete integration testing--including multi-version upgrades--is done on the `develop` branch. When the testing is completed successfully, the `develop` branch is integrated into `master` and a release is automatically built and released. - - -## See Also - -* [Building Squirrel](building-squirrel.md) - steps to build squirrel for the impatient. -* [VS Solution Overview](vs-solution-overview.md) - overview of the various projects in the Squirrel.Windows Visual Studio solution. - ---- -| Return: [Table of Contents](../readme.md) | -|----| diff --git a/docs/contributing/building-squirrel.md b/docs/contributing/building-squirrel.md deleted file mode 100644 index 66b0f9c5..00000000 --- a/docs/contributing/building-squirrel.md +++ /dev/null @@ -1,23 +0,0 @@ -| [docs](..) / [contributing](.) / building-squirrel.md -|:---| - -# Building Squirrel - -Squirrel.Windows is a fairly typical C# / C++ project, the only special part is making sure to clone submodules via the command shown below. - -For the Impatient: - -```sh -git clone https://github.com/squirrel/squirrel.windows -cd squirrel.windows -git submodule update --init --recursive ## THIS IS THE PART YOU PROBABLY FORGOT -devbuild.cmd -``` - -**Tip:** You can compile the Squirrel.Windows solution with Visual Studio version 2019 and above (including community edition). - -**Tip:** For Visual Studio versions that use the Visual Studio Installer (2017/2019 and above), you will need to have at least both Desktop .NET development and Desktop C++ development workloads checked in the Visual Studio Installer. You will also need to make sure that the individual package for the VC++ version used by Squirrel is checked. - ---- -| Return: [Table of Contents](../readme.md) | -|----| diff --git a/docs/contributing/contributing.md b/docs/contributing/contributing.md deleted file mode 100644 index eed5c89d..00000000 --- a/docs/contributing/contributing.md +++ /dev/null @@ -1,20 +0,0 @@ -| [docs](..) / [contributing](.) / contributing.md -|:---| - -# Contributing - -Why not give back and help make Squirrel even better? Here is an overview of ways you can become more involved. - -* **Contribute Documentation** - improve the documentation or provide additional code examples to benefit others. -* **Subscribe to Issues on GitHub** - have some experience using Squirrel? Help answer questions under issues or post a Pull Request fixing a bug. -* **Contribute Code** - have a great feature that you feel is a good fit for Squirrel? Send a Pull Request. - - -## See Also - -* [Building Squirrel](building-squirrel.md) - steps to build squirrel for the impatient. -* [VS Solution Overview](vs-solution-overview.md) - overview of the various projects in the Squirrel.Windows Visual Studio solution. - ---- -| Return: [Table of Contents](../readme.md) | -|----| diff --git a/docs/contributing/vs-solution-overview.md b/docs/contributing/vs-solution-overview.md deleted file mode 100644 index 2f4a8dae..00000000 --- a/docs/contributing/vs-solution-overview.md +++ /dev/null @@ -1,29 +0,0 @@ -| [docs](..) / [contributing](.) / vs-solution-overview.md -|:---| - -# Visual Studio Solution Overview - -An overview of the various projects in the Squirrel.Windows Visual Studio solution and how they relate to different aspects of the update process. - - -| Project / Assembly Name | Libraries (NuGet) | Libraries (NuGet) | Releases Directory (releasify output) | MyApp (install location) | -|--------------------------------|---------|-----|------------------|-------------| -| **Core** NuGet.Squirrel.dll | NuGet.Squirrel.dll | | | | -| **Squirrel** Squirrel.dll | Squirrel.dll | | | | -| **SyncRelease** SyncRelease.exe | | SyncRelease.exe | | | -| **Update** Update.exe | | Squirrel.exe | | Update.exe | -| **Setup** Setup.exe | | Setup.exe | Setup.exe (+MyApp.Latest.nupkg) | | -| **WriteZipToSetup** WriteZipToSetup.exe | | WriteZipToSetup.exe | | | - -* **Project / Assembly Name**: Solution project name (from Squirrel.sln) and output assembly name. -* **Libraries (NuGet)**: Program libraries installed added as references in your MyApp solution when adding the Squirrel.Windows NuGet package to your project. -* **Libraries (NuGet)**: Executable tools included in the Squirrel.Windows NuGet package used to prepare deployments via the Package Manager Console (e.g., Squirrel.exe). -* **Releases Directory (releasify output)**: Directory where the Squirrel --releasify process outputs the packages and Setup application for your project (e.g., MyAppSourceCode/Releases). -* **MyApp (install location)**: MyApp install directory (e.g., %LOCALAPPDATA%\MyApp) where the application is actually installed and updated via Squirrel.Windows. - -**Note**: Note that the Squirrel.exe application found in the tools directory of the Squirrel.Windows NuGet package is actually a renamed version of the Update.exe application (see Squirrel.Windows\src\Squirrel.nuspec) - ---- -| Return: [Table of Contents](../readme.md) | -|----| - diff --git a/docs/faq.md b/docs/faq.md deleted file mode 100644 index 629ec746..00000000 --- a/docs/faq.md +++ /dev/null @@ -1,73 +0,0 @@ -| [docs](.) / faq.md | -|:---| - -# Frequently Asked Questions (FAQ) - -Frequently Asked Questions for Squirrel.Windows, organized by area below. - -## Integrating - -1. **Can Squirrel.Windows be used on applications that aren't made with .Net?** - Yes, you can package a non-c# application in the same manner as described in the Getting Started guide. For additional customization, see [custom squirrel events for non-c# apps](using/custom-squirrel-events-non-cs.md). -1. **How do I migrate a ClickOnce app to Squirrel?** - You may want to look into the [ClickOnceToSquirrelMigrator](https://github.com/flagbug/ClickOnceToSquirrelMigrator) migration helper. -1. **How can I determine if my app is a Squirrel app? I provide a squirrel and non-squirrel install version and want to know which is running.** - You can check for the `Update.exe` in the parent directory to determine if the app is using Squirrel ([see #574](https://github.com/Squirrel/Squirrel.Windows/issues/574#issuecomment-176043311)). - -``` -var assembly = Assembly.GetEntryAssembly(); -var updateDotExe = Path.Combine(Path.GetDirectoryName(assembly.Location), "..", "Update.exe"); -var isSquirrelInstall = File.Exists(updateDotExe); -``` - -## Packaging - -1. **How can I tell what is going wrong with the releasify?** - Check `packages\Squirrel.Windows.VERSION\tools\SquirrelSetup.log` for logging information when creating packages. -2. **Do I really have to add all the Squirrel DLLs to my app ?** - Yes, you have to add them all to the NuGet package, however, [others](https://github.com/Squirrel/Squirrel.Windows/issues/531) have used [ILMerge](https://www.microsoft.com/en-us/research/people/mbarnett/#ilmerge) to generate a single assembly. - -## Distributing - -1. **Can I distribute update files on IIS?** - Yes you can, see [Microsoft IIS](using/microsoft-iis.md) for details. - -## Installing - -1. **The Initial Install via `Setup.exe` is failing. How do I learn what is going wrong?** - Check `%LocalAppData%\SquirrelTemp\SquirrelSetup.log` for logs related to the initial install. -1. **Installer application doesn't do anything. The animation flashes but the application never starts.** - The app is likely crashing on the first run (see [Debugging Installs](using/debugging-installs.md) for details). -1. **The Installer seems to be blocked in Enterprise environments. How can I confirm this?** - Squirrel may be prevented from installing if Group Policy disallows the running of executables from `%LocalAppData%`. In this case, the "show log" button on the "installation failed" dialog will fail because `Update.exe` can not run to create a log file. - The `Setup.exe` for your application should still copy files to `%LocalAppData%\SquirrelTemp` as a pre-installation step. To verify that Group Policy is restricting you, execute `Update.exe` from the command line as follows: - ``` - C:\>%LocalAppData\MyApp\Update.exe - This program is blocked by group policy. For more information, contact your system administrator. - ``` - The best course of action is to request that executables for Squirrel and your application be whitelisted by your corporate overlords. -1. **No Shortcuts are Created for my Application** - Verify that the NuGet Package Metadata `id` property doesn't have a [space or \[dot\]](https://github.com/Squirrel/Squirrel.Windows/issues/530) in it. -1. **Can I use a different name for the `Setup.exe` install application?** - Yes, you can rename the `Setup.exe` to what ever you wish (e.g., `MyAppSetup.exe`) ([see #611](https://github.com/Squirrel/Squirrel.Windows/issues/611)) -1. **Virus scanner is returning false positives on `MyApp.exe` or `Update.exe`. What can I do?** - [Application Signing](using/application-signing.md) will help. In addition, you can submit false positives to the various antivirus authors (e.g., [Symantec](https://submit.symantec.com/false_positive/), [Microsoft](https://www.microsoft.com/security/portal/Submission/Submit.aspx), [AVG](http://www.avg.com/submit-sample), [Comodo](https://www.comodo.com/home/internet-security/submit.php), [McAfee](https://support.mcafeesaas.com/MCAFEE/_cs/AnswerDetail.aspx?aid=65), [List of Submission Locations](http://www.techsupportalert.com/content/how-report-malware-or-false-positives-multiple-antivirus-vendors.htm), [see #218](https://github.com/Squirrel/Squirrel.Windows/issues/218#issuecomment-166406180)). -1. **Why is my application icon mangled after installation?** - Application icons specified in the [NuGet Package Metadata](using/nuget-package-metadata.md) must be of type icon (.ICO) rather than an image file (source: [issue #745](https://github.com/Squirrel/Squirrel.Windows/issues/745)) - -## Updating - -1. **How do I determine what is going wrong with the UpdateManager in MyApp?** - You can setup your `\bin` directory so you can execute MyApp in the Visual Studio debugger and simply step through the update process as well as catch exceptions and log the results (see [Debugging Updates](using/debugging-updates.md) for details) -2. **I've Distributed a Broken Copy of Update.exe. How can I fix this?** - Sometimes, you might ship a broken copy of `Update.exe` that succeeds the initial install, but doesn't do what you want for some reason. To fix this, you can force an update of the `Update.exe` by including a copy of `Squirrel.exe` in your app update package. If Squirrel sees this, it will copy in this latest version to the local app installation. -3. **How can you replace DLLs while they're loaded? Impossible!** - You can't. So, how can you do it? The basic trick that ClickOnce uses is, you have a folder of EXEs and DLLs, and an Application Shortcut. When ClickOnce goes to update its stuff, it builds a completely *new* folder of binaries, then the last thing it does is rewrite the app shortcut to point to the new folder. -4. **My previous application version is still around after the update. Doesn't Squirrel clean up old versions?** - The current and immediately previous version of your application are not deleted on clean up (see [issue #589](https://github.com/Squirrel/Squirrel.Windows/issues/589)). -5. **How can I persist the [.NET Application Settings](https://docs.microsoft.com/en-us/dotnet/framework/winforms/advanced/application-settings-overview) after an update?** - See (https://github.com/Squirrel/Squirrel.Windows/issues/198#issuecomment-299262613) for a simple workaround if you want to keep using .NET Application Settings. Alternatively, consider using a solution that lets you control where the settings are persisted, and store settings in an app-specific location under `%LOCALAPPDATA%`. - ---- -| Return: [Table of Contents](readme.md) | -|:---| diff --git a/docs/getting-started/0-overview.md b/docs/getting-started/0-overview.md deleted file mode 100644 index 17010189..00000000 --- a/docs/getting-started/0-overview.md +++ /dev/null @@ -1,34 +0,0 @@ -| [docs](..) / [getting-started](.) / 0-overview.md| -|:---| - -# Getting Started Guide - -Getting Started will walk you through the integration of Squirrel.Windows for a basic c# Windows Forms application named MyApp. - -## MyApp - -MyApp simply displays the assembly location and application version on a simple form. - -![](images/1-MyApp.png) - -For simplicity, any unneeded references and files have been removed from the solution. - -![](images/1-MyApp-Solution.png) - -If you wish to follow along, you can [download](example/MyApp.zip) a zip file of the MyApp solution. - -## Overview -This guide will go over the following steps to demonstrate using Squirrel.Windows to distribute and update MyApp. - -1. [Integrating](1-integrating.md) - integrating Squirrel `UpdateManager` into your application. -1. [Packaging](2-packaging.md) - packaging application files and preparing them for release. -1. [Distributing](3-distributing.md) - providing install and update files for users. -1. [Installing](4-installing.md) - process of initial installation of your application. -1. [Updating](5-updating.md) - process of updating an existing install. - ---- -| Next: [1. Integrating](1-integrating.md)| -|:---| - - - diff --git a/docs/getting-started/1-integrating.md b/docs/getting-started/1-integrating.md deleted file mode 100644 index c8d6412e..00000000 --- a/docs/getting-started/1-integrating.md +++ /dev/null @@ -1,62 +0,0 @@ -| [docs](..) / [getting-started](.) / 1-integrating.md | -|:---| - - - -# Step 1. Integrating - -The first step is to configure MyApp to work with Squirrel.Windows. This requires you to install the Squirrel.Windows NuGet Package into the `MyApp.sln`. - -## Installing Squirrel.Windows - -The easiest way to install the Squirrel.Windows is using the [Package Manager Console](https://docs.NuGet.org/consume/package-manager-console) in Visual Studio after loading the MyApp solution. - -~~~powershell -PM> Install-Package Squirrel.Windows -~~~ - -### Squirrel.Windows References - -The package will install a number of dependent packages as well as tools that will be used to prepare MyApp to be released. The References in the Solution Explorer of the MyApp project now looks like the following (as of Squirrel.Windows version 1.2.2): - -![](images/1.1-post-package-install.png) - -**Tip:** Alternatively, you can use the "Manage NuGet Packages" GUI to install Squirrel.Windows (right clicking on your project in the Solution Explorer of Visual Studio and select "Manage NuGet Packages..."). - -## Basic Updating - -For the basic example we are going to have MyApp update from your local file system rather than distributing the files via the web. See section [Packaging](2-packaging.md) for additional options related to the distributing the update files. - -### Basic Squirrel.Windows Update Code -The following code is added to MyApp `Program.cs` to cause the application to check for, download, and install any new releases of MyApp in the background while you use the application. - -**`Program.cs`** - -~~~cs -using Squirrel; -using System.Threading.Tasks; -~~~ - -**`static async Task Main()`** - -~~~cs -using (var mgr = new UpdateManager("C:\\Projects\\MyApp\\Releases")) -{ - await mgr.UpdateApp(); -} -~~~ - -The code above demonstrates the most basic update mechanism using the `UpdateApp()` method in an asynchronous task. The actions it takes will be discussed further in section [Updating](5-updating.md). - -**Caution:** The path you provide the `UpdateManager` is the path to the directory where the `RELEASES` file is located (which is also named `Releases` by default), and not the actual `RELEASES` file. - -**Tip:** By default, the files for updating MyApp will be placed in the same directory as your `MyApp.sln` file under a `Releases` directory (e.g., `C:\Projects\MyApp\Releases`). - - -**Tip:** In this example we simply put the code in the `Program.cs` file. For a production application, place the update code later in start-up process so as to avoid slowing down your program start. - -**Tip:** If you attempt to debug the application via Visual Studio, you will get an exception of `Update.exe not found, not a Squirrel-installed app?`. You can resolve this by placing a copy of the Update.exe in your bin directory (see [Debugging Updates: Update.exe not found?](../using/debugging-updates.md) section for details). - ---- -| Previous: [Getting Started Guide](0-overview.md) | Next: [2. Packaging](2-packaging.md)| -|:---|:---| diff --git a/docs/getting-started/2-packaging.md b/docs/getting-started/2-packaging.md deleted file mode 100644 index bd4f4f43..00000000 --- a/docs/getting-started/2-packaging.md +++ /dev/null @@ -1,80 +0,0 @@ -| [docs](..) / [getting-started](.) / 2-packaging.md | -|:---| - -# Step 2. Packaging - -Packaging is the process of building, packing, and preparing MyApp release packages for distribution. - -## Building - -The first step in preparing the application for distribution is to build the application. - -1. **Set MyApp Version** - set the initial application version. - - **`Properties\AssemblyInfo.cs`** - - ~~~cs - [assembly: AssemblyVersion("1.0.0")] - [assembly: AssemblyFileVersion("1.0.0")] - ~~~ -2. **Switch to Release** - switch your build configuration to `Release`. -3. **Build MyApp** - build your application to ensure the latest changes are included in the package we will be creating. - -## Packing - -Squirrel uses [NuGet](https://www.NuGet.org/) for bundling application files and various application properties (e.g., application name, version, description) in a single release package. - -Section [NuGet Package Metadata](../using/nuget-package-metadata.md) provides additional details on using NuGet and `.nuspec` files to automate the packing of your application. We will be going through the process using the [NuGet Package Explorer](https://github.com/NuGetPackageExplorer/NuGetPackageExplorer) to manually create a NuGet package. - -1. **Creating a New NuGet Package** - the first step is to create a new NuGet package. -2. **Edit Metadata** - update package metadata for MyApp. - * **Id** - name of the application (no spaces) - * **Version** - version specified in `Properties\Assembly.cs` - * **Dependencies** - Squirrel expects no dependencies in the package (all files should be explicitly added to the package) -3. **Add lib & net45** - add the `lib` folder and the `net45` folder to the project. Squirrel is expecting a single `lib / net45` directory provided regardless of whether your app is a `net45` application. -4. **Add Release Files** - add all the files from `bin\Release` needed by MyApp to execute (including the various files required by Squirrel). - * **Include MyApp Files:** MyApp.exe, MyApp.exe.config, any non-standard .NET dll's needed by MyApp.exe. - * **Include Squirrel Files:** Squirrel.dll, Splat.dll, NuGet.Squirrel.dll, Mono.Cecil.\*, DeltaCompressionDotNet.\*, - * **Exclude:** *.vshost.\*, *.pdb files -5. **Save the NuGet Package File** - save the NuGet package file to where you can easily access later (e.g., `MyApp.sln` directory). Follow the given naming format (e.g., `MyApp.1.0.0.nupkg`). - -![](images/1.2-nuget-package-explorer.png) - -## Releasifying - -Releasifying is the process of preparing the `MyApp.1.0.0.nupkg` for distribution. - -### Using Releasify - -You use the `Squirrel.exe` tool that was included in the Squirrel.Windows package you installed in the `MyApp.sln` previously. - -Use the [Package Manager Console](https://docs.NuGet.org/consume/package-manager-console) to execute `Squirrel.exe --releasify` command. - -~~~powershell -PM> Squirrel --releasify MyApp.1.0.0.nupkg -~~~ - -**Tip:** If you get an error stating that `...'Squirrel' is not recognized...` then you may simply need to restart Visual Studio so the `Package Manager Console` will have loaded all the package tools. - -### Releasify Output - -The `Squirrel --releasify` command completes the following: - -* **Create `Releases` Directory** - creates a Releases directory (in the `MyApp.sln` directory by default). -* **Create `Setup.exe`** - creates a `Setup.exe` file which includes the latest version of the application to be installed. -* **Create `RELEASES` File** - creates a file that provides a list of all release files for MyApp to be used during the update process -* **Create `MyApp.1.0.0-full.nupkg`** - copies the package you created to the `Releases` directory. -* **Create `MyApp.*.*.*-delta.nupkg`** - if you are releasing an update, releasify creates a delta file package to reduce the update package size (see [Updating](5-updating.md) for details). - -**`C:\Projects\MyApp\Releases`** - -![](images/1.2-releases-directory.png) - -## See Also - -* [Visual Studio Build Packaging](../using/visual-studio-packaging.md) - integrating NuGet packaging into your visual studio build process to include packing and releasifying. - - ---- -| Previous: [1. Integrating](1-integrating.md) | Next: [3. Distributing](3-distributing.md)| -|:---|:---| diff --git a/docs/getting-started/3-distributing.md b/docs/getting-started/3-distributing.md deleted file mode 100644 index a53d329e..00000000 --- a/docs/getting-started/3-distributing.md +++ /dev/null @@ -1,22 +0,0 @@ -| [docs](..) / [getting-started](.) / 3-distributing.md | -|:---| - -# Step 3. Distributing - -After packaging MyApp for distribution, the various files in the `Releases` directory are used to distribute MyApp to users. - -* **Setup Application** - the `Setup.exe` application is provided to new users to install the current version of MyApp (see [Installing](4-installing.md) for details). -* **Update Files** - the `RELEASES` file, along with versioned full and delta packages, are used by the update process (see [Updating](5-updating.md) for details). - -## Local File Distribution - -For simplicity, this Getting Started guide uses a local file system location for updates. The location is defined in the update location provided to the `UpdateManager` (see code in [Integrating: Basic Updating](1-integrating.md)). - -This generally is not practical for updates, unless all your users have access to similar network path where the files could be easily placed. - - - ---- -| Previous: [2. Packaging](2-packaging.md) | Next: [4. Installing](4-installing.md)| -|:---|:---| - diff --git a/docs/getting-started/4-installing.md b/docs/getting-started/4-installing.md deleted file mode 100644 index 45911557..00000000 --- a/docs/getting-started/4-installing.md +++ /dev/null @@ -1,31 +0,0 @@ -| [docs](..) / [getting-started](.) / 4-installing.md | -|:---| -# Step 4. Installing - -The process to install MyApp is as simple as executing the `Setup.exe` application. `Setup.exe` is generated by the `Squirrel --releasify` process and is located in the `Releases` directory. - -## Setup.exe - -`Setup.exe` is a C++ bootstrapper application used to install MyApp on the user's local system. It includes the latest full version of the MyApp package files embedded in the exe file (see [Install Process](../using/install-process.md) for details). - -## Install Process Overview - -The `Setup.exe` application does the following (see [Install Process](../using/install-process.md) for details): - -* Creates a `%LocalAppData%\MyApp` directory for the MyApp to be installed. -* Extracts and prepares the MyApp files under an `app-1.0.0` directory. -* Launches `app-1.0.0\MyApp.exe` at the end of the setup process. - -### Installed File Structure - -An installation for MyApp will look like the following after the initial installation. - -#### `%LocalAppData%\MyApp` Directory - -![](images/1.3-local-app-data-dir.png) - - ---- -| Previous: [3. Distributing](3-distributing.md) | Next: [5. Updating](5-updating.md)| -|:---|:---| - diff --git a/docs/getting-started/5-updating.md b/docs/getting-started/5-updating.md deleted file mode 100644 index 732a9b97..00000000 --- a/docs/getting-started/5-updating.md +++ /dev/null @@ -1,99 +0,0 @@ -| [docs](..) / [getting-started](.) / 5-updating.md | -|:---| - -# Step 5. Updating - -The update process uses the update files generated by the `Squirrel --releasify` process. This includes the `RELEASES` file as well as versioned full and delta packages as required. The location of where to look for the distributed update files is provided to the `UpdateManager` in the MyApp code (see code in [Integrating: Basic Updating](1-integrating.md)). - -Updating MyApp to a new version is the culmination of integrating, packaging, and distributing after installing MyApp. The process will cause you to revisit the packaging and distributing steps. -HH - -To release a new update, you must first build, pack, and releasify your updated application. - -### Building - -1. **Update MyApp Version** - update the application version. - - **`Properties\AssemblyInfo.cs`** - - ~~~cs - [assembly: AssemblyVersion("1.0.1")] [assembly: AssemblyFileVersion("1.0.1")] - ~~~ -2. **Switch to Release** - switch your build configuration to `Release`. -3. **Build MyApp** - build your application to ensure the latest changes are included in the package we will be creating. - -### Packing - -Using [NuGet Package Explorer](https://npe.codeplex.com/) complete the following: - -1. **Open Previous NuGet Package** - open the previous NuGet package you created for MyApp version 1.0.0. -2. **Update Version** - update the version in the metadata. -4. **Replace Release Files** - replace the changed files under `lib\net45`. You can simply drag and drop any program specific files that have changed (i.e., the `MyApp.exe` file is the only one that has updated in the example). -5. **Save the NuGet Package File as New Version** - use the "Save As..." feature to save the new version of the package `MyApp.1.0.1.nupkg`. - -### Releasifying - -Use the [Package Manager Console](https://docs.NuGet.org/consume/package-manager-console) to execute `Squirrel.exe --releasify` command using the new `MyApp.1.0.1.nupkg` package. - -~~~powershell -PM> Squirrel --releasify MyApp.1.0.1.nupkg -~~~ - -**Tip:** If you get an error stating that `...'Squirrel' is not recognized...` then you may simply need to restart Visual Studio so the `Package Manager Console` will have loaded all the package tools. This behavior has been seen on the Community Edition of VS 2013 and 2015. - -#### Releasify Output - -After packaging the new MyApp version 1.0.1, the `Releases` directory has been updated as follows: - -* **Updated Setup Application** - the `Setup.exe` application has been updated to include the latest MyApp version 1.0.1 package. -* **Updated Files** - the `RELEASES` file has been appended to include the newly created full and delta packages. - -## Distributing the New Release - -The `Releases` directory now includes the updated files to distribute to your users. - -**`Releases` Directory** - -![](images/1.5-releases-directory.png) - -The `RELEASES` file contains SHA1 hash, filename, and file size for each package. This information is utilized by the application update process. - -**`RELEASES` File** - -~~~ -E3F67244E4166A65310C816221A12685C83F8E6F MyApp-1.0.0-full.nupkg 600725 -0D777EA94C612E8BF1EA7379164CAEFBA6E24463 MyApp-1.0.1-delta.nupkg 6030 -85F4D657F8424DD437D1B33CC4511EA7AD86B1A7 MyApp-1.0.1-full.nupkg 600752 -~~~ - - -## Application Updating - -In [Step 1. Integrating](1-integrating.md), we configured MyApp to look for and install any updates in the background each time MyApp is executed. In the MyApp example, a path to the `Releases` directory on the file system was specified. - -### Updating Process Overview - -The following steps are performed by the `UpdateManager` each time MyApp is executed (see [Update Process](../using/update-process.md) for details): - -* The `UpdateManager` checks the `RELEASES` file at the distribution location for any updates. -* Any update packages are downloaded and the new MyApp is prepared for execution. -* App shortcuts are updated and old versions of MyApp are cleaned up. - -### MyApp Example - -The first time I run MyApp after providing the update the application is executed like normal. - -![](images/1-MyApp.png) - -In the background, MyApp has obtained and applied the updates in the installation directory. - -![](images/1.5-local-app-data-dir.png) - -The next time MyApp is executed, it will be the newly installed version. - -![](images/1.5-MyApp.png) - ---- -| Previous: [4. Installing](4-installing.md) | Return: [Table of Contents](../readme.md)| -|:---|:---| - diff --git a/docs/getting-started/example/MyApp.zip b/docs/getting-started/example/MyApp.zip deleted file mode 100644 index 8b1ab5e9f5997918f43b29761e78c2a3c551c1f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8918 zcmZ{q1yCGI*Y_89_n?7b!QI^gizm3d>morH3GNQTJ-EBO2A2>B8X&kkEFbs1&-*0r zt^3VZSM5~IuV?!7^yzcXf0ThRu($vK01*H*@RaHE5S<8nIcs}qm@iGiL(I{U<)ty3 zIM|z8S$K7Mbw&9|*++|OS*tji`({008=bA6weN*^Z6b1mvRvRP1BL)Z93lIdZn>ZHeShy0eGz$ZT+DCxPjct~@tx?*8u5hPr+pC?{V^=^S1Vwk(EP zEsD&WBp+(gtSUhJtPv%q9DHDmaoT<`Z&p+tE%OZsFe8k8FI6>Hm|f1(Oz9DoD`%SJ zp$0WC7f9#;@0w{r?y*otz+utwMJ-gFFE^7Cdjv!|@tMUYz7mi7g9=T7zgN>LO|egi z54zNn(wv3$=%8Pm5}fopwsX|$aM6{^U-krtO)b5$Iuym zq4x^%HZCpODeSgus3slF?OMb ziqe)erZ4;+q>nR6F*@-TGzpwjhUCVV*c_=(*I7K*Z?r~MUELQ&zpt_!NPtzJ#Vza{ zG-(^R+O}TP39OAz_^yqc-gJQ>c#Kk+HHaJb9&u(4ZqJ@|Z3%2*|sU=XH9d`8ETox&Eo7!AdwUl=vr9J>aVbt)wRXqan|X$hCX z#XLEnaLXGLlqsvAABZ8njpz+ek7KJy>y1`Mz^-H*j!sRo#Sv@nzn^A9(i2Jjs_({2 zYGr?F#?X{5)LXppW8~=@4^)jpFV-Y>|M>-p16ActiDiT`*N+eQ&@ss;a{9q=ozCAp z8bX-wPs>?-n1zcYok7WqOen*<@f#<26D_!>VG)|bDQW->#WlVe+B%D{ceUsW>Vj*+WzeNw0L5|Jw44e@ZCA1Q~}U$`A~DUH5vNg%g!-IOmc78|;TW zo&pP|p6S$c;^%LecX0|1l99<5Pw)&ib~jI-khs_b;hrVU}djjWO>su_VF2V(6? z!;UzlW@kxVs!Ku*^3i&4cbI*wo3q$SN$cIln#R;38dbj6v78qcuA9VT5*mKrIpCUrQJ%3(7YCLZ!)WFYYMXa>OsK%7~e$;@Z-oI(j zrFzSY4`MX&@|u*E!;*DJiB;wpOzo|P*wZY3 z7K!t6tgs+iPmhs?r~VO%TOUpE8$Om3U%RIjZB|z=2kW5+g`-wQJD--^u|}LW_?3m& zkm7^(O1M)?p?yi$+I@Xm8&iB7He)3HGu$AwFUtuX=!%tL!&^2Y%WAL>bg$QTe9y${ zX(9x~Sd0Mh~J9UXd|1#=V>;=8DPQvv@zHw9n$gTVQ(ESd)qJU9X$K>Eq5QhY93jaV?NGLcEuW zN8OT3-qVT)s?u2q%bH*Qt^2G;h9Hs8!`E)hqf=7DQ@vss2uwFHj@a%hDv)QTGqB8i z5Cwm+_n-=j@VM~D_0|DV$V_NJ8nrxE0{$ghb6T}yzCsVlI&HDPY{_nScX(bR$!f=A zi#`UcJ-#H0U8Zht`P)?JzNJr5)Jn2ri469s7u>8|{_(j&*01Ky5J6*+Q%ONcAk>xG zpZKX8tkdE7iPQ5g(ld+AE+u&IV@@zFrVDwN-QAP?1mkB&<3T9r4DIztj~8$k$Ct~K zGn{bT(5yo5%E&w|Fn`I$&{bx>=~ zhb%E9<-zQ|oTL=?zkuwm+S)@AxS%SAg#46FkF*Z7Usc59BBC(Ptk^xnwQrz>@hT0eDHrz0Y04Q3hf7xK zq>4*m4Ae`=o_jzk(LufMQ=-$hF(wlbfm1z0YrV++@HE}=jVp*W1KGE1K39*gd^s(9 zbklDzmBCe1xD_iF=MlPPKCe%0bg+15nhLkZ3Ek?w63tAbu^HeJes!^)T8cXM^K)5{ zU;|V&HTth0#!Fb0*9H>F!8lZG4X|o>CV~`}@-vC9(C|Rvsn^oeY`NAGsF=d{J))+f zM%=fd+jZS)p{gf0JNJ4PlIitan58LVy$g0d!-J_bQ$?~`a-YJS;nA2HKEoZEioYsD+~!iye8cW)JxIV1yVuHCg%v6(Isa-`pk=-(+p9rYyJ`w zI_bbK7WsKc=ttT19NdH2qpcz)nYj-nAi0^`KGEnS!S!2&50EoVcxwDNgGdrWJG^w| z)L*VU!1d%tU_=7ZY*o^q+S4}i@^E#&&JSE+9VM}H$XWVQPPP88a6p8BbYV2lKAj71 zoTyQY;Jfm@aF@ZH#k%i%6FOf-6kk){znjT2x7*3-BB94?CI|=|2^w=D|kU8_Rg^ef??SRrdmRl6}?NOy1thKB>v( z+CSfcZO`~+kO#UySeG*dVcBCK2{3i{8rvx?`n&JjB56W$d)w`*j_0JfG%?=QXG-IU zAe4MRKYpvvRDP&vR)8FnhP8z}#!Yuo73QGlTkx!mWb4=V;Y7I+CCb+?qqE}<4TSt@ zgQqz^_9@EKy1%Z?8Bg7WQdk|$x0Y_u*+ZMl)-x)x_fVF(>HY25Q8pXkxh5YoZKEOE zG?j#=L$7AJgaUnIsI2+M17p4MK8ngCHbN$IM4|ryfoj!No=0U8L-Z+}*8K{!2UhPe zsIC`QYTjbrulc&=qr6NpE%J)9H&EcDnNq&JddYR8;hw(J|i~h-ebSTjoCr)OQc#H%E7PUXTRcsof*^NH*{#u^lrsg0s~Vk(>jKDXjy9Ywx?RM zd)cQTbm~!t0fhy+#$U2i<6Gm7WOuyar?cW`w;|PYfT~K5%tXmD2=Vk?f1-o5Vr9bd zln1f*QxceAfCbaanO3sYxAF`oFk2jZr=$~Q8@~P(UqVJvjRY&}P*=sm5=K^W9#ge) zOQf_aU7RHk_IShwlxm#+WvX_%*{W96qC4yB*ATq1Pjmg|WPEF#t@_C|76NE1xHxpAfcMSO}|F_z^PO6LH)Pi=I___Zy0*QNzkq!a*DdNUL^8F9EWmPSgAv zyc?;MUc->(bN;ZPGjX++aGv$Gr7^V+oUv5(-v1_&TV7dZ{nW7;W?A*QhO3{gA4Qom zWxB`h&6gitt3$KvGOAaKr_!Xie(R~ml}{I@B0L3&FcMsnoJB#~+=*#rWhz$Wm+AHd z2n@ZBhjPfOhCKxt!HBE1h>4yGy}Xr&{2#~>2e7E&jji#JrgbQ|DYdqEuilB1C6E;J zn(Mz2ZvgHy#}i8e^ORXz3fNRlQa8_7jJn zU$I!8Q*PjP%dm`{6l>FaJVc0Gclf=`ogzJD7{&R?-Cv3TGcQXW;~&c$WNTj-Kc?6# ziW|Hr&wesBhek7Q>WTF|C}LHbz&JGOm?1Nst#J0zSUi>%v_W-;tmsb(#|iHag4|8= z89eXpJ|MuF2s262$IE$anvoXDY0k3|$kENTZc@IdQ(6+u%}bS;=?kyL;v&U??imnE zP~?OOh-!@c9(>@6!abtg#AdZ%?yWxwu8wa|TeK|~W2Ns$NmuuAmCf`^^_Phi;|%Bg z$`cDzAi&zhN{Bx6Yh9J=NW_^t>m32PRtv3LrH#=mbX?jQe`~eL$vx2=u9t_=O18-@ zi!*9=W{#VY3!)g_JTgbLS3M&s#JuDVQ4Wu+;Bf)Ovc8WbKU>~+@lAfr;C8=z$H(w?Lh*^VNpN-khSGdSEVGT3 zx5cnn^z@G+0x-i@1}wv#8jkcbIh+6h&OheJjg6fdgo%r6gt$BFwW}IXw-LH>! zmN~Rv46h9!C;_W%ZC9ztL04A*cV3>GuoasJZf+i)rFoQ;kVQ70;v{slVri^%Y zVH@nY#PW47HD+1b)9RJ&v%8$LPf@X3z2e1}O|Kd`o+@;oy`Ts6pZ37dj#umCUT*n5 zce6zf@VH~nii&=oP!)-~wgMsKWXYsL1y8AjLa6BvK81ccyi z7X@7Bd87Cwaf5uI1dNOC4FIcl%f(_1lt6YkYrLt?16&xHyiZ4#IQJCK`NlgaKoMHk zd-OGd=^cGXg3gv*@JjT?=VR=xx_%)`Fm$sD~134$=d8}l~SQ9)7|=`qpg1bwBI z6`@VXUn<#5ugD0*&@I)_P3N63sqWZBk??C|l>NJY1WC}-NzHZl-5c0(829CCqH%X^ z6J?|)vyWiy5(DL!@uqa?4Ww@(NAn{>frB`;-IWq8D2oPFG(r_1~634Y#wa*xR=|-Mt}i)re4pnd)VWEsGjWF)KquiXTkd1 zx0oo|A?SQm**_an0?&Lmc~xK5j8O|UV=-<_f((4dJ(bWIt}g;3EeKb+Eum)}QbO7; z$VHy4bW_BV9;%mlbSipZw>`7LhZKrXt+=CpsuSU%)hC31dg#A>uX#^fcy&)Kw}Lb_ z8n%>OJdYjGxQLdo4uQeWf-DvsKPy7S+APQnzf>AOEplSRO63RxpPi7Do~_os8Wmb? zqoDztE{__ClQ6F~Tj zBgsp$cQ!lO6EYv&nSes=N?oh48y+AG!aJrl+H2cZDhtuDVSgn=zc-B(RT{NrN8RuwMCzsUQKGA&6oWdxTX?|uE*>QH0c;>C|%&FHfjG)$~ou?$2 zJFn_`bb6O1QE%{}rEK5py*l~P~<qi>m{2{<}}@K@n(AK$I&Y&NO8*>o7(EjAt~$KRwtw5 zjsn%nO@YJC-EI@TVep64rdOwnT~?;6bN8Q*k$bRms!;A_3OXSPp~3X!o2->cnr2<7 z8}@*wr)G3RwBT440riWV7fp&z#4_XM!kT%knP%LM6v@^6!);8dXO& zYR`3@>txGTPbWX&1@qU5&@SHWyd7Vp?4Cq4NgcKbvY|icGm^);YbPYWqdWz62ljTT z=iuG952plmT5KZPq`fv`e#=fd7dA{7+g1#+-x#tuJ=A&-wC_sj^^UZmbe1PfhjSAB z$+xcI|6XCoYxTNt;OAVO@$~}Vy4E^McNI(*)HtAPDVUaLmF}H_5`Uqn2BuPh#i~!m z4T}R4ZFJXpSxasc#^EF6#OTe?<{s=KFBHZI=V2+4<^^^7a@(?sVAc9^WaneY0E{5Z z;n@su3bOCo=YD#OY#!>j5V^kwU~2KhqV{$>Af}gW(<(pYRo};5mHTB)EI<}Q9aXZ+ zS0Pppe@0rT^=*g7r}wn6{6Y0;h!w`WvrQ~ZbRPBx@5y6T6(pR0!oN~ED z2?xAnq0s5^-bouf)v0kqwYsF852R~uer|RPJvu7!{7PDMDsY;BD7w;o+{*-~%-eDs zNqzA(xLZx!S7FwPuL6pqbKJ#RMoTOC0yl!aS<2o>ZKq9VIx-5o22A&V>(47RR?nKu zvdJw$Z5}P#8M{Yk_-XQ)XWK5zexgMF=@PquFwlI6GdbEn-PchttU*4H3l+!4HNgE`e(BtD z=tCpn{on^m-^qNn?i&hWm{jTr9)e4+b$&Gmc**B)dE>7G!b^66*1>4O2edUFoNH>Ea8IfH1e2hw$KxQO%t^@n}BZ<)O z=JpADLS}Y8u)MifD*BUwa{E;_pL6lmfHtk)U46+bmaaWAofHmA!_R+Z4vnyVZ5x@J zL+UiZbeMAye6z_<9BSy$j`$ZPVI{)Il2;ql_FIH;PrW9T%=9X zEF|93iEz((S(^W(mAXH}3VvkxmLv0>{15wc_8S}F-b@XCRR{2i%MDM$>GgMmYwq$& zcU=y&mClC=3AFE)PtgV(mtdA69QqILGx!twOY^>>fJ?3nQI#8u`eS3?S7n*F+z4H` znb7%t4dXR|LsSsxZ)sCcyCeAB7w8Wnqhw2JRq#SQlb@l&efS!5i=`_y=EexK8t}Lf zT353hPRL@yZf41Ax1Z-;Gx^;3ayp$NbO}Hv48XqI{ye+aiX#XoPX~t#N{{?k5&7VW zr=KDOSlBB^Rf#u3cTcl^@}ymXy8L#VHLKP^l41DuN?Kh@D(RKpRl6&>9?076 zOSmeRN-2?p`4jK8z0l2fxz)j|l&p#jw$iv*EcUXRN$@qcRDVRo1x9#t;$>uBWr#&% zM)tz4s8~Czy~3C4h|p$_cC~IsbLx+yOP)Jtt#|Viq7?{hj^B{uJ59=Mjt}5JYP)Ok z|41QrUk-&tYxT6UHAQ_{RI52J->0h168rIq! zYesS_`v|9MHzS9o8He3b|RpN;# z)p#BtEhFM`jV8$N2@F*Hkae=^AR6X0;(UWn9AGBm&aALH18e-QJLi=pXLxs16LF0B zBnhlUq8U>03{haG$OF=%4s>9+KkqGBh8l^XozSOuIUsE=UU?1qmC-e~8#SS|$ty=# zjHeFG`Cj&gk#j1ZeaFzdFW=#|@{4q+N%!Agett7%0Ul#OMzPVA->mqo-xuB-1@1`) zX`2*FG)gmFW)GBZMOq>BC1ji4Y2J5=3^G;zH$4FWdSC4K67Bx?c#+WlBdxyJ&(X}; z#mWrC^4r{hUCuLp%l4O?8U9knruetZ#Xul4J7Zf9S$lJb7xM>w_-a2ZirJ~LFA(W$ z_2u1X)x0U^w2exBh==xl&r)dAJJEc2N$oa?cqz`r+o9`hXcZ+TKxZGXmmNAs zythO|z;MOmB=*+3H6;4^bE#fZJ4cY!YgtzPB;E{FE&8Zy_@n&M>7(ASkutz}cw6wv zFGS|)9K2WN((z1E<*=0b>tc@UB*|%&Vtm6RAA#B?P`*a=;{=bAu^D-0u-Q09mZgTKC z&!^m6ElN_Kj}cMZ*`ho#%aqle8zpqF*%%Gm=vvCa!Haeyn%p7)e7+i@z1J= z+PbJGAA3Mi5q4?({G6q^uf8;v6Yk4GK)0Q~Y063zv%T)>>&!nKK08e@G(sOOtto%* z#1kq|&uqUOyql2qwPULgH0sf$y68$l|IICAf>JL}zKg+Wl9A~_T04yyO%I}{-0Fvs zJ3i&MWD{v(e_VV>kYzbBqZ{P0qMqxjI#@ed#5RN z+Oq-Wj&3gogduXyFX8yuyJ$!Jw0h>qDY&u?VVbif*cSo|Ws5>yGCL?}T)_YT+kwB{ z_7{KgpW~lj68uU3n}q)t_BY-1^6zi@e+B(N*?*I!f3w6dE9g)5525;>o%~ZX`rXM8 z{QvFbF9qpO`rm4dzv+3@|E2$|IR451Tk+yI-~Qrk{~p5M{7Wh0Px#-m>c3zB;AQ9l z!_0pBH{bpj{3 f`{v>QhX2FwDFfkNrUw8(e)$Ez44I$eue1LL2gYA1 diff --git a/docs/getting-started/images/1-MyApp-Solution.png b/docs/getting-started/images/1-MyApp-Solution.png deleted file mode 100644 index f3cb6bd53342d4fea7b0a96a7543105c3bdd1558..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12905 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 diff --git a/docs/getting-started/images/1-MyApp.png b/docs/getting-started/images/1-MyApp.png deleted file mode 100644 index 106f55e4ccc79761d06ba534951ee1be023e6b93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18346 zcmYg&V|ZlG({`+hZQHh;jj^$9+uCGf+s?+eZ6_O>8{5g7-QWMYuJ^;toSyDe)qPH# zs{5|4nJ@)82{;&R7$6`ZI4Ma{B_JT+wXfrDD3GsrE|{H+uMc1+B?)1mswv!)uLiWe zq=pj^5CG-x3m7Op6B7tX5J*Z?NW~ra+y|~f=ey5QYm9!y2mlc*5ZefBcUZc@rm<4w zLh`KCB3qqp+u52&L#JN#=wJnsn+>rWCJ-)AZpTG;vqFQVzOJJ2TVT@_<5Z}{5kzgH z^f~Et9Afa*8&EHh6d@_8hua6i>t6Tc%F+6?o1X5C0Pn@h>u0B*SI*~(Sx!bf&2PV( zp+>9fuB*V?93IEJ<5?pO_k~jfzKTVb=_-}FZ%by+E~*vw8=15T(|Hzll!@V%`lFKA z2=OsHv5Ub>q(AT#Q3BB=DojtesZsB^dmNRrVaTLS4Atuc1F6G9PT{m1IJKC(Tq|M; zUkAewId$n{uZ>A;p&!mF)C2i=LcTk@L&O%6&4R+1xU zv^ZdPekGpoLc8o@!+&1=JndmCOhs8R0goDMa}jKaMOujOZ*&j=Vm2bLL4Qn&BId^+ zqHo*e`spJ5N0F8+zNq3Bz2nZx@3y)7ea$M{>qGLFKFdU3DhyWNAB}F-&r`kb$Ii?5 ztRr{=u2V7w-g_p0H-O9tGj?BYcr_t9n>}0g49nw zBkW8wXz*zf<<88wDu`lp!(A~JQ}%H@h(HXvAvsGZaG)QhKnV0cH|V6ShCH|VK-rX$ z>V#DQG{ph(c{Jr+S{o?^MUG(N8uXT+@EK!O$y{ATZVR|Pl5j3BqUohGt~({AaTl|$ z(S<5^UVltyX1{!oy1lY0eRZM`vYm!85Q$vFP^~=nsEJ%?SQVK*&k5*1b%7gF_mpfX zQR3|p5@l%s_P|015kht&2svi^Vfzaua4NF?0M0ke*vP~Q#ennOk39)J zch}xPC;qE|t@rgKfoAjB{Fl4C4uEbG;=IF2ug<9=+sVQmmea;0?k|N}nJJCDXVJ}A zkh!=*y@=!FHTqAo`OF|-L3?L<7TORfG@5OgR?1jG zqdxoPYOHvv6LHb2AM84bR34aU7u5D|%Z=5q$N(q2&Yn*s6xpN5TS{1M2unmq{!Iut zgUB9OZ8dk!iQFDkVhkTn7YhI4ZFzE&ZKg$NHfqsYR^&@)0X!6CA|OcZe*J7dZ{wZk zqxUJVD)0R`iQ?0H4@M_;?!=Rp{`iL$w_h1iJjMFp9~7}nXecOh>wp2Wc&ELJ_N$13 zVnA=LBCx7Bp(H$LD=Q7eg;4pqZ z2{q_sZKgj7w}BcEn9gUNUd?F;o-%G0+>5+Er=q-UVh^4|K~G`kX#}CXCSfNEK{x{! z4?pgx=)8)={APR}a<5WnI!^NxCkC%AQc$`6$nsS&6iF4i3)t+hpq8l7J9x<8x_Am_ z>F`RcL`inUQYmIv|^!UJd_VmKrJ1Ef7a!> z(|#9z%h-3#xWkY5yu*niXm}Zvr0U^|AWwzf+JQa3mNH55Ofk^W7ow^ji2glQ!MqBh zp+>GaA^H-W<6qlp;5*6>z&dWK6KRdXAx9&cBG2^Dg4`c{exEVcX9yoxBnm$%pCi}f z%_RGdvb`?)l?BSXkG&u1>6;X0Af3S$va6y3`3d-9F8zgA$)x!8)Kk1f1|7=P?k>!2$z`HN9yB!m3p_?cj9jS zVA6yaxB4-4QRkoTFd1@P2SbXZnm@7^Avv%%lZa4^HCr{>(~*k8q#nG0TV%BDdSUSq zF}07x#$a*UT7oY^tDYBYZkZQS>X0jiCvnFdkiTct+ca0vU_T!~&kFKf_pM4*%q(fKSCPG15j z;zUUt8BeV=1wtCME�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 XpL|g34Lt)qZ->Ft)z4*}Q$iB}dJRA? diff --git a/docs/getting-started/images/1.1-post-package-install.png b/docs/getting-started/images/1.1-post-package-install.png deleted file mode 100644 index 2b29a9f5a78929d8a5f0594006a311df2768048d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10228 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 NATO;X1(Prc_#X&oP+|Z8 diff --git a/docs/getting-started/images/1.2-nuget-package-explorer.png b/docs/getting-started/images/1.2-nuget-package-explorer.png deleted file mode 100644 index 6af6dd3a46860370c5e2547182eb7db47ce58c5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86701 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 hR6dk*Ym6C9D=Ie%#6zKc_ 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

dY?z1f~XOCQ!(BVZ}5&jI}r7Gq%m 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ÓKBYBUWL$AvRTN8-0&lZK0C4`>d$NwMlB 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 diff --git a/docs/getting-started/images/1.3-local-app-data-dir.png b/docs/getting-started/images/1.3-local-app-data-dir.png deleted file mode 100644 index 31ce379db395e1bec597b8fba91631b37084ce84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51050 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

O}8&ek5;>h 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 diff --git a/docs/getting-started/images/1.5-local-app-data-dir.png b/docs/getting-started/images/1.5-local-app-data-dir.png deleted file mode 100644 index ec36266795aa2552e213da9a32e4fe0a0f0c6159..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92781 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 Squirrel --releasify MyApp.1.0.0.nupkg -n "/a /f CodeCert.pfx /p MySecretCertPassword /fd sha256 /tr http://timestamp.digicert.com /td sha256" -~~~ - -If you are using the [Visual Studio Build Packaging](visual-studio-packaging.md) process be careful how you escape your quotation marks in the `XML` of your `.csproj` file for the -n, --signWithParams argument. The wrapping quotation marks must be defined in `XML` safe ampersand escape strings or `"`. Within this command you will likely need quotation marks around your certificate password. Since this is already within a quoted string you will need to double quote the password: `/p ""PASSWORD""`. - -~~~xml - - - - - - - - -~~~ - - - -## See Also -* [Squirrel Command Line](squirrel-command-line.md) - command line options for `Squirrel --releasify` -* [Visual Studio Build Packaging](visual-studio-packaging.md) - integrating Squirrel packaging into your build process - - ---- -| Return: [Table of Contents](../readme.md) | -|----| diff --git a/docs/using/custom-squirrel-events-non-cs.md b/docs/using/custom-squirrel-events-non-cs.md deleted file mode 100644 index badb6156..00000000 --- a/docs/using/custom-squirrel-events-non-cs.md +++ /dev/null @@ -1,45 +0,0 @@ -| [docs](..) / [using](.) / custom-squirrel-events-non-cs.md -|:---| - -# Custom Squirrel Events (Non-C# Apps) - -Squirrel events allow you to handle custom events around the installation and updating process. - -### Making Your App Squirrel Aware - -Add an entry to the *English* Version Block info called "SquirrelAwareVersion" with a value of "1". Typically this is done via the "App.rc" resource file. Here's a typical entry: - -``` -BLOCK "StringFileInfo" -BEGIN - BLOCK "040904b0" - BEGIN - VALUE "FileDescription", "Installer for Squirrel-based applications" - VALUE "FileVersion", "0.5.0.0" - VALUE "InternalName", "Setup.exe" - VALUE "LegalCopyright", "Copyright (C) 2014" - VALUE "OriginalFilename", "Setup.exe" - VALUE "ProductName", "Squirrel-based application" - VALUE "ProductVersion", "0.5.0.0" - VALUE "SquirrelAwareVersion", "1" - END -END -``` - -### Application Startup Commands - -This means that this EXE will be executed by the installer in a number of different scenarios, with special flags - you should handle them correctly: - -* `--squirrel-install x.y.z.m` - called when your app is installed. Exit as soon as you're finished setting up the app -* `--squirrel-firstrun` - called after everything is set up. You should treat this like a normal app run (maybe show the "Welcome" screen) -* `--squirrel-updated x.y.z.m` - called when your app is updated to the given version. Exit as soon as you're finished. -* `--squirrel-obsolete x.y.z.m` - called when your out-of-date app is no longer the newest version. Exit as soon as you're finished. -* `--squirrel-uninstall x.y.z.m` - called when your app is uninstalled. Exit as soon as you're finished. - -## See Also - -* [Custom Squirrel Events for c# Apps](custom-squirrel-events.md) - steps on making a c# application Squirrel Aware and handling custom events. - ---- -| Return: [Table of Contents](../readme.md) | -|----| \ No newline at end of file diff --git a/docs/using/custom-squirrel-events.md b/docs/using/custom-squirrel-events.md deleted file mode 100644 index 99bf27e0..00000000 --- a/docs/using/custom-squirrel-events.md +++ /dev/null @@ -1,62 +0,0 @@ -| [docs](..) / [using](.) / custom-squirrel-events.md -|:---| - -# Custom Squirrel Events - -## Handling Squirrel Events - -Squirrel events allow you to handle custom events around the installation and updating process, which is important because Squirrel doesn't do much of anything at installation time automatically. However, since the code is executing inside your application, it's way easier to do stuff than other systems where you're writing custom "installer DLLs". - -### Overriding Default Behaviors - -When none of the apps in your package are "Squirrel-Aware", Squirrel does some things on your behalf to make your life easier, the primary one being that every EXE in your app package automatically gets a shortcut on both the Desktop and the Start Menu. Once you enable Squirrel events *for even a single EXE file*, you must do this yourself. - -### Making Your App Squirrel Aware - -In your app's `AssemblyInfo.cs`, add the following line: - -``` -[assembly: AssemblyMetadata("SquirrelAwareVersion", "1")] -``` - -### Using the `SquirrelAwareApp` Helper - -If you are writing a C# app, it is **highly encouraged** to use the `SquirrelAwareApp` helper class to implement this. Here's an implementation that is similar to the default (i.e. non-squirrel-aware) behavior: - -```cs -static bool ShowTheWelcomeWizard; -... -static int Main(string[] args) -{ - // NB: Note here that HandleEvents is being called as early in startup - // as possible in the app. This is very important! Do _not_ call this - // method as part of your app's "check for updates" code. - - using (var mgr = new UpdateManager(updateUrl)) - { - // Note, in most of these scenarios, the app exits after this method - // completes! - SquirrelAwareApp.HandleEvents( - onInitialInstall: v => mgr.CreateShortcutForThisExe(), - onAppUpdate: v => mgr.CreateShortcutForThisExe(), - onAppUninstall: v => mgr.RemoveShortcutForThisExe(), - onFirstRun: () => ShowTheWelcomeWizard = true); - } -} -``` - -## App Setup Helper Methods - -These methods help you to set up your application in Squirrel events - if you're not using custom Squirrel events, you probably don't need to call these methods. - -* `[Create/Remove]ShortcutsForExecutable` - creates and removes shortcuts on the desktop or in the Start Menu. - -* `[Create/Remove]UninstallerRegistryEntry` - creates and removes the uninstaller entry. Normally called by `Update.exe`. - -## See Also - -* [Custom Squirrel Events for non-c# Apps](custom-squirrel-events-non-cs.md) - steps on making a non-c# application Squirrel Aware and handling custom events. - ---- -| Return: [Table of Contents](../readme.md) | -|----| diff --git a/docs/using/debugging-installs.md b/docs/using/debugging-installs.md deleted file mode 100644 index 815ddd28..00000000 --- a/docs/using/debugging-installs.md +++ /dev/null @@ -1,22 +0,0 @@ -| [docs](..) / [using](.) / debugging-installs.md -|:---| - -# Debugging Installs - -The following tips will help you to debug the installation of an Squirrel app. - -## Simulating an Install and First Run - -If the install of your application doesn't seem to be working, you can explore the behavior by executing the install steps from the command line: - -~~~ps -C:\user\AppData\Local\MyApp> MyApp.exe --squirrel-install 1.0.0 -C:\user\AppData\Local\MyApp> MyApp.exe --squirrel-firstrun -~~~ - -The first cmd should create some shortcuts then immediately exit, then the 2nd one should start your app ([source](https://github.com/Squirrel/Squirrel.Windows/issues/525)) - - ---- -| Return: [Table of Contents](../readme.md) | -|----| diff --git a/docs/using/debugging-updates.md b/docs/using/debugging-updates.md deleted file mode 100644 index 89c7e690..00000000 --- a/docs/using/debugging-updates.md +++ /dev/null @@ -1,42 +0,0 @@ -| [docs](..) / [using](.) / debugging-updates.md -|:---| - -# Debugging Updates - -The following tips will help you to debug the update process in your application. - -## Update.exe not found? - -Executing MyApp from Visual Studio will execute the update process and you will get the following exception from the `UpdateManager`: - -~~~ -Update.exe not found, not a Squirrel-installed app? -~~~ - -The `UpdateManager` is expecting to find the `Update.exe` application installed one directory up from the EXE (e.g., the `\bin` directory for default Visual Studio projects). - -To resolve this, you can simply place a file named `Update.exe` or you can copy the `Squirrel.exe` from the `MyApp\packages\squirrel.windows.1.2.2.tools` directory and rename it Update.exe (this is the actual Update.exe packaged inside `Setup.exe`). - -Executing MyApp from Visual Studio will now cause it to complete the update process and your `\bin` directory will resemble the `%LocalAppData\MyApp%` install directory: - -![](images/debugging-update-dir.png) - -**Tip:** If you want to ensure that the Update.exe is always available in your output directory, you can add the Update.exe file to the Visual Studio project and set its Properties > Copy To Output Directory to 'Copy if newer'. - -## Catching Update Exceptions - -You can catch thrown exceptions and log the results. - -~~~cs -using (var mgr = new UpdateManager("C:\\Projects\\MyApp\\Releases")) -{ - await mgr.UpdateApp(); -} -~~~ - -Alternatively, set up Splat Logging, see [here](https://github.com/Squirrel/Squirrel.Windows.Next/blob/6d7ae23602a3d9a7636265403d42c1090260e6dc/src/Update/Program.cs#L53) for an example. - - ---- -| Return: [Table of Contents](../readme.md) | -|----| diff --git a/docs/using/delta-packages.md b/docs/using/delta-packages.md deleted file mode 100644 index ef84462d..00000000 --- a/docs/using/delta-packages.md +++ /dev/null @@ -1,34 +0,0 @@ -| [docs](..) / [using](.) / delta-packages.md -|:---| - - -# Delta Packages - -Now, once we've got a full package, we need to generate a Delta package. To do this, we'll replace all the DLL/EXEs in the NuGet packages with bsdiff files. [bspatch/bsdiff](http://code.logos.com/blog/2010/12/binary_patching_with_bsdiff.html) is a mostly efficient algorithm for calculating diffs between binary files (especially Native binaries, but it works well for .NET ones too), and a way to apply them. - -So, this is pretty easy: - -1. Extract the previous NuGet package -1. Extract the current NuGet package -1. Replace every EXE/DLL with the bsdiff. So, `lib\net40\MyCoolApp.exe` becomes `lib\net40\MyCoolApp.exe.diff`. Create a file that contains a SHA1 of the expected resulting file and its filesize called `lib\net40\MyCoolApp.exe.shasum` -1. New DLLs in current get put in verbatim -1. Zip it back up - -The .shasum file has the same format as the Releases file described in the "'Latest' Pointer" section, except that it will only have one entry. - -So now we've got all of the *metadata* of the original package, just none of its *contents*. To get the final package, we do the following: - -1. Take the previous version, expand it out -1. Take the delta version, do the same -1. For each DLL in the previous package, we bspatch it, then check the shasum file to ensure we created the correct resulting file -1. If we find a DLL in the new package, just copy it over -1. If we can't find a bspatch for a file, nuke it (it doesn't exist in the new rev) -1. Zip it back up - - ---- -| Return: [Table of Contents](../readme.md) | -|----| - - - diff --git a/docs/using/github.md b/docs/using/github.md deleted file mode 100644 index 0154c03c..00000000 --- a/docs/using/github.md +++ /dev/null @@ -1,79 +0,0 @@ -| [docs](..) / [using](.) / github.md -|:---| - -# Using GitHub - -GitHub release assets can be used to distribute the necessary Squirrel files for the Squirrel install and update process. It still requires you to upload all the release files as assets for each release, but provides you a means of hosting your update files via your GitHub repository. - -**Important:** GitHub since February 22, 2018 [only support TLS 1.2 connections](https://githubengineering.com/crypto-removal-notice/). The host application is therefore required to use .NET framework 4.6.1, otherwise TLS 1.1 is the default protocol and check for update won't work. - -## Installing from GitHub - -GitHub allows you to provide a [static link](https://help.github.com/articles/linking-to-releases/) to a repositories latest release page. You can direct your users to download the `Setup.exe` from the list of assets you uploaded for the release. - -~~~ -https://github.com/myuser/MyApp/releases/latest -~~~ - -**Tip:** This link simply redirects to the repositories latest release page, and cannot be used to download an asset directly (i.e., you can't simply make a static link to ".../releases/latest/Setup.exe"). However, you can use the [GitHub API with ajax](http://stackoverflow.com/a/26454035) to provide a direct link on your website and avoid the user having to select the correct file or navigate to the GitHub website. - -## Distributing from GitHub - -The following steps are required to distribute your RELEASES and update NuGet packages with GitHub: - -1. **Commit Latest Code** - In order for GitHub to mark a new release as the `Latest`, you have at least one additional commit since the last release tag was added (i.e., releases tags must not share the same commit). -1. **Create a New Release** - [Create a new GitHub release](https://help.github.com/articles/creating-releases/) in your MyApp repository matching your current release version (e.g., 1.0.0). -2. **Upload Release Files** - upload all of the files from `Releases` as assets of the GitHub release (e.g., RELEASES, MyApp.1.0.0-full.nupkg, MyApp.1.0.1-delta.nupkg, MyApp.1.0.1-full.nupkg). -3. **Set Pre-release (optional)** - if desired, set the release as a pre-release. -4. **Publish the Release** - click the "Publish Release" to make the release available to the general public and your users. - -**Important:** You must upload all packages as assets you wish to be available for update (i.e., the GitHubUpdateManager doesn't look back to previous GitHub releases for previous version packages). If you only include the latest packages, Squirrel will be forced to download the latest full package for each update. - - -## Updating with GitHub - -The Updating process requires you to build, package, releasify, and distribute the update files. - -**Important:** You must ensure there is at least one additional commit since the last version release before adding a new release. GitHub will not update the latest release if the new release tag is tied to the same last commit as a previous release tag. - -### GitHub Update Manager - -To use GitHub release assets as your distribution mechanism you need to replace `UpdateManager` with `GitHubUpdateManager` when integrating Squirrel in your app: - -**`Program.cs`** - -~~~cs -using Squirrel; -using System.Threading.Tasks; -~~~ - -**`static async Task Main()`** - -~~~cs -using (var mgr = UpdateManager.GitHubUpdateManager("https://github.com/myuser/myapp")) -{ - await mgr.Result.UpdateApp(); -} -~~~ - -**Important:** Make sure your url doesn't end in a forward slash ("/"). Adding the trailing forward slash will cause it to fail with a 404 error ([see #641](https://github.com/Squirrel/Squirrel.Windows/issues/641#issuecomment-201478324)). - -**Tip:** You can also specify that the update manager should use `prerelease` for updating (see method signature for details). - -**Source:** See [Issue #442](https://github.com/Squirrel/Squirrel.Windows/issues/442) for more information. - -### How it Works - -The GitHub API is used by the `GitHubUpdateManager` to obtain the correct release and asset files for downloading. The following actions are performed: - -1. Extracts the username and repository from the url (e.g., "myuser" and "myapp"). -2. Uses the GitHub API to get the latest release information. For example, the following url obtains a json list of all release information for the Squirrel.Windows repository: [https://api.github.com/repos/Squirrel/Squirrel.Windows/releases](https://api.github.com/repos/Squirrel/Squirrel.Windows/releases) -3. Obtains the correct download path from the `html_url` attribute of the latest release (or pre-release if specified) to be used as the path for downloading assets. -4. Follows the normal Squirrel update process by looking for a `RELEASES` file and downloading the necessary delta or full application packages. - ---- -| Return: [Table of Contents](../readme.md) | -|----| - - - diff --git a/docs/using/images/debugging-update-dir.png b/docs/using/images/debugging-update-dir.png deleted file mode 100644 index 74b75f66df5c589ce42820048ef2e003405ceb7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15425 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 P0fWg%D2i8#8U_6ye2QkX diff --git a/docs/using/images/naming-releases.png b/docs/using/images/naming-releases.png deleted file mode 100644 index 5169bb2b867771f15e16a6005be798e8de46a1b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20359 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 diff --git a/docs/using/images/uninstall-app.png b/docs/using/images/uninstall-app.png deleted file mode 100644 index 173664a73e9849c85aa0c7a99f2362e844f01cba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27235 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 diff --git a/docs/using/install-process.md b/docs/using/install-process.md deleted file mode 100644 index b3cfc6ca..00000000 --- a/docs/using/install-process.md +++ /dev/null @@ -1,74 +0,0 @@ -| [docs](..) / [using](.) / install-process.md -|:---| - -# Install Process - -This section goes into detail about the install process. - -## Setup.exe - -`Setup.exe` is a C++ bootstrapper application used to install your app on the user's local system. It is generated as part of the `Squirrel --releasify` process. - -The `Setup.exe` file includes the `Update.exe` application and the latest version of the MyApp package to be installed. A single executable file can be provided due to the `WriteZipToSetup.exe` tool injecting the appropriate files into the exe. - -In addition, the `Setup.exe` will also ensure that .NET 4.5 is installed on the user's computer. - -## Install Location - -The `Setup.exe`, and later the `UpdateManager` in MyApp must have the ability to write files to and execute files from the application install location. To ensure permission for all types of users, the user's application data directory is selected as the install location (i.e., `%LocalAppData%\MyApp`). - -The installation root really only needs to consist of two types of folders: - -* **Packages** - folder used to download and assemble the update package files. -* **App Folders** - the "installed" application files for a given version of MyApp. - -``` -\%LocalAppData%\MyApp - \packages - MyApp-1.0.0.nupkg - MyApp-1.0.1-delta.nupkg - MyApp-1.0.1.nupkg - \app-1.0.0 - MyApp.exe - \app-1.0.1 - MyApp.exe -``` - -The packages directory is effectively immutable, it simply consists of the packages we've downloaded. Using the user's local application data directory means that we the needed write-access to the install directory on a per-user basis. - -**Tip:** See [Machine-wide Installs](machine-wide-installs.md) for more information on ensuring your application pushed to all users in an enterprise environment. - -## Install Process Overview - -The `Setup.exe` application preforms the following: - -1. **Ensures .NET Framework Installed** - determines if .NET Framework is available, and if not relaunches itself with `/installfx45` to download and launch the .NET Framework installer. -1. **Create `%LocalAppData%\MyApp` Directory** - creates a directory for the MyApp to be installed. -2. **Extracts `Update.exe`** - extracts the `Update.exe` application to the application directory (`%LocalAppData%\MyApp`). -3. **Extracts `MyApp.1.0.0-full.nupkg`** - extracts the MyApp full application package to the `%LocalAppData%\MyApp\packages\temp` directory. -4. **Executes `Update.exe` to Finish Install** - executes the `Update.exe` application with the `/install` switch to finish the application installation and then launch the application. - 1. **Copy MyApp to `app-1.0.0` Directory** - copy the full version of MyApp files to a application sub-directory (e.g., `MyApp\app-1.0.0`). - 2. **Launch MyApp** - at the end of the setup process, the Updater launches the newly installed version of MyApp. -6. **MyApp Creates Shortcuts** - the first execution of the application will cause shortcuts to be created on the desktop and Windows start menu for MyApp. - -## Desktop & Windows Start Shortcuts - -By default, application shortcuts are created on the desktop and the Windows Start menu that point to the `Update.exe` application with additional arguments pointing to the correct application to execute. - -**`MyApp.lnk` (Application Shortcut)** - -* **Target:** `C:\Users\kbailey\AppData\Local\MyApp\Update.exe --processStart MyApp.exe` -* **Start in:** `C:\Users\kbailey\AppData\Local\MyApp\app-1.0.0` - - -## See Also - -* [Loading GIF](loading-gif.md) - specify a "loading" image during initial install of large applications. -* [Machine-wide Installs](machine-wide-installs.md) - generating an MSI file suitable for installation via Group Policy. -* [NuGet Package Metadata](nuget-package-metadata.md) - overview of the NuGet metadata and its uses by Squirrel. -* [Naming Conventions](naming.md) - A more complete view of how Squirrel names everything. - ---- -| Return: [Table of Contents](../readme.md) | -|----| - diff --git a/docs/using/loading-gif.md b/docs/using/loading-gif.md deleted file mode 100644 index b45d8ca2..00000000 --- a/docs/using/loading-gif.md +++ /dev/null @@ -1,20 +0,0 @@ -| [docs](..) / [using](.) / loading-gif.md -|:---| - -# Loading GIF - -Squirrel installers don't have any UI - the goal of a Squirrel installer is to install so blindingly fast that double-clicking on Setup.exe *feels* like double-clicking on an app shortcut. Make your installer **fast**. - -However, for large applications, this isn't possible. For these apps, Squirrel will optionally display a graphic as a "splash screen" while installation is processing, but only if installation takes more than a pre-set amount of time. This will be centered, backed by a transparent window, and can optionally be an animated GIF. Specify this via the `-g` parameter. - -~~~powershell -PM> Squirrel --releasify MyApp.1.0.0.nupkg -g .\loading.gif -~~~ - -## See Also -* [Squirrel Command Line](squirrel-command-line.md) - command line options for `Squirrel --releasify` - - ---- -| Return: [Table of Contents](../readme.md) | -|----| diff --git a/docs/using/machine-wide-installs.md b/docs/using/machine-wide-installs.md deleted file mode 100644 index bb166d34..00000000 --- a/docs/using/machine-wide-installs.md +++ /dev/null @@ -1,36 +0,0 @@ -| [docs](..) / [using](.) / machine-wide-installs.md -|:---| - - -# Machine-wide Installs - -Squirrel's Releasify command generates an MSI file suitable for installation via Group Policy. This MSI isn't a general-purpose installer, this means that once you run the MSI, users from now on will get the app installed, on next Login. - -So, most normal users should continue to run the Setup.exe's generated by Releasify, but if you want to have an IT Admin Friendly version, you can hand off the MSI - -## Common pitfalls - -### Missing data in `.nuspec` - -Most users of Squirrel won't have to do anything new to enable this behavior, though certain NuGet package IDs / names might cause problems with MSI. - -**Source:** See [issue #466](https://github.com/Squirrel/Squirrel.Windows/issues/466) for more details. - -### Nothing happens on login - -In cases where the end user has previously installed your application, the installer that runs on login will not re-install your application on every login. This can easily be the case if you as a developer is testing out both the EXE and the MSI. - -Squirrel leaves behind an almost-empty `%LocalAppData%\MyApp` folder after an uninstall. Deleting this folder (the entire folder, not just the contents) will allow the installer that runs on login to install successfully. - -**Source:**: See [issue #555](https://github.com/Squirrel/Squirrel.Windows/issues/555#issuecomment-253265130) for details. - -## Disabling MSI Generation -Generating MSIs can be disabled via the --no-msi flag as shown below: - -~~~powershell -PM> Squirrel --releasify MyApp.1.0.0.nupkg --no-msi -~~~ - ---- -| Return: [Table of Contents](../readme.md) | -|----| diff --git a/docs/using/microsoft-iis.md b/docs/using/microsoft-iis.md deleted file mode 100644 index e05d5c9d..00000000 --- a/docs/using/microsoft-iis.md +++ /dev/null @@ -1,34 +0,0 @@ -| [docs](..) / [using](.) / microsoft-iis.md -|:---| - -# Microsoft IIS - -If you use Microsoft IIS to distribute the necessary Squirrel files, you must provide a custom `Web.config` file as described below. - -## Hosting on IIS - -All versions of IIS (including Microsoft Azure PaaS) deny serving files when -the extension MIME type is unknown. If you are hosting your updates in this -manner then you will need to add a `Web.config` to your downloads repository as -follows: - -**`~/downloads/Web.config` File** - -~~~xml - - - - - - - - - -~~~ - - ---- -| Return: [Table of Contents](../readme.md) | -|----| - - diff --git a/docs/using/naming.md b/docs/using/naming.md deleted file mode 100644 index a2f9b5cd..00000000 --- a/docs/using/naming.md +++ /dev/null @@ -1,45 +0,0 @@ -| [docs](..) / [using](.) / naming.md -|:---| - -# Naming Conventions - -In addition to the [NuGet Package Metadata](nuget-package-metadata.md), there are other places that squirrel pulls naming information from. Here is the logic: - -## Shortcut name - -The shortcut name is selected from the first non-null item below: - -1. `[assembly: AssemblyProduct("MyApp")` (from `AssemblyInfo.cs`) -2. Squirrel NuGet Package Metadata `title` property. -3. `[assembly: AssemblyDescription("MyApp")` (from `AssemblyInfo.cs`) -4. Filename of the Exe (e.g., MyApp) - -## Local Install location - -The local install location is determined by the `id` in the NuGet package metadata. - -* `%LocalAppData%\` - -**Warning:** Using \[dots\] (i.e., "."'s) in your package id will cause issues ([see issue #523](https://github.com/Squirrel/Squirrel.Windows/issues/523)). - -## Program and Features Entry -The entry in the Windows Uninstall is determined as follows: - -* Squirrel NuGet Package Metadata `title` property - -## Releases Folder - -The `Squirrel --releasify` command will create update packages based on the following: - -* `--delta.nupkg` -* `--full.nupkg` - -![](images/naming-releases.png) - -## See Also - -* [NuGet Package Metadata](nuget-package-metadata.md) - naming from the NuGet Package Metadata perspective. - ---- -| Return: [Table of Contents](../readme.md) | -|----| diff --git a/docs/using/nuget-package-metadata.md b/docs/using/nuget-package-metadata.md deleted file mode 100644 index f70b03e0..00000000 --- a/docs/using/nuget-package-metadata.md +++ /dev/null @@ -1,27 +0,0 @@ -| [docs](..) / [using](.) / nuget-package-metadata.md -|:---| - -# NuGet Package Metadata - -Squirrel uses information from your app's EXE as well as the NuGet package Metadata for the setup and uninstall UI. - -* **Id** - name of the application (**warning:** you must **[avoid using spaces and dots](https://github.com/Squirrel/Squirrel.Windows/issues/523)** in the Id). - * Name of the release packages (e.g., **MyApp**-1.0.0-full.nupkg). - * Local installation directory (e.g., `%LocalAppData%\MyApp`). -* **Title** - used for the name of the application in the Windows Application Uninstaller. -* **Version** - version specified in `Properties\Assembly.cs`. - * Name of the release package (e.g., MyApp-**1.0.0**-full.nupkg). - * Version number in the Windows Uninstaller (see screenshot below). -* **Icon Url** - url to an icon to be used for the application. Used for the shortcuts and Windows Uninstaller icons. This must be an icon file (*.ICO) to work correctly. Note that the icon is fetched at installation time rather than - packaging (source: [issue #745](https://github.com/Squirrel/Squirrel.Windows/issues/745)) -* **Language** Changes the codepage in to support non english characters. Defaults to 1252 if not present. - -![](images/uninstall-app.png) - -## See Also - -* [Naming Conventions](naming.md) - overview of sources used naming (including those outside of the NuGet Package Metadata). - ---- -| Return: [Table of Contents](../readme.md) | -|----| diff --git a/docs/using/octopack.md b/docs/using/octopack.md deleted file mode 100644 index 7d2a8c60..00000000 --- a/docs/using/octopack.md +++ /dev/null @@ -1,33 +0,0 @@ -| [docs](..) / [using](.) / octopack.md -|:---| - -# Using OctoPack - -In order to automatically construct your nuget packages you can use [OctoPack](https://github.com/OctopusDeploy/OctoPack). Octopack allows you to specify a .nuspec file which will be used to specify how your .nupkg should be created. - -Follow the core instructions for creating your .nuspec file on the [OctoPack](https://github.com/OctopusDeploy/OctoPack) page. - -You'll then need to add a files specification to match Squirrel's expected .nupkg structure: - -~~~ - - - -~~~ - -If you're building using Visual Studio, you will also need to edit your .csproj file to include a property group. - -~~~ - - true - -~~~ - -If you're using a build server, see OctoPack's guides on how to trigger it to be run. - ---- -| Return: [Packaging Tools](packaging-tools.md) | -|----| - - - diff --git a/docs/using/packaging-tools.md b/docs/using/packaging-tools.md deleted file mode 100644 index bed84251..00000000 --- a/docs/using/packaging-tools.md +++ /dev/null @@ -1,26 +0,0 @@ -| [docs](..) / [using](.) / packaging-tools.md -|:---| - - -# Packaging Tools - -The following tools can simplify and/or automate the packaging process. - -* [NuGet Docs](http://docs.nuget.org/) - documentation for NuGet packaging manager. -* [NuGet Package Explorer](https://npe.codeplex.com/) - GUI tool for building NuGet packages. -* [Visual Studio Build Packaging](visual-studio-packaging.md) - integrating NuGet packaging into your visual studio build process. -* [OctoPack](octopack.md) - steps to use OctoPack to build the source NuGet package to provide to `squirrel --releasify`. -* [Auto.Squirrel Package Manager](https://github.com/tenacious/Auto.Squirrel) - tool to fully automatize the application deploy, from build to upload the updated files. -* [Paket](http://fsprojects.github.io/Paket/template-files.html) - dependency manager for .NET and mono projects, which is designed to work well with NuGet packages and also enables referencing files directly from Git repositories or any HTTP resource. -* [TeamCity](teamcity.md) - tips on using the TeamCity build server to package your app. - - -## See Also - -* [Step 2. Packaging](../getting-started/2-packaging.md) - step from getting started guide on using NuGet Package Explorer. - - ---- -| Return: [Table of Contents](../readme.md) | -|----| - diff --git a/docs/using/squirrel-command-line.md b/docs/using/squirrel-command-line.md deleted file mode 100644 index e8853454..00000000 --- a/docs/using/squirrel-command-line.md +++ /dev/null @@ -1,47 +0,0 @@ -| [docs](..) / [using](.) / squirrel-command-line.md -|:---| - -# Squirrel Command Line - -Here is a simplified help output specifically around creating releases: - -``` -Usage: Squirrel.exe command [OPTS] -Creates Squirrel packages - -Commands - --releasify=VALUE Update or generate a releases directory with a - given NuGet package - -Options: - -h, -?, --help Display Help and exit - -r, --releaseDir=VALUE Path to a release directory to use with Releasify - -p, --packagesDir=VALUE Path to the NuGet Packages directory for C# apps - --bootstrapperExe=VALUE - Path to the Setup.exe to use as a template - -g, --loadingGif=VALUE Path to an animated GIF to be displayed during - installation - -n, --signWithParams=VALUE Sign the installer via SignTool.exe with the - parameters given - --setupIcon=VALUE Path to an ICO file that will be used for the - Setup executable's icon - -b --baseUrl=VALUE Provides a base URL to prefix the RELEASES file - packages with - --no-msi Don't generate an MSI package - --msi-win64 Mark the MSI as 64-bit, which is useful in - Enterprise deployment scenarios - --no-delta Don't generate delta packages to save time - --framework-version=VALUE - Set the required .NET framework version, e.g. net461 -``` - -## See Also -* [Loading GIF](loading-gif.md) - specify a "loading" image during initial install of large applications. -* [Application Signing](application-signing.md) - adding code signing to `Setup.exe` and your application. - ---- -| Return: [Table of Contents](../readme.md) | -|----| - - - diff --git a/docs/using/staged-rollouts.md b/docs/using/staged-rollouts.md deleted file mode 100644 index f9dac01c..00000000 --- a/docs/using/staged-rollouts.md +++ /dev/null @@ -1,50 +0,0 @@ -| [docs](..) / [using](.) / staged-rollouts.md -|:---| - -# Staged Rollouts - -Staged rollouts allow you to distribute the latest version of your app to a subset of users that you can increase over time, similar to rollouts on platforms like Google Play. This feature requires Squirrel.Windows 1.4.0 or above. - -### How to use - -Staged rollouts are controlled by manually editing your `RELEASES` file. Here's an example: - -~~~ -e3f67244e4166a65310c816221a12685c83f8e6f myapp-1.0.0-full.nupkg 600725 -~~~ - -Now let's ship a new version to 10% of our userbase. - -``` -e3f67244e4166a65310c816221a12685c83f8e6f myapp-1.0.0-full.nupkg 600725 -0d777ea94c612e8bf1ea7379164caefba6e24463 myapp-1.0.1-delta.nupkg 6030# 10% -85f4d657f8424dd437d1b33cc4511ea7ad86b1a7 myapp-1.0.1-full.nupkg 600752# 10% -``` - -Note that the syntax is `# nn%` - due to a bug in earlier versions of Squirrel.Windows, for now, you *must* put the `#` immediately following the file size, no spaces. Once all of your users have Squirrel 1.4.0 or higher, you can add a space after the `#` (similar to a comment). - -Assuming that this rollout is going well, at some point you can upload a new version of the `RELEASES` file: - -``` -e3f67244e4166a65310c816221a12685c83f8e6f myapp-1.0.0-full.nupkg 600725 -0d777ea94c612e8bf1ea7379164caefba6e24463 myapp-1.0.1-delta.nupkg 6030# 50% -85f4d657f8424dd437d1b33cc4511ea7ad86b1a7 myapp-1.0.1-full.nupkg 600752# 50% -``` - -When you're confident that this release has gone successfully, you can remove the comment so that 100% of users get the file: - -``` -e3f67244e4166a65310c816221a12685c83f8e6f myapp-1.0.0-full.nupkg 600725 -0d777ea94c612e8bf1ea7379164caefba6e24463 myapp-1.0.1-delta.nupkg 6030 -85f4d657f8424dd437d1b33cc4511ea7ad86b1a7 myapp-1.0.1-full.nupkg 600752 -``` - -### Handling failed rollouts - -If you want to pull a staged release because it hasn't gone well, you should hand-edit the RELEASES file to completely remove the bad version: - -~~~ -e3f67244e4166a65310c816221a12685c83f8e6f myapp-1.0.0-full.nupkg 600725 -~~~ - -Once you do this, you **must** increment the version number higher than your broken release (in this example, we would need to release MyApp 1.0.2). Because some of your users will be on the broken 1.0.1, releasing a _new_ 1.0.1 would result in them staying on a broken version. diff --git a/docs/using/teamcity.md b/docs/using/teamcity.md deleted file mode 100644 index c648972a..00000000 --- a/docs/using/teamcity.md +++ /dev/null @@ -1,22 +0,0 @@ -| [docs](..) / [using](.) / teamcity.md -|:---| - - -# Team City Packaging - - -## Adding the Packaging Step - When TeamCity pulls down your code, the squirrel.exe will sit under packages if it was added to your solution using NuGet. 1. Add a NuGet Pack process which will create the .nupkg based on a .nuspec file to ensure the package is correct. 2. Create a command line build process and add the following: ~~~ %system.teamcity.build.workingDir%\packages\squirrel.windows.1.4.0\tools\squirrel --releasify [BUILD_SERVER_NUPKG_PATH]\%system.build.number%.nupkg -r [OUTPUT_PATH] ~~~ **Note:** Paths may vary depending on your structure so make sure to update the path information above correctly. - -This will cause the appropriate files to be created just as if you had run it from the Package Manager Console. - -**Source:** [Issue #737](https://github.com/Squirrel/Squirrel.Windows/issues/737) - -## See Also - -* [Packaging Tools](packaging-tools.md) - list of packaging tools to simplify and/or automate the packaging process. - ---- -| Return: [Table of Contents](../readme.md) | -|----| - diff --git a/docs/using/update-manager.md b/docs/using/update-manager.md deleted file mode 100644 index db240a5b..00000000 --- a/docs/using/update-manager.md +++ /dev/null @@ -1,57 +0,0 @@ -| [docs](..) / [using](.) / update-manager.md -|:---| - -# Update Manager Reference - -## Basic Updating - -The "Easy Mode" method that does everything all in one go. - -* `UpdateApp` - downloads and updates the app to the latest version. - -## Advanced Updating - -The following methods are provided to allow you to have more control of the update process (i.e., to interact with app updates and apply them if desired). - -* `CheckForUpdate` - checks on the server if there are updates available. Returns an `UpdateInfo` object that contains information about any pending updates. - -* `DownloadReleases` - downloads release files (the `nupkg` file deltas) from the server to the local machine - -* `ApplyReleases` - installs the downloaded packages, and returns the new `app-[version]` directory path. - -### UpdateInfo - -The `UpdateInfo` class contains information about available and installed releases. - -~~~cs -public class UpdateInfo -{ - public ReleaseEntry CurrentlyInstalledVersion; - public ReleaseEntry FutureReleaseEntry; - public List ReleasesToApply; -} -~~~ - -### ReleaseEntry - -The `ReleaseEntry` class contains the specifics of each release. - -~~~cs -public interface ReleaseEntry -{ - public string SHA1; - public string Filename; - public long Filesize; - public bool IsDelta; -} -~~~ - - -## See Also -* [Update Process](update-process.md) - overview of the steps in the update process. -* [GitHub Update Manager](github.md) - process of using `GitHubUpdateManager`. - ---- -| Return: [Table of Contents](../readme.md) | -|----| - diff --git a/docs/using/update-process.md b/docs/using/update-process.md deleted file mode 100644 index 2e3d1f22..00000000 --- a/docs/using/update-process.md +++ /dev/null @@ -1,29 +0,0 @@ -| [docs](..) / [using](.) / update-process.md -|:---| - - -# Update Process - -The following steps are performed by the `UpdateManager` each time your app is executed: - -1. **Check for Updates** - the `RELEASES` file at the distribution location is downloaded and compared to local `RELEASES` file to check for any updates. -2. **Download & Verify Update Packages** - if there is a new release, the `UpdateManager` determines whether to download the deltas or the latest full package (by calculating which one requires less total downloading) to update to the current version. The packages are compared against their SHA1 in the `RELEASES` file for verification. -3. **Build Full Package from Deltas** - if delta packages were downloaded, a new full package is created from the previous full package and the downloaded delta file. -3. **Install New Version** - the current version of MyApp is extracted from the full package and placed in a new `%LocalAppData%\MyApp` install directory based on the version number (e.g., `app-1.0.1`). -4. **Update Shortcuts** - desktop and Windows Start Menu shortcuts are updated to point to the new MyApp version (via the `--processStart` command line parameter passed to `Update.exe`). -5. **Previous Version Clean-up** - on the next startup of MyApp, all but current and immediately previous version of your app are deleted as part of clean up (e.g., after updating to app-1.0.5, app-1.0.4 will remain, but app-1.0.3 and before will be deleted - see [issue #589](https://github.com/Squirrel/Squirrel.Windows/issues/589)). - -## Rollback - -Currently, there is no built-in support for rolling back to a previous version. - -## See Also - -* [Update Manager](update-manager.md) - reference guide for the `UpdateManager`. -* [Debugging Updates](debugging-updates.md) - tips on debugging your Squirrel application. - - ---- -| Return: [Table of Contents](../readme.md) | -|----| - diff --git a/docs/using/visual-studio-packaging.md b/docs/using/visual-studio-packaging.md deleted file mode 100644 index 650273b3..00000000 --- a/docs/using/visual-studio-packaging.md +++ /dev/null @@ -1,69 +0,0 @@ -| [docs](..) / [using](.) / visual-studio-packaging.md -|:---| - -# Visual Studio Build Packaging - -Squirrel packaging can be easily integrated directly into your build process using only NuGet and Squirrel. - -## Define Build Target - -The first step is to define a build target in your `.csproj` file. - -```xml - - - - - - - -``` - -This will generate a NuGet package from .nuspec file setting version from AssemblyInfo.cs and place it in OutDir (by default bin\Release). Then it will generate release files from it. - -## Example .nuspec file for MyApp - -Here is an example `MyApp.nuspec` file for the above build target example. - -```xml - - - - MyApp - - 0.0.0.0 - title - authors - description - false - Copyright 2016 - - - - - - -``` - -## Additional Notes - -Please be aware of the following when using this solution: - -* Solution needs to have nuget.exe available which can be accomplished by installing `NuGet.CommandLine` package in your solution. - -```pm -PM> Install-Package NuGet.CommandLine -``` - -* It suffers from a bug when sometimes NuGet packages are not loaded properly and throws nuget/squirrel is not recogized (9009) errors. - **Tip:** In this case you may simply need to restart Visual Studio so the Package Manager Console will have loaded all the package tools -* If you get the following error you may need add the full path to squirrel.exe in the build target `Exec Command` call. `'squirrel' is not recognized as an internal or external command` - -**Source:** [Issue #630](https://github.com/Squirrel/Squirrel.Windows/issues/630) - ---- -| Return: [Packaging Tools](packaging-tools.md) | -|----| - - - diff --git a/docs/using/x-doc-template.md b/docs/using/x-doc-template.md deleted file mode 100644 index 6612adce..00000000 --- a/docs/using/x-doc-template.md +++ /dev/null @@ -1,26 +0,0 @@ -| [docs](..) / [using](.) / filename.md -|:---| - -# Title - -text - -## Sub-title - -text - -~~~cs -code -~~~ - -**Tip:** text - - -## See Also - -* [seealso]() - text - - ---- -| Return: [Table of Contents](../readme.md) | -|----| \ No newline at end of file diff --git a/squirrel.ico b/squirrel.ico deleted file mode 100644 index d9bd2a753e8384fbea5364a780fecbd70a45f9e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140206 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 True en - ..\..\Squirrel.snk + ..\..\Velopack.snk embedded true $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)'))=./ - Squirrel + Velopack false Copyright © Caelan Sayler 2021 Caelan Sayler MIT - https://github.com/clowd/Clowd.Squirrel - https://github.com/clowd/Clowd.Squirrel - windows;macos;osx;updater;dotnet;installer;desktop;squirrel;autoupdate;automatic-updates + https://github.com/velopack/velopack + https://github.com/velopack/velopack + windows;macos;osx;updater;dotnet;installer;desktop;squirrel;velopack;autoupdate;automatic-updates diff --git a/src/Rust/.vscode/launch.json b/src/Rust/.vscode/launch.json index db103c19..cb979060 100644 --- a/src/Rust/.vscode/launch.json +++ b/src/Rust/.vscode/launch.json @@ -12,7 +12,7 @@ "args": [ "build", "--bin=setup", - "--package=clowd_squirrel" + "--package=velopack" ], "filter": { "name": "setup", @@ -34,7 +34,7 @@ "test", "--no-run", "--bin=setup", - "--package=clowd_squirrel" + "--package=velopack" ], "filter": { "name": "setup", @@ -52,7 +52,7 @@ "args": [ "build", "--bin=update", - "--package=clowd_squirrel" + "--package=velopack" ], "filter": { "name": "update", @@ -71,7 +71,7 @@ "test", "--no-run", "--bin=update", - "--package=clowd_squirrel" + "--package=velopack" ], "filter": { "name": "update", diff --git a/src/Rust/Cargo.lock b/src/Rust/Cargo.lock index 39e58168..244b0ad5 100644 --- a/src/Rust/Cargo.lock +++ b/src/Rust/Cargo.lock @@ -91,9 +91,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.76" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59d2a3357dde987206219e78ecfbbb6e8dad06cbb65292758d3270e6254f7355" +checksum = "ca87830a3e3fb156dc96cfbd31cb620265dd053be734723f22b760d6cc3c3051" [[package]] name = "as-slice" @@ -199,9 +199,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.11" +version = "4.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2" +checksum = "dcfab8ba68f3668e89f6ff60f5b205cea56aa7b769451a59f34b8682f51c056d" dependencies = [ "clap_builder", "clap_derive", @@ -209,9 +209,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.11" +version = "4.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb" +checksum = "fb7fb5e4e979aec3be7791562fcba452f94ad85e954da024396433e0e25a79e9" dependencies = [ "anstream", "anstyle", @@ -228,7 +228,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.43", ] [[package]] @@ -237,50 +237,6 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" -[[package]] -name = "clowd_squirrel" -version = "0.0.0-local" -dependencies = [ - "anyhow", - "chrono", - "clap", - "codesign-verify", - "derivative", - "enum-flags", - "file-rotate", - "fs_extra", - "glob", - "image", - "lazy_static", - "log", - "memmap2", - "native-dialog", - "native-tls", - "normpath", - "ntest", - "os_info", - "pretty-bytes-rust", - "rand", - "regex", - "remove_dir_all", - "semver", - "sha1_smol", - "simple-stopwatch", - "simplelog", - "strum", - "ureq", - "wait-timeout", - "waitpid-any", - "widestring", - "windows", - "windows-sys 0.52.0", - "winres", - "winsafe", - "xml", - "zip", - "zstd", -] - [[package]] name = "cocoa" version = "0.25.0" @@ -412,9 +368,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", ] @@ -501,9 +457,9 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "fdeflate" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868" +checksum = "209098dd6dfc4445aa6111f0e98653ac323eaa4dfd212c9ca3931bf9955c31bd" dependencies = [ "simd-adler32", ] @@ -555,7 +511,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.43", ] [[package]] @@ -659,16 +615,16 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core 0.51.1", + "windows-core", ] [[package]] @@ -801,9 +757,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "memmap2" @@ -1037,7 +993,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.43", ] [[package]] @@ -1125,9 +1081,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.71" +version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8" +checksum = "a293318316cf6478ec1ad2a21c49390a8d5b5eae9fab736467d93fbc0edc29c5" dependencies = [ "unicode-ident", ] @@ -1271,11 +1227,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1324,7 +1280,7 @@ checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.43", ] [[package]] @@ -1416,7 +1372,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.42", + "syn 2.0.43", ] [[package]] @@ -1432,9 +1388,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.42" +version = "2.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b7d0a2c048d661a1a59fcd7355baa232f7ed34e0ee4df2eef3c1c1c0d3852d8" +checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53" dependencies = [ "proc-macro2", "quote", @@ -1443,15 +1399,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.8.1" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" dependencies = [ "cfg-if", "fastrand", "redox_syscall", "rustix", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1465,22 +1421,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.51" +version = "1.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" +checksum = "b2cd5904763bad08ad5513ddbb12cf2ae273ca53fa9f68e843e236ec6dfccc09" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.51" +version = "1.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" +checksum = "3dcf4a824cce0aeacd6f38ae6f24234c8e80d68632338ebaa1443b5df9e29e19" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.43", ] [[package]] @@ -1630,6 +1586,50 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +[[package]] +name = "velopack" +version = "0.0.0-local" +dependencies = [ + "anyhow", + "chrono", + "clap", + "codesign-verify", + "derivative", + "enum-flags", + "file-rotate", + "fs_extra", + "glob", + "image", + "lazy_static", + "log", + "memmap2", + "native-dialog", + "native-tls", + "normpath", + "ntest", + "os_info", + "pretty-bytes-rust", + "rand", + "regex", + "remove_dir_all", + "semver", + "sha1_smol", + "simple-stopwatch", + "simplelog", + "strum", + "ureq", + "wait-timeout", + "waitpid-any", + "widestring", + "windows", + "windows-sys 0.52.0", + "winres", + "winsafe", + "xml", + "zip", + "zstd", +] + [[package]] name = "version_check" version = "0.9.4" @@ -1698,7 +1698,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.43", "wasm-bindgen-shared", ] @@ -1720,7 +1720,7 @@ checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.43", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -1802,19 +1802,10 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" dependencies = [ - "windows-core 0.52.0", + "windows-core", "windows-targets 0.52.0", ] -[[package]] -name = "windows-core" -version = "0.51.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-core" version = "0.52.0" @@ -2024,9 +2015,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.30" +version = "0.5.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b5c3db89721d50d0e2a673f5043fc4722f76dcc352d7b1ab8b8288bed4ed2c5" +checksum = "97a4882e6b134d6c28953a387571f1acdd3496830d5e36c5e3a1075580ea641c" dependencies = [ "memchr", ] diff --git a/src/Rust/Cargo.toml b/src/Rust/Cargo.toml index 8640d399..e7d28d23 100644 --- a/src/Rust/Cargo.toml +++ b/src/Rust/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "clowd_squirrel" +name = "velopack" version = "0.0.0-local" edition = "2021" diff --git a/src/Rust/build.rs b/src/Rust/build.rs index e6fce460..9a951982 100644 --- a/src/Rust/build.rs +++ b/src/Rust/build.rs @@ -11,7 +11,7 @@ fn main() { let version = version.trim(); let ver = semver::Version::parse(&version).expect("Unable to parse ngbv output as semver version"); let ver: u64 = ver.major << 48 | ver.minor << 32 | ver.patch << 16; - let desc = format!("Clowd.Squirrel {}", version); + let desc = format!("Velopack {}", version); println!("cargo:rustc-env=NGBV_VERSION={}", version); @@ -20,8 +20,8 @@ fn main() { .set_manifest_file("app.manifest") .set_version_info(winres::VersionInfo::PRODUCTVERSION, ver) .set_version_info(winres::VersionInfo::FILEVERSION, ver) - .set("CompanyName", "Clowd.Squirrel") - .set("ProductName", "Clowd.Squirrel") + .set("CompanyName", "Velopack") + .set("ProductName", "Velopack") .set("ProductVersion", version) .set("FileDescription", &desc) .set("LegalCopyright", "Caelan Sayler (c) 2023") diff --git a/src/Rust/src/commands/apply.rs b/src/Rust/src/commands/apply.rs index 797dba6b..0f92c7d0 100644 --- a/src/Rust/src/commands/apply.rs +++ b/src/Rust/src/commands/apply.rs @@ -21,7 +21,7 @@ pub fn apply<'a>(restart: bool, wait_for_parent: bool, package: Option<&PathBuf> } if restart { - shared::start_package(&app, &root_path, exe_args, Some("CLOWD_SQUIRREL_RESTART"))?; + shared::start_package(&app, &root_path, exe_args, Some("VELOPACK_RESTART"))?; } Ok(()) diff --git a/src/Rust/src/commands/patch.rs b/src/Rust/src/commands/patch.rs index 50b6bcb1..973ba7aa 100644 --- a/src/Rust/src/commands/patch.rs +++ b/src/Rust/src/commands/patch.rs @@ -26,7 +26,6 @@ pub fn patch(old_file: &PathBuf, patch_file: &PathBuf, output_file: &PathBuf) -> #[test] fn test_patch_apply() { - crate::logging::trace_logger(); let mut path = std::env::current_exe().unwrap(); path.pop(); path.pop(); diff --git a/src/Rust/src/setup.rs b/src/Rust/src/setup.rs index 43031ed0..833b8b7d 100644 --- a/src/Rust/src/setup.rs +++ b/src/Rust/src/setup.rs @@ -27,7 +27,7 @@ use winsafe::{self as w, co}; fn main() -> Result<()> { let mut arg_config = Command::new("Setup") - .about(format!("Clowd.Squirrel Setup ({}) installs Squirrel applications.\nhttps://github.com/clowd/Clowd.Squirrel", env!("NGBV_VERSION"))) + .about(format!("Velopack Setup ({}) installs applications.\nhttps://github.com/velopack/velopack", env!("NGBV_VERSION"))) .arg(arg!(-s --silent "Hides all dialogs and answers 'yes' to all prompts")) .arg(arg!(-v --verbose "Print debug messages to console")) .arg(arg!(-l --log "Enable file logging and set location").required(false).value_parser(value_parser!(PathBuf))) @@ -50,7 +50,7 @@ fn main() -> Result<()> { logging::setup_logging(logfile, true, verbose, nocolor)?; let _comguard = w::CoInitializeEx(co::COINIT::APARTMENTTHREADED | co::COINIT::DISABLE_OLE1DDE)?; - info!("Starting Clowd.Squirrel Setup ({})", env!("NGBV_VERSION")); + info!("Starting Velopack Setup ({})", env!("NGBV_VERSION")); info!(" Location: {:?}", std::env::current_exe()?); info!(" Silent: {}", silent); info!(" Verbose: {}", verbose); @@ -121,7 +121,7 @@ fn run(debug_pkg: &Option<&PathBuf>, install_to: &Option<&PathBuf>) -> Result<() // do we have enough disk space? let (compressed_size, extracted_size) = pkg.calculate_size(); - let required_space = compressed_size + extracted_size + (50 * 1000 * 1000); // archive + squirrel overhead + let required_space = compressed_size + extracted_size + (50 * 1000 * 1000); // archive + velopack overhead let mut free_space: u64 = 0; w::GetDiskFreeSpaceEx(Some(&root_path_str), None, None, Some(&mut free_space))?; if free_space < required_space { @@ -255,7 +255,7 @@ fn install_app(pkg: &bundle::BundleInfo, root_path: &PathBuf, tx: &std::sync::mp if !dialogs::get_silent() { info!("Starting app..."); - shared::start_package(&app, &root_path, None, Some("CLOWD_SQUIRREL_FIRSTRUN"))?; + shared::start_package(&app, &root_path, None, Some("VELOPACK_FIRSTRUN"))?; } Ok(()) diff --git a/src/Rust/src/shared/bundle.rs b/src/Rust/src/shared/bundle.rs index 7d0c0fb4..5b253cce 100644 --- a/src/Rust/src/shared/bundle.rs +++ b/src/Rust/src/shared/bundle.rs @@ -338,7 +338,7 @@ impl Manifest { #[cfg(target_os = "macos")] impl Manifest { pub fn get_packages_path(&self, _root_path: &PathBuf) -> String { - let tmp = format!("/tmp/clowd.squirrel/{}/packages", self.id); + let tmp = format!("/tmp/velopack/{}/packages", self.id); let p = Path::new(&tmp); if !p.exists() { fs::create_dir_all(p).unwrap(); @@ -517,16 +517,16 @@ fn parse_package_file_name>(name: T) -> Option { #[test] fn test_parse_package_file_name() { // test no rid - let entry = parse_package_file_name("Clowd.Squirrel-1.0.0-full.nupkg").unwrap(); - assert_eq!(entry.name, "Clowd.Squirrel"); + let entry = parse_package_file_name("Velopack-1.0.0-full.nupkg").unwrap(); + assert_eq!(entry.name, "Velopack"); assert_eq!(entry.version, Version::parse("1.0.0").unwrap()); assert_eq!(entry.is_delta, false); assert_eq!(entry.os, None); assert_eq!(entry.os_min_ver, None); assert_eq!(entry.os_arch, None); - let entry = parse_package_file_name("Clowd.Squirrel-1.0.0-delta.nupkg").unwrap(); - assert_eq!(entry.name, "Clowd.Squirrel"); + let entry = parse_package_file_name("Velopack-1.0.0-delta.nupkg").unwrap(); + assert_eq!(entry.name, "Velopack"); assert_eq!(entry.version, Version::parse("1.0.0").unwrap()); assert_eq!(entry.is_delta, true); assert_eq!(entry.os, None); @@ -542,40 +542,40 @@ fn test_parse_package_file_name() { assert_eq!(entry.os_arch, None); // test with rid individual components - let entry = parse_package_file_name("Clowd.Squirrel-1.0.0-osx-full.nupkg").unwrap(); - assert_eq!(entry.name, "Clowd.Squirrel"); + let entry = parse_package_file_name("Velopack-1.0.0-osx-full.nupkg").unwrap(); + assert_eq!(entry.name, "Velopack"); assert_eq!(entry.version, Version::parse("1.0.0").unwrap()); assert_eq!(entry.is_delta, false); assert_eq!(entry.os, Some("osx".to_string())); assert_eq!(entry.os_min_ver, None); assert_eq!(entry.os_arch, None); - let entry = parse_package_file_name("Clowd.Squirrel-1.0.0-win-full.nupkg").unwrap(); - assert_eq!(entry.name, "Clowd.Squirrel"); + let entry = parse_package_file_name("Velopack-1.0.0-win-full.nupkg").unwrap(); + assert_eq!(entry.name, "Velopack"); assert_eq!(entry.version, Version::parse("1.0.0").unwrap()); assert_eq!(entry.is_delta, false); assert_eq!(entry.os, Some("win".to_string())); assert_eq!(entry.os_min_ver, None); assert_eq!(entry.os_arch, None); - let entry = parse_package_file_name("Clowd.Squirrel-1.0.0-x86-full.nupkg").unwrap(); - assert_eq!(entry.name, "Clowd.Squirrel"); + let entry = parse_package_file_name("Velopack-1.0.0-x86-full.nupkg").unwrap(); + assert_eq!(entry.name, "Velopack"); assert_eq!(entry.version, Version::parse("1.0.0").unwrap()); assert_eq!(entry.is_delta, false); assert_eq!(entry.os, None); assert_eq!(entry.os_min_ver, None); assert_eq!(entry.os_arch, Some("x86".to_string())); - let entry = parse_package_file_name("Clowd.Squirrel-1.0.0-x64-full.nupkg").unwrap(); - assert_eq!(entry.name, "Clowd.Squirrel"); + let entry = parse_package_file_name("Velopack-1.0.0-x64-full.nupkg").unwrap(); + assert_eq!(entry.name, "Velopack"); assert_eq!(entry.version, Version::parse("1.0.0").unwrap()); assert_eq!(entry.is_delta, false); assert_eq!(entry.os, None); assert_eq!(entry.os_min_ver, None); assert_eq!(entry.os_arch, Some("x64".to_string())); - let entry = parse_package_file_name("Clowd.Squirrel-1.0.0-arm64-full.nupkg").unwrap(); - assert_eq!(entry.name, "Clowd.Squirrel"); + let entry = parse_package_file_name("Velopack-1.0.0-arm64-full.nupkg").unwrap(); + assert_eq!(entry.name, "Velopack"); assert_eq!(entry.version, Version::parse("1.0.0").unwrap()); assert_eq!(entry.is_delta, false); assert_eq!(entry.os, None); @@ -583,16 +583,16 @@ fn test_parse_package_file_name() { assert_eq!(entry.os_arch, Some("arm64".to_string())); // test with full rid - let entry = parse_package_file_name("Clowd.Squirrel-1.0.0-win10-x64-full.nupkg").unwrap(); - assert_eq!(entry.name, "Clowd.Squirrel"); + let entry = parse_package_file_name("Velopack-1.0.0-win10-x64-full.nupkg").unwrap(); + assert_eq!(entry.name, "Velopack"); assert_eq!(entry.version, Version::parse("1.0.0").unwrap()); assert_eq!(entry.is_delta, false); assert_eq!(entry.os, Some("win".to_string())); assert_eq!(entry.os_min_ver, Some("10".to_string())); assert_eq!(entry.os_arch, Some("x64".to_string())); - let entry = parse_package_file_name("Clowd.Squirrel-1.0.0-win10-arm64-full.nupkg").unwrap(); - assert_eq!(entry.name, "Clowd.Squirrel"); + let entry = parse_package_file_name("Velopack-1.0.0-win10-arm64-full.nupkg").unwrap(); + assert_eq!(entry.name, "Velopack"); assert_eq!(entry.version, Version::parse("1.0.0").unwrap()); assert_eq!(entry.is_delta, false); assert_eq!(entry.os, Some("win".to_string())); diff --git a/src/Rust/src/stub.rs b/src/Rust/src/stub.rs index b1b5585b..7c71b539 100644 --- a/src/Rust/src/stub.rs +++ b/src/Rust/src/stub.rs @@ -16,7 +16,7 @@ fn main() -> ExitCode { let mut log_path = my_path.clone(); log_path.pop(); - log_path.push("Clowd.Squirrel.log"); + log_path.push("Velopack.log"); let _ = logging::setup_logging(Some(&log_path), false, true, true); diff --git a/src/Rust/src/update.rs b/src/Rust/src/update.rs index a1e26c4f..b100079f 100644 --- a/src/Rust/src/update.rs +++ b/src/Rust/src/update.rs @@ -22,7 +22,7 @@ use std::{env, path::PathBuf}; fn root_command() -> Command { let cmd = Command::new("Update") .version(env!("NGBV_VERSION")) - .about(format!("Clowd.Squirrel Updater ({}) manages packages and installs updates for Squirrel applications.\nhttps://github.com/clowd/Clowd.Squirrel", env!("NGBV_VERSION"))) + .about(format!("Velopack Updater ({}) manages packages and installs updates.\nhttps://github.com/velopack/velopack", env!("NGBV_VERSION"))) .subcommand(Command::new("apply") .about("Applies a staged / prepared update, installing prerequisite runtimes if necessary") .arg(arg!(-r --restart "Restart the application after the update")) @@ -85,7 +85,7 @@ fn main() -> Result<()> { let default_log_file = { let mut my_dir = env::current_exe().unwrap(); my_dir.pop(); - my_dir.join("Clowd.Squirrel.log") + my_dir.join("Velopack.log") }; let verbose = matches.get_flag("verbose"); @@ -96,7 +96,7 @@ fn main() -> Result<()> { dialogs::set_silent(silent); logging::setup_logging(Some(&log_file), true, verbose, nocolor)?; - info!("Starting Clowd.Squirrel Updater ({})", env!("NGBV_VERSION")); + info!("Starting Velopack Updater ({})", env!("NGBV_VERSION")); info!(" Location: {}", env::current_exe()?.to_string_lossy()); info!(" Verbose: {}", verbose); info!(" Silent: {}", silent); diff --git a/src/Rust/src/windows/splash.rs b/src/Rust/src/windows/splash.rs index d344d561..56bb26df 100644 --- a/src/Rust/src/windows/splash.rs +++ b/src/Rust/src/windows/splash.rs @@ -152,7 +152,7 @@ impl SplashWindow { class_icon: gui::Icon::Idi(co::IDI::APPLICATION), class_cursor: gui::Cursor::Idc(co::IDC::APPSTARTING), class_style: co::CS::HREDRAW | co::CS::VREDRAW, - class_name: "SquirrelSetupSplashWindow".to_owned(), + class_name: "VelopackSetupSplashWindow".to_owned(), title: app_name, size: (w.into(), h.into()), ex_style: co::WS_EX::NoValue, diff --git a/src/Rust/src/windows/util.rs b/src/Rust/src/windows/util.rs index 9b7fd060..25f1d6b0 100644 --- a/src/Rust/src/windows/util.rs +++ b/src/Rust/src/windows/util.rs @@ -35,7 +35,7 @@ pub fn run_hook(app: &shared::bundle::Manifest, root_path: &PathBuf, hook_name: } pub fn create_global_mutex(app: &shared::bundle::Manifest) -> Result { - let mutex_name = format!("clowdsquirrel-{}", &app.id); + let mutex_name = format!("velopack-{}", &app.id); info!("Attempting to open global system mutex: '{}'", &mutex_name); let encoded = mutex_name.encode_utf16().chain([0u16]).collect::>(); let pw = PCWSTR(encoded.as_ptr()); diff --git a/src/Squirrel.Deployment/GitHubRepository.cs b/src/Velopack.Deployment/GitHubRepository.cs similarity index 100% rename from src/Squirrel.Deployment/GitHubRepository.cs rename to src/Velopack.Deployment/GitHubRepository.cs diff --git a/src/Squirrel.Deployment/S3Repository.cs b/src/Velopack.Deployment/S3Repository.cs similarity index 100% rename from src/Squirrel.Deployment/S3Repository.cs rename to src/Velopack.Deployment/S3Repository.cs diff --git a/src/Squirrel.Deployment/SimpleWebRepository.cs b/src/Velopack.Deployment/SimpleWebRepository.cs similarity index 100% rename from src/Squirrel.Deployment/SimpleWebRepository.cs rename to src/Velopack.Deployment/SimpleWebRepository.cs diff --git a/src/Squirrel.Deployment/Squirrel.Deployment.csproj b/src/Velopack.Deployment/Velopack.Deployment.csproj similarity index 89% rename from src/Squirrel.Deployment/Squirrel.Deployment.csproj rename to src/Velopack.Deployment/Velopack.Deployment.csproj index 988dc159..1a3fe56e 100644 --- a/src/Squirrel.Deployment/Squirrel.Deployment.csproj +++ b/src/Velopack.Deployment/Velopack.Deployment.csproj @@ -7,7 +7,7 @@ - + diff --git a/src/Squirrel.Packaging.OSX/AppInfo.cs b/src/Velopack.Packaging.OSX/AppInfo.cs similarity index 100% rename from src/Squirrel.Packaging.OSX/AppInfo.cs rename to src/Velopack.Packaging.OSX/AppInfo.cs diff --git a/src/Squirrel.Packaging.OSX/Commands/OsxBundleCommandRunner.cs b/src/Velopack.Packaging.OSX/Commands/OsxBundleCommandRunner.cs similarity index 100% rename from src/Squirrel.Packaging.OSX/Commands/OsxBundleCommandRunner.cs rename to src/Velopack.Packaging.OSX/Commands/OsxBundleCommandRunner.cs diff --git a/src/Squirrel.Packaging.OSX/Commands/OsxBundleOptions.cs b/src/Velopack.Packaging.OSX/Commands/OsxBundleOptions.cs similarity index 100% rename from src/Squirrel.Packaging.OSX/Commands/OsxBundleOptions.cs rename to src/Velopack.Packaging.OSX/Commands/OsxBundleOptions.cs diff --git a/src/Squirrel.Packaging.OSX/Commands/OsxReleasifyCommandRunner.cs b/src/Velopack.Packaging.OSX/Commands/OsxReleasifyCommandRunner.cs similarity index 100% rename from src/Squirrel.Packaging.OSX/Commands/OsxReleasifyCommandRunner.cs rename to src/Velopack.Packaging.OSX/Commands/OsxReleasifyCommandRunner.cs diff --git a/src/Squirrel.Packaging.OSX/Commands/OsxReleasifyOptions.cs b/src/Velopack.Packaging.OSX/Commands/OsxReleasifyOptions.cs similarity index 100% rename from src/Squirrel.Packaging.OSX/Commands/OsxReleasifyOptions.cs rename to src/Velopack.Packaging.OSX/Commands/OsxReleasifyOptions.cs diff --git a/src/Squirrel.Packaging.OSX/HelperExe.cs b/src/Velopack.Packaging.OSX/HelperExe.cs similarity index 100% rename from src/Squirrel.Packaging.OSX/HelperExe.cs rename to src/Velopack.Packaging.OSX/HelperExe.cs diff --git a/src/Squirrel.Packaging.OSX/PListParser.cs b/src/Velopack.Packaging.OSX/PListParser.cs similarity index 100% rename from src/Squirrel.Packaging.OSX/PListParser.cs rename to src/Velopack.Packaging.OSX/PListParser.cs diff --git a/src/Squirrel.Packaging.OSX/PlistWriter.cs b/src/Velopack.Packaging.OSX/PlistWriter.cs similarity index 100% rename from src/Squirrel.Packaging.OSX/PlistWriter.cs rename to src/Velopack.Packaging.OSX/PlistWriter.cs diff --git a/src/Squirrel.Packaging.OSX/Properties/AssemblyInfo.cs b/src/Velopack.Packaging.OSX/Properties/AssemblyInfo.cs similarity index 100% rename from src/Squirrel.Packaging.OSX/Properties/AssemblyInfo.cs rename to src/Velopack.Packaging.OSX/Properties/AssemblyInfo.cs diff --git a/src/Squirrel.Packaging.OSX/StructureBuilder.cs b/src/Velopack.Packaging.OSX/StructureBuilder.cs similarity index 100% rename from src/Squirrel.Packaging.OSX/StructureBuilder.cs rename to src/Velopack.Packaging.OSX/StructureBuilder.cs diff --git a/src/Squirrel.Packaging.OSX/Squirrel.Packaging.OSX.csproj b/src/Velopack.Packaging.OSX/Velopack.Packaging.OSX.csproj similarity index 80% rename from src/Squirrel.Packaging.OSX/Squirrel.Packaging.OSX.csproj rename to src/Velopack.Packaging.OSX/Velopack.Packaging.OSX.csproj index a0085eb2..c3a2286a 100644 --- a/src/Squirrel.Packaging.OSX/Squirrel.Packaging.OSX.csproj +++ b/src/Velopack.Packaging.OSX/Velopack.Packaging.OSX.csproj @@ -7,7 +7,7 @@ - + diff --git a/src/Squirrel.Packaging.Windows/AuthenticodeTools.cs b/src/Velopack.Packaging.Windows/AuthenticodeTools.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/AuthenticodeTools.cs rename to src/Velopack.Packaging.Windows/AuthenticodeTools.cs diff --git a/src/Squirrel.Packaging.Windows/Commands/WindowsPackCommandRunner.cs b/src/Velopack.Packaging.Windows/Commands/WindowsPackCommandRunner.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/Commands/WindowsPackCommandRunner.cs rename to src/Velopack.Packaging.Windows/Commands/WindowsPackCommandRunner.cs diff --git a/src/Squirrel.Packaging.Windows/Commands/WindowsPackOptions.cs b/src/Velopack.Packaging.Windows/Commands/WindowsPackOptions.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/Commands/WindowsPackOptions.cs rename to src/Velopack.Packaging.Windows/Commands/WindowsPackOptions.cs diff --git a/src/Squirrel.Packaging.Windows/Commands/WindowsReleasifyCommandRunner.cs b/src/Velopack.Packaging.Windows/Commands/WindowsReleasifyCommandRunner.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/Commands/WindowsReleasifyCommandRunner.cs rename to src/Velopack.Packaging.Windows/Commands/WindowsReleasifyCommandRunner.cs diff --git a/src/Squirrel.Packaging.Windows/Commands/WindowsReleasifyOptions.cs b/src/Velopack.Packaging.Windows/Commands/WindowsReleasifyOptions.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/Commands/WindowsReleasifyOptions.cs rename to src/Velopack.Packaging.Windows/Commands/WindowsReleasifyOptions.cs diff --git a/src/Squirrel.Packaging.Windows/Commands/WindowsSigningOptions.cs b/src/Velopack.Packaging.Windows/Commands/WindowsSigningOptions.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/Commands/WindowsSigningOptions.cs rename to src/Velopack.Packaging.Windows/Commands/WindowsSigningOptions.cs diff --git a/src/Squirrel.Packaging.Windows/HelperExe.cs b/src/Velopack.Packaging.Windows/HelperExe.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HelperExe.cs rename to src/Velopack.Packaging.Windows/HelperExe.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/AppHost/AppHostExceptions.cs b/src/Velopack.Packaging.Windows/HostModel/AppHost/AppHostExceptions.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/AppHost/AppHostExceptions.cs rename to src/Velopack.Packaging.Windows/HostModel/AppHost/AppHostExceptions.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/AppHost/BinaryUtils.cs b/src/Velopack.Packaging.Windows/HostModel/AppHost/BinaryUtils.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/AppHost/BinaryUtils.cs rename to src/Velopack.Packaging.Windows/HostModel/AppHost/BinaryUtils.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/AppHost/ElfUtils.cs b/src/Velopack.Packaging.Windows/HostModel/AppHost/ElfUtils.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/AppHost/ElfUtils.cs rename to src/Velopack.Packaging.Windows/HostModel/AppHost/ElfUtils.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/AppHost/HResultException.cs b/src/Velopack.Packaging.Windows/HostModel/AppHost/HResultException.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/AppHost/HResultException.cs rename to src/Velopack.Packaging.Windows/HostModel/AppHost/HResultException.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/AppHost/HostWriter.cs b/src/Velopack.Packaging.Windows/HostModel/AppHost/HostWriter.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/AppHost/HostWriter.cs rename to src/Velopack.Packaging.Windows/HostModel/AppHost/HostWriter.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/AppHost/MachOFormatError.cs b/src/Velopack.Packaging.Windows/HostModel/AppHost/MachOFormatError.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/AppHost/MachOFormatError.cs rename to src/Velopack.Packaging.Windows/HostModel/AppHost/MachOFormatError.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/AppHost/MachOUtils.cs b/src/Velopack.Packaging.Windows/HostModel/AppHost/MachOUtils.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/AppHost/MachOUtils.cs rename to src/Velopack.Packaging.Windows/HostModel/AppHost/MachOUtils.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/AppHost/PEUtils.cs b/src/Velopack.Packaging.Windows/HostModel/AppHost/PEUtils.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/AppHost/PEUtils.cs rename to src/Velopack.Packaging.Windows/HostModel/AppHost/PEUtils.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/AppHost/PlaceHolderNotFoundInAppHostException.cs b/src/Velopack.Packaging.Windows/HostModel/AppHost/PlaceHolderNotFoundInAppHostException.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/AppHost/PlaceHolderNotFoundInAppHostException.cs rename to src/Velopack.Packaging.Windows/HostModel/AppHost/PlaceHolderNotFoundInAppHostException.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/AppHost/RetryUtil.cs b/src/Velopack.Packaging.Windows/HostModel/AppHost/RetryUtil.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/AppHost/RetryUtil.cs rename to src/Velopack.Packaging.Windows/HostModel/AppHost/RetryUtil.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/Bundle/BundleOptions.cs b/src/Velopack.Packaging.Windows/HostModel/Bundle/BundleOptions.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/Bundle/BundleOptions.cs rename to src/Velopack.Packaging.Windows/HostModel/Bundle/BundleOptions.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/Bundle/Bundler.cs b/src/Velopack.Packaging.Windows/HostModel/Bundle/Bundler.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/Bundle/Bundler.cs rename to src/Velopack.Packaging.Windows/HostModel/Bundle/Bundler.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/Bundle/FileEntry.cs b/src/Velopack.Packaging.Windows/HostModel/Bundle/FileEntry.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/Bundle/FileEntry.cs rename to src/Velopack.Packaging.Windows/HostModel/Bundle/FileEntry.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/Bundle/FileSpec.cs b/src/Velopack.Packaging.Windows/HostModel/Bundle/FileSpec.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/Bundle/FileSpec.cs rename to src/Velopack.Packaging.Windows/HostModel/Bundle/FileSpec.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/Bundle/FileType.cs b/src/Velopack.Packaging.Windows/HostModel/Bundle/FileType.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/Bundle/FileType.cs rename to src/Velopack.Packaging.Windows/HostModel/Bundle/FileType.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/Bundle/Manifest.cs b/src/Velopack.Packaging.Windows/HostModel/Bundle/Manifest.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/Bundle/Manifest.cs rename to src/Velopack.Packaging.Windows/HostModel/Bundle/Manifest.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/Bundle/TargetInfo.cs b/src/Velopack.Packaging.Windows/HostModel/Bundle/TargetInfo.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/Bundle/TargetInfo.cs rename to src/Velopack.Packaging.Windows/HostModel/Bundle/TargetInfo.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/Bundle/Trace.cs b/src/Velopack.Packaging.Windows/HostModel/Bundle/Trace.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/Bundle/Trace.cs rename to src/Velopack.Packaging.Windows/HostModel/Bundle/Trace.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/HostModelUtils.cs b/src/Velopack.Packaging.Windows/HostModel/HostModelUtils.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/HostModelUtils.cs rename to src/Velopack.Packaging.Windows/HostModel/HostModelUtils.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/README.md b/src/Velopack.Packaging.Windows/HostModel/README.md similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/README.md rename to src/Velopack.Packaging.Windows/HostModel/README.md diff --git a/src/Squirrel.Packaging.Windows/HostModel/ResourceUpdater.Squirrel.cs b/src/Velopack.Packaging.Windows/HostModel/ResourceUpdater.Squirrel.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/ResourceUpdater.Squirrel.cs rename to src/Velopack.Packaging.Windows/HostModel/ResourceUpdater.Squirrel.cs diff --git a/src/Squirrel.Packaging.Windows/HostModel/ResourceUpdater.cs b/src/Velopack.Packaging.Windows/HostModel/ResourceUpdater.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/HostModel/ResourceUpdater.cs rename to src/Velopack.Packaging.Windows/HostModel/ResourceUpdater.cs diff --git a/src/Squirrel.Packaging.Windows/SetupBundle.cs b/src/Velopack.Packaging.Windows/SetupBundle.cs similarity index 100% rename from src/Squirrel.Packaging.Windows/SetupBundle.cs rename to src/Velopack.Packaging.Windows/SetupBundle.cs diff --git a/src/Squirrel.Packaging.Windows/Squirrel.Packaging.Windows.csproj b/src/Velopack.Packaging.Windows/Velopack.Packaging.Windows.csproj similarity index 88% rename from src/Squirrel.Packaging.Windows/Squirrel.Packaging.Windows.csproj rename to src/Velopack.Packaging.Windows/Velopack.Packaging.Windows.csproj index 895ecb06..8257822f 100644 --- a/src/Squirrel.Packaging.Windows/Squirrel.Packaging.Windows.csproj +++ b/src/Velopack.Packaging.Windows/Velopack.Packaging.Windows.csproj @@ -8,7 +8,7 @@ - + diff --git a/src/Squirrel.Packaging/Commands/DeltaGenCommandRunner.cs b/src/Velopack.Packaging/Commands/DeltaGenCommandRunner.cs similarity index 100% rename from src/Squirrel.Packaging/Commands/DeltaGenCommandRunner.cs rename to src/Velopack.Packaging/Commands/DeltaGenCommandRunner.cs diff --git a/src/Squirrel.Packaging/Commands/DeltaGenOptions.cs b/src/Velopack.Packaging/Commands/DeltaGenOptions.cs similarity index 100% rename from src/Squirrel.Packaging/Commands/DeltaGenOptions.cs rename to src/Velopack.Packaging/Commands/DeltaGenOptions.cs diff --git a/src/Squirrel.Packaging/Commands/DeltaPatchCommandRunner.cs b/src/Velopack.Packaging/Commands/DeltaPatchCommandRunner.cs similarity index 100% rename from src/Squirrel.Packaging/Commands/DeltaPatchCommandRunner.cs rename to src/Velopack.Packaging/Commands/DeltaPatchCommandRunner.cs diff --git a/src/Squirrel.Packaging/Commands/DeltaPatchOptions.cs b/src/Velopack.Packaging/Commands/DeltaPatchOptions.cs similarity index 100% rename from src/Squirrel.Packaging/Commands/DeltaPatchOptions.cs rename to src/Velopack.Packaging/Commands/DeltaPatchOptions.cs diff --git a/src/Squirrel.Packaging/DeltaPackageBuilder.cs b/src/Velopack.Packaging/DeltaPackageBuilder.cs similarity index 100% rename from src/Squirrel.Packaging/DeltaPackageBuilder.cs rename to src/Velopack.Packaging/DeltaPackageBuilder.cs diff --git a/src/Squirrel.Packaging/HelperFile.cs b/src/Velopack.Packaging/HelperFile.cs similarity index 100% rename from src/Squirrel.Packaging/HelperFile.cs rename to src/Velopack.Packaging/HelperFile.cs diff --git a/src/Squirrel.Packaging/ICommand.cs b/src/Velopack.Packaging/ICommand.cs similarity index 100% rename from src/Squirrel.Packaging/ICommand.cs rename to src/Velopack.Packaging/ICommand.cs diff --git a/src/Squirrel.Packaging/MarkdownSharp.cs b/src/Velopack.Packaging/MarkdownSharp.cs similarity index 100% rename from src/Squirrel.Packaging/MarkdownSharp.cs rename to src/Velopack.Packaging/MarkdownSharp.cs diff --git a/src/Squirrel.Packaging/NugetConsole.cs b/src/Velopack.Packaging/NugetConsole.cs similarity index 100% rename from src/Squirrel.Packaging/NugetConsole.cs rename to src/Velopack.Packaging/NugetConsole.cs diff --git a/src/Squirrel.Packaging/NugetLoggingWrapper.cs b/src/Velopack.Packaging/NugetLoggingWrapper.cs similarity index 100% rename from src/Squirrel.Packaging/NugetLoggingWrapper.cs rename to src/Velopack.Packaging/NugetLoggingWrapper.cs diff --git a/src/Squirrel.Packaging/ProcessFailedException.cs b/src/Velopack.Packaging/ProcessFailedException.cs similarity index 100% rename from src/Squirrel.Packaging/ProcessFailedException.cs rename to src/Velopack.Packaging/ProcessFailedException.cs diff --git a/src/Squirrel.Packaging/ReleasePackageBuilder.cs b/src/Velopack.Packaging/ReleasePackageBuilder.cs similarity index 100% rename from src/Squirrel.Packaging/ReleasePackageBuilder.cs rename to src/Velopack.Packaging/ReleasePackageBuilder.cs diff --git a/src/Squirrel.Packaging/Squirrel.Packaging.csproj b/src/Velopack.Packaging/Velopack.Packaging.csproj similarity index 88% rename from src/Squirrel.Packaging/Squirrel.Packaging.csproj rename to src/Velopack.Packaging/Velopack.Packaging.csproj index 7e5bafc6..d28ca99d 100644 --- a/src/Squirrel.Packaging/Squirrel.Packaging.csproj +++ b/src/Velopack.Packaging/Velopack.Packaging.csproj @@ -8,7 +8,7 @@ - + diff --git a/src/Squirrel.Csq/Commands/DeltaGenCommand.cs b/src/Velopack.Vpk/Commands/DeltaGenCommand.cs similarity index 100% rename from src/Squirrel.Csq/Commands/DeltaGenCommand.cs rename to src/Velopack.Vpk/Commands/DeltaGenCommand.cs diff --git a/src/Squirrel.Csq/Commands/DeltaPatchCommand.cs b/src/Velopack.Vpk/Commands/DeltaPatchCommand.cs similarity index 100% rename from src/Squirrel.Csq/Commands/DeltaPatchCommand.cs rename to src/Velopack.Vpk/Commands/DeltaPatchCommand.cs diff --git a/src/Squirrel.Csq/Commands/GitHubBaseCommand.cs b/src/Velopack.Vpk/Commands/GitHubBaseCommand.cs similarity index 100% rename from src/Squirrel.Csq/Commands/GitHubBaseCommand.cs rename to src/Velopack.Vpk/Commands/GitHubBaseCommand.cs diff --git a/src/Squirrel.Csq/Commands/GitHubDownloadCommand.cs b/src/Velopack.Vpk/Commands/GitHubDownloadCommand.cs similarity index 100% rename from src/Squirrel.Csq/Commands/GitHubDownloadCommand.cs rename to src/Velopack.Vpk/Commands/GitHubDownloadCommand.cs diff --git a/src/Squirrel.Csq/Commands/GitHubUploadCommand.cs b/src/Velopack.Vpk/Commands/GitHubUploadCommand.cs similarity index 100% rename from src/Squirrel.Csq/Commands/GitHubUploadCommand.cs rename to src/Velopack.Vpk/Commands/GitHubUploadCommand.cs diff --git a/src/Squirrel.Csq/Commands/HttpDownloadCommand.cs b/src/Velopack.Vpk/Commands/HttpDownloadCommand.cs similarity index 100% rename from src/Squirrel.Csq/Commands/HttpDownloadCommand.cs rename to src/Velopack.Vpk/Commands/HttpDownloadCommand.cs diff --git a/src/Squirrel.Csq/Commands/OsxBundleCommand.cs b/src/Velopack.Vpk/Commands/OsxBundleCommand.cs similarity index 100% rename from src/Squirrel.Csq/Commands/OsxBundleCommand.cs rename to src/Velopack.Vpk/Commands/OsxBundleCommand.cs diff --git a/src/Squirrel.Csq/Commands/OsxReleasifyCommand.cs b/src/Velopack.Vpk/Commands/OsxReleasifyCommand.cs similarity index 100% rename from src/Squirrel.Csq/Commands/OsxReleasifyCommand.cs rename to src/Velopack.Vpk/Commands/OsxReleasifyCommand.cs diff --git a/src/Squirrel.Csq/Commands/S3BaseCommand.cs b/src/Velopack.Vpk/Commands/S3BaseCommand.cs similarity index 100% rename from src/Squirrel.Csq/Commands/S3BaseCommand.cs rename to src/Velopack.Vpk/Commands/S3BaseCommand.cs diff --git a/src/Squirrel.Csq/Commands/S3DownloadCommand.cs b/src/Velopack.Vpk/Commands/S3DownloadCommand.cs similarity index 100% rename from src/Squirrel.Csq/Commands/S3DownloadCommand.cs rename to src/Velopack.Vpk/Commands/S3DownloadCommand.cs diff --git a/src/Squirrel.Csq/Commands/S3UploadCommand.cs b/src/Velopack.Vpk/Commands/S3UploadCommand.cs similarity index 100% rename from src/Squirrel.Csq/Commands/S3UploadCommand.cs rename to src/Velopack.Vpk/Commands/S3UploadCommand.cs diff --git a/src/Squirrel.Csq/Commands/SystemCommandLineExtensions.cs b/src/Velopack.Vpk/Commands/SystemCommandLineExtensions.cs similarity index 100% rename from src/Squirrel.Csq/Commands/SystemCommandLineExtensions.cs rename to src/Velopack.Vpk/Commands/SystemCommandLineExtensions.cs diff --git a/src/Squirrel.Csq/Commands/WindowsPackCommand.cs b/src/Velopack.Vpk/Commands/WindowsPackCommand.cs similarity index 100% rename from src/Squirrel.Csq/Commands/WindowsPackCommand.cs rename to src/Velopack.Vpk/Commands/WindowsPackCommand.cs diff --git a/src/Squirrel.Csq/Commands/WindowsReleasifyCommand.cs b/src/Velopack.Vpk/Commands/WindowsReleasifyCommand.cs similarity index 100% rename from src/Squirrel.Csq/Commands/WindowsReleasifyCommand.cs rename to src/Velopack.Vpk/Commands/WindowsReleasifyCommand.cs diff --git a/src/Squirrel.Csq/Commands/WindowsSigningCommand.cs b/src/Velopack.Vpk/Commands/WindowsSigningCommand.cs similarity index 100% rename from src/Squirrel.Csq/Commands/WindowsSigningCommand.cs rename to src/Velopack.Vpk/Commands/WindowsSigningCommand.cs diff --git a/src/Squirrel.Csq/Commands/_BaseCommand.cs b/src/Velopack.Vpk/Commands/_BaseCommand.cs similarity index 100% rename from src/Squirrel.Csq/Commands/_BaseCommand.cs rename to src/Velopack.Vpk/Commands/_BaseCommand.cs diff --git a/src/Squirrel.Csq/Commands/_OutputCommand.cs b/src/Velopack.Vpk/Commands/_OutputCommand.cs similarity index 100% rename from src/Squirrel.Csq/Commands/_OutputCommand.cs rename to src/Velopack.Vpk/Commands/_OutputCommand.cs diff --git a/src/Squirrel.Csq/Commands/_PlatformCommand.cs b/src/Velopack.Vpk/Commands/_PlatformCommand.cs similarity index 100% rename from src/Squirrel.Csq/Commands/_PlatformCommand.cs rename to src/Velopack.Vpk/Commands/_PlatformCommand.cs diff --git a/src/Squirrel.Csq/Compat/EmbeddedRunner.cs b/src/Velopack.Vpk/Compat/EmbeddedRunner.cs similarity index 100% rename from src/Squirrel.Csq/Compat/EmbeddedRunner.cs rename to src/Velopack.Vpk/Compat/EmbeddedRunner.cs diff --git a/src/Squirrel.Csq/Compat/ICommandRunner.cs b/src/Velopack.Vpk/Compat/ICommandRunner.cs similarity index 100% rename from src/Squirrel.Csq/Compat/ICommandRunner.cs rename to src/Velopack.Vpk/Compat/ICommandRunner.cs diff --git a/src/Squirrel.Csq/Compat/RunnerFactory.cs b/src/Velopack.Vpk/Compat/RunnerFactory.cs similarity index 100% rename from src/Squirrel.Csq/Compat/RunnerFactory.cs rename to src/Velopack.Vpk/Compat/RunnerFactory.cs diff --git a/src/Squirrel.Csq/Compat/SquirrelVersionLocator.cs b/src/Velopack.Vpk/Compat/SquirrelVersionLocator.cs similarity index 100% rename from src/Squirrel.Csq/Compat/SquirrelVersionLocator.cs rename to src/Velopack.Vpk/Compat/SquirrelVersionLocator.cs diff --git a/src/Squirrel.Csq/Compat/V2CompatRunner.cs b/src/Velopack.Vpk/Compat/V2CompatRunner.cs similarity index 100% rename from src/Squirrel.Csq/Compat/V2CompatRunner.cs rename to src/Velopack.Vpk/Compat/V2CompatRunner.cs diff --git a/src/Squirrel.Csq/GlobalUsings.cs b/src/Velopack.Vpk/GlobalUsings.cs similarity index 100% rename from src/Squirrel.Csq/GlobalUsings.cs rename to src/Velopack.Vpk/GlobalUsings.cs diff --git a/src/Squirrel.Csq/Program.cs b/src/Velopack.Vpk/Program.cs similarity index 100% rename from src/Squirrel.Csq/Program.cs rename to src/Velopack.Vpk/Program.cs diff --git a/src/Squirrel.Csq/Updates/NugetDownloader.cs b/src/Velopack.Vpk/Updates/NugetDownloader.cs similarity index 100% rename from src/Squirrel.Csq/Updates/NugetDownloader.cs rename to src/Velopack.Vpk/Updates/NugetDownloader.cs diff --git a/src/Squirrel.Csq/Updates/NullNugetLogger.cs b/src/Velopack.Vpk/Updates/NullNugetLogger.cs similarity index 100% rename from src/Squirrel.Csq/Updates/NullNugetLogger.cs rename to src/Velopack.Vpk/Updates/NullNugetLogger.cs diff --git a/src/Squirrel.Csq/Updates/UpdateChecker.cs b/src/Velopack.Vpk/Updates/UpdateChecker.cs similarity index 100% rename from src/Squirrel.Csq/Updates/UpdateChecker.cs rename to src/Velopack.Vpk/Updates/UpdateChecker.cs diff --git a/src/Squirrel.Csq/Squirrel.Csq.csproj b/src/Velopack.Vpk/Velopack.Vpk.csproj similarity index 77% rename from src/Squirrel.Csq/Squirrel.Csq.csproj rename to src/Velopack.Vpk/Velopack.Vpk.csproj index ea5cf65e..ac2230d1 100644 --- a/src/Squirrel.Csq/Squirrel.Csq.csproj +++ b/src/Velopack.Vpk/Velopack.Vpk.csproj @@ -4,22 +4,22 @@ Exe net6.0;net8.0 true - csq - csq - Squirrel Locator Tool - csq + vpk + vpk + Velopack CLI + vpk true true true - A .NET Core Tool that uses the Squirrel framework to create installers and update packages for dotnet applications. - Clowd_200.png + A .NET Core Tool that uses the Velopack framework to create installers and update packages for dotnet applications. + latest $(NoWarn);CA2007;CS8002 - + @@ -27,7 +27,7 @@ - + @@ -36,7 +36,7 @@ - + @@ -50,9 +50,9 @@ - - - + + + diff --git a/src/Squirrel/Compression/BZip2Stream.cs b/src/Velopack/Compression/BZip2Stream.cs similarity index 100% rename from src/Squirrel/Compression/BZip2Stream.cs rename to src/Velopack/Compression/BZip2Stream.cs diff --git a/src/Squirrel/Compression/BinaryPatchUtility.cs b/src/Velopack/Compression/BinaryPatchUtility.cs similarity index 100% rename from src/Squirrel/Compression/BinaryPatchUtility.cs rename to src/Velopack/Compression/BinaryPatchUtility.cs diff --git a/src/Squirrel/Compression/ChecksumFailedException.cs b/src/Velopack/Compression/ChecksumFailedException.cs similarity index 100% rename from src/Squirrel/Compression/ChecksumFailedException.cs rename to src/Velopack/Compression/ChecksumFailedException.cs diff --git a/src/Squirrel/Compression/DeltaPackage.cs b/src/Velopack/Compression/DeltaPackage.cs similarity index 100% rename from src/Squirrel/Compression/DeltaPackage.cs rename to src/Velopack/Compression/DeltaPackage.cs diff --git a/src/Squirrel/Compression/EasyZip.cs b/src/Velopack/Compression/EasyZip.cs similarity index 100% rename from src/Squirrel/Compression/EasyZip.cs rename to src/Velopack/Compression/EasyZip.cs diff --git a/src/Squirrel/Compression/MsDeltaCompression.cs b/src/Velopack/Compression/MsDeltaCompression.cs similarity index 100% rename from src/Squirrel/Compression/MsDeltaCompression.cs rename to src/Velopack/Compression/MsDeltaCompression.cs diff --git a/src/Squirrel/Internal/Disposable.cs b/src/Velopack/Internal/Disposable.cs similarity index 100% rename from src/Squirrel/Internal/Disposable.cs rename to src/Velopack/Internal/Disposable.cs diff --git a/src/Squirrel/Internal/EnumerableExtensions.cs b/src/Velopack/Internal/EnumerableExtensions.cs similarity index 100% rename from src/Squirrel/Internal/EnumerableExtensions.cs rename to src/Velopack/Internal/EnumerableExtensions.cs diff --git a/src/Squirrel/Internal/LoggerExtensions.cs b/src/Velopack/Internal/LoggerExtensions.cs similarity index 100% rename from src/Squirrel/Internal/LoggerExtensions.cs rename to src/Velopack/Internal/LoggerExtensions.cs diff --git a/src/Squirrel/Internal/ProcessExtensions.cs b/src/Velopack/Internal/ProcessExtensions.cs similarity index 100% rename from src/Squirrel/Internal/ProcessExtensions.cs rename to src/Velopack/Internal/ProcessExtensions.cs diff --git a/src/Squirrel/Internal/SimpleJson.cs b/src/Velopack/Internal/SimpleJson.cs similarity index 100% rename from src/Squirrel/Internal/SimpleJson.cs rename to src/Velopack/Internal/SimpleJson.cs diff --git a/src/Squirrel/Internal/Utility.cs b/src/Velopack/Internal/Utility.cs similarity index 100% rename from src/Squirrel/Internal/Utility.cs rename to src/Velopack/Internal/Utility.cs diff --git a/src/Squirrel/Locators/ISquirrelLocator.cs b/src/Velopack/Locators/ISquirrelLocator.cs similarity index 100% rename from src/Squirrel/Locators/ISquirrelLocator.cs rename to src/Velopack/Locators/ISquirrelLocator.cs diff --git a/src/Squirrel/Locators/OsxSquirrelLocator.cs b/src/Velopack/Locators/OsxSquirrelLocator.cs similarity index 100% rename from src/Squirrel/Locators/OsxSquirrelLocator.cs rename to src/Velopack/Locators/OsxSquirrelLocator.cs diff --git a/src/Squirrel/Locators/SquirrelLocator.cs b/src/Velopack/Locators/SquirrelLocator.cs similarity index 100% rename from src/Squirrel/Locators/SquirrelLocator.cs rename to src/Velopack/Locators/SquirrelLocator.cs diff --git a/src/Squirrel/Locators/TestSquirrelLocator.cs b/src/Velopack/Locators/TestSquirrelLocator.cs similarity index 100% rename from src/Squirrel/Locators/TestSquirrelLocator.cs rename to src/Velopack/Locators/TestSquirrelLocator.cs diff --git a/src/Squirrel/Locators/WindowsSquirrelLocator.cs b/src/Velopack/Locators/WindowsSquirrelLocator.cs similarity index 100% rename from src/Squirrel/Locators/WindowsSquirrelLocator.cs rename to src/Velopack/Locators/WindowsSquirrelLocator.cs diff --git a/src/Squirrel/NuGet/ContentType.cs b/src/Velopack/NuGet/ContentType.cs similarity index 100% rename from src/Squirrel/NuGet/ContentType.cs rename to src/Velopack/NuGet/ContentType.cs diff --git a/src/Squirrel/NuGet/IPackage.cs b/src/Velopack/NuGet/IPackage.cs similarity index 100% rename from src/Squirrel/NuGet/IPackage.cs rename to src/Velopack/NuGet/IPackage.cs diff --git a/src/Squirrel/NuGet/IPackageFile.cs b/src/Velopack/NuGet/IPackageFile.cs similarity index 100% rename from src/Squirrel/NuGet/IPackageFile.cs rename to src/Velopack/NuGet/IPackageFile.cs diff --git a/src/Squirrel/NuGet/IZipPackage.cs b/src/Velopack/NuGet/IZipPackage.cs similarity index 100% rename from src/Squirrel/NuGet/IZipPackage.cs rename to src/Velopack/NuGet/IZipPackage.cs diff --git a/src/Squirrel/NuGet/NugetUtil.cs b/src/Velopack/NuGet/NugetUtil.cs similarity index 100% rename from src/Squirrel/NuGet/NugetUtil.cs rename to src/Velopack/NuGet/NugetUtil.cs diff --git a/src/Squirrel/NuGet/NuspecManifest.cs b/src/Velopack/NuGet/NuspecManifest.cs similarity index 100% rename from src/Squirrel/NuGet/NuspecManifest.cs rename to src/Velopack/NuGet/NuspecManifest.cs diff --git a/src/Squirrel/NuGet/PackageDependency.cs b/src/Velopack/NuGet/PackageDependency.cs similarity index 100% rename from src/Squirrel/NuGet/PackageDependency.cs rename to src/Velopack/NuGet/PackageDependency.cs diff --git a/src/Squirrel/NuGet/ZipPackage.cs b/src/Velopack/NuGet/ZipPackage.cs similarity index 100% rename from src/Squirrel/NuGet/ZipPackage.cs rename to src/Velopack/NuGet/ZipPackage.cs diff --git a/src/Squirrel/NuGet/ZipPackageFile.cs b/src/Velopack/NuGet/ZipPackageFile.cs similarity index 100% rename from src/Squirrel/NuGet/ZipPackageFile.cs rename to src/Velopack/NuGet/ZipPackageFile.cs diff --git a/src/Squirrel/Properties/AssemblyInfo.cs b/src/Velopack/Properties/AssemblyInfo.cs similarity index 53% rename from src/Squirrel/Properties/AssemblyInfo.cs rename to src/Velopack/Properties/AssemblyInfo.cs index 6cb97be4..b4c38c52 100644 --- a/src/Squirrel/Properties/AssemblyInfo.cs +++ b/src/Velopack/Properties/AssemblyInfo.cs @@ -2,14 +2,14 @@ using System.Runtime.InteropServices; [assembly: ComVisible(false)] -[assembly: InternalsVisibleTo("Squirrel.Tests, PublicKey=" + SNK.SHA1)] -[assembly: InternalsVisibleTo("Squirrel.Packaging.Tests, PublicKey=" + SNK.SHA1)] -[assembly: InternalsVisibleTo("Squirrel, PublicKey=" + SNK.SHA1)] -[assembly: InternalsVisibleTo("Squirrel.Deployment, PublicKey=" + SNK.SHA1)] -[assembly: InternalsVisibleTo("Squirrel.Packaging, PublicKey=" + SNK.SHA1)] -[assembly: InternalsVisibleTo("Squirrel.Packaging.Windows, PublicKey=" + SNK.SHA1)] -[assembly: InternalsVisibleTo("Squirrel.Packaging.OSX, PublicKey=" + SNK.SHA1)] -[assembly: InternalsVisibleTo("csq, PublicKey=" + SNK.SHA1)] +[assembly: InternalsVisibleTo("Velopack.Tests, PublicKey=" + SNK.SHA1)] +[assembly: InternalsVisibleTo("Velopack.Packaging.Tests, PublicKey=" + SNK.SHA1)] +[assembly: InternalsVisibleTo("Velopack, PublicKey=" + SNK.SHA1)] +[assembly: InternalsVisibleTo("Velopack.Deployment, PublicKey=" + SNK.SHA1)] +[assembly: InternalsVisibleTo("Velopack.Packaging, PublicKey=" + SNK.SHA1)] +[assembly: InternalsVisibleTo("Velopack.Packaging.Windows, PublicKey=" + SNK.SHA1)] +[assembly: InternalsVisibleTo("Velopack.Packaging.OSX, PublicKey=" + SNK.SHA1)] +[assembly: InternalsVisibleTo("vpk, PublicKey=" + SNK.SHA1)] internal static class SNK { diff --git a/src/Squirrel/RID.cs b/src/Velopack/RID.cs similarity index 100% rename from src/Squirrel/RID.cs rename to src/Velopack/RID.cs diff --git a/src/Squirrel/ReleaseEntry.cs b/src/Velopack/ReleaseEntry.cs similarity index 100% rename from src/Squirrel/ReleaseEntry.cs rename to src/Velopack/ReleaseEntry.cs diff --git a/src/Squirrel/ReleaseEntryName.cs b/src/Velopack/ReleaseEntryName.cs similarity index 100% rename from src/Squirrel/ReleaseEntryName.cs rename to src/Velopack/ReleaseEntryName.cs diff --git a/src/Squirrel/Sources/GithubSource.cs b/src/Velopack/Sources/GithubSource.cs similarity index 100% rename from src/Squirrel/Sources/GithubSource.cs rename to src/Velopack/Sources/GithubSource.cs diff --git a/src/Squirrel/Sources/GitlabSource.cs b/src/Velopack/Sources/GitlabSource.cs similarity index 100% rename from src/Squirrel/Sources/GitlabSource.cs rename to src/Velopack/Sources/GitlabSource.cs diff --git a/src/Squirrel/Sources/HttpClientFileDownloader.cs b/src/Velopack/Sources/HttpClientFileDownloader.cs similarity index 100% rename from src/Squirrel/Sources/HttpClientFileDownloader.cs rename to src/Velopack/Sources/HttpClientFileDownloader.cs diff --git a/src/Squirrel/Sources/IFileDownloader.cs b/src/Velopack/Sources/IFileDownloader.cs similarity index 100% rename from src/Squirrel/Sources/IFileDownloader.cs rename to src/Velopack/Sources/IFileDownloader.cs diff --git a/src/Squirrel/Sources/IUpdateSource.cs b/src/Velopack/Sources/IUpdateSource.cs similarity index 100% rename from src/Squirrel/Sources/IUpdateSource.cs rename to src/Velopack/Sources/IUpdateSource.cs diff --git a/src/Squirrel/Sources/SimpleFileSource.cs b/src/Velopack/Sources/SimpleFileSource.cs similarity index 100% rename from src/Squirrel/Sources/SimpleFileSource.cs rename to src/Velopack/Sources/SimpleFileSource.cs diff --git a/src/Squirrel/Sources/SimpleWebSource.cs b/src/Velopack/Sources/SimpleWebSource.cs similarity index 100% rename from src/Squirrel/Sources/SimpleWebSource.cs rename to src/Velopack/Sources/SimpleWebSource.cs diff --git a/src/Squirrel/Sources/SourceBase.cs b/src/Velopack/Sources/SourceBase.cs similarity index 100% rename from src/Squirrel/Sources/SourceBase.cs rename to src/Velopack/Sources/SourceBase.cs diff --git a/src/Squirrel/SquirrelApp.cs b/src/Velopack/SquirrelApp.cs similarity index 100% rename from src/Squirrel/SquirrelApp.cs rename to src/Velopack/SquirrelApp.cs diff --git a/src/Squirrel/SquirrelRuntimeInfo.cs b/src/Velopack/SquirrelRuntimeInfo.cs similarity index 100% rename from src/Squirrel/SquirrelRuntimeInfo.cs rename to src/Velopack/SquirrelRuntimeInfo.cs diff --git a/src/Squirrel/UpdateInfo.cs b/src/Velopack/UpdateInfo.cs similarity index 100% rename from src/Squirrel/UpdateInfo.cs rename to src/Velopack/UpdateInfo.cs diff --git a/src/Squirrel/UpdateManager.cs b/src/Velopack/UpdateManager.cs similarity index 99% rename from src/Squirrel/UpdateManager.cs rename to src/Velopack/UpdateManager.cs index 9d920d3f..9b377c4c 100644 --- a/src/Squirrel/UpdateManager.cs +++ b/src/Velopack/UpdateManager.cs @@ -430,7 +430,7 @@ namespace Squirrel /// protected virtual Mutex AcquireUpdateLock() { - var mutexId = $"clowdsquirrel-{AppId}"; + var mutexId = $"velopack-{AppId}"; bool created = false; Mutex mutex = null; try { diff --git a/src/Squirrel/Squirrel.csproj b/src/Velopack/Velopack.csproj similarity index 83% rename from src/Squirrel/Squirrel.csproj rename to src/Velopack/Velopack.csproj index 17ab900c..cd72ad9a 100644 --- a/src/Squirrel/Squirrel.csproj +++ b/src/Velopack/Velopack.csproj @@ -3,15 +3,13 @@ net462;net48;netstandard2.0;net5.0;net6.0;net8.0 - Squirrel.Core - Squirrel - Squirrel + Velopack + Velopack true - Clowd.Squirrel - Squirrel Updater + Velopack Quick and easy installer and automatic updates for desktop applications true - Clowd_200.png + true false 9 @@ -33,8 +31,8 @@ - + diff --git a/src/Squirrel/Windows/RuntimeInfo.cs b/src/Velopack/Windows/RuntimeInfo.cs similarity index 100% rename from src/Squirrel/Windows/RuntimeInfo.cs rename to src/Velopack/Windows/RuntimeInfo.cs diff --git a/src/Squirrel/Windows/Runtimes.cs b/src/Velopack/Windows/Runtimes.cs similarity index 100% rename from src/Squirrel/Windows/Runtimes.cs rename to src/Velopack/Windows/Runtimes.cs diff --git a/src/Squirrel/Windows/ShellLink.cs b/src/Velopack/Windows/ShellLink.cs similarity index 100% rename from src/Squirrel/Windows/ShellLink.cs rename to src/Velopack/Windows/ShellLink.cs diff --git a/src/Squirrel/Windows/Shortcuts.cs b/src/Velopack/Windows/Shortcuts.cs similarity index 100% rename from src/Squirrel/Windows/Shortcuts.cs rename to src/Velopack/Windows/Shortcuts.cs diff --git a/test/Directory.Build.props b/test/Directory.Build.props index 2a8960ac..11d46bf6 100644 --- a/test/Directory.Build.props +++ b/test/Directory.Build.props @@ -18,7 +18,7 @@ true $(NoWarn);CS1998,xUnit2015,xUnit2017,xUnit2005,xUnit2009,xUnit2013,xUnit2004;CA2007;CS8002 True - ..\..\Squirrel.snk + ..\..\Velopack.snk false enable @@ -26,8 +26,8 @@ cobertura ..\coverage.$(CurrentOsName).$(MSBuildProjectName).xml - [Squirrel*]* - [Squirrel.*.Tests]*,[*]Microsoft* + [Velopack*]* + [Velopack.*.Tests]*,[*]Microsoft* true diff --git a/test/TestApp/TestApp.csproj b/test/TestApp/TestApp.csproj index 42a2590d..fb7f17ee 100644 --- a/test/TestApp/TestApp.csproj +++ b/test/TestApp/TestApp.csproj @@ -7,7 +7,7 @@ - + diff --git a/test/Squirrel.CommandLine.Tests/BaseCommandTests.cs b/test/Velopack.CommandLine.Tests/BaseCommandTests.cs similarity index 100% rename from test/Squirrel.CommandLine.Tests/BaseCommandTests.cs rename to test/Velopack.CommandLine.Tests/BaseCommandTests.cs diff --git a/test/Squirrel.CommandLine.Tests/Commands/GitHubCommandTests.cs b/test/Velopack.CommandLine.Tests/Commands/GitHubCommandTests.cs similarity index 100% rename from test/Squirrel.CommandLine.Tests/Commands/GitHubCommandTests.cs rename to test/Velopack.CommandLine.Tests/Commands/GitHubCommandTests.cs diff --git a/test/Squirrel.CommandLine.Tests/Commands/HttpDownloadCommandTests.cs b/test/Velopack.CommandLine.Tests/Commands/HttpDownloadCommandTests.cs similarity index 100% rename from test/Squirrel.CommandLine.Tests/Commands/HttpDownloadCommandTests.cs rename to test/Velopack.CommandLine.Tests/Commands/HttpDownloadCommandTests.cs diff --git a/test/Squirrel.CommandLine.Tests/Commands/OsxCommandTests.cs b/test/Velopack.CommandLine.Tests/Commands/OsxCommandTests.cs similarity index 100% rename from test/Squirrel.CommandLine.Tests/Commands/OsxCommandTests.cs rename to test/Velopack.CommandLine.Tests/Commands/OsxCommandTests.cs diff --git a/test/Squirrel.CommandLine.Tests/Commands/S3CommandTests.cs b/test/Velopack.CommandLine.Tests/Commands/S3CommandTests.cs similarity index 100% rename from test/Squirrel.CommandLine.Tests/Commands/S3CommandTests.cs rename to test/Velopack.CommandLine.Tests/Commands/S3CommandTests.cs diff --git a/test/Squirrel.CommandLine.Tests/Commands/WindowsCommandTests.cs b/test/Velopack.CommandLine.Tests/Commands/WindowsCommandTests.cs similarity index 100% rename from test/Squirrel.CommandLine.Tests/Commands/WindowsCommandTests.cs rename to test/Velopack.CommandLine.Tests/Commands/WindowsCommandTests.cs diff --git a/test/Squirrel.CommandLine.Tests/TempFileTestBase.cs b/test/Velopack.CommandLine.Tests/TempFileTestBase.cs similarity index 100% rename from test/Squirrel.CommandLine.Tests/TempFileTestBase.cs rename to test/Velopack.CommandLine.Tests/TempFileTestBase.cs diff --git a/test/Squirrel.CommandLine.Tests/Squirrel.CommandLine.Tests.csproj b/test/Velopack.CommandLine.Tests/Velopack.CommandLine.Tests.csproj similarity index 75% rename from test/Squirrel.CommandLine.Tests/Squirrel.CommandLine.Tests.csproj rename to test/Velopack.CommandLine.Tests/Velopack.CommandLine.Tests.csproj index 17881afd..b70d852a 100644 --- a/test/Squirrel.CommandLine.Tests/Squirrel.CommandLine.Tests.csproj +++ b/test/Velopack.CommandLine.Tests/Velopack.CommandLine.Tests.csproj @@ -7,7 +7,7 @@ - + diff --git a/test/Squirrel.CommandLine.Tests/WindowsOnlyFact.cs b/test/Velopack.CommandLine.Tests/WindowsOnlyFact.cs similarity index 100% rename from test/Squirrel.CommandLine.Tests/WindowsOnlyFact.cs rename to test/Velopack.CommandLine.Tests/WindowsOnlyFact.cs diff --git a/test/Squirrel.CommandLine.Tests/WindowsOnlyTheoryAttribute.cs b/test/Velopack.CommandLine.Tests/WindowsOnlyTheoryAttribute.cs similarity index 100% rename from test/Squirrel.CommandLine.Tests/WindowsOnlyTheoryAttribute.cs rename to test/Velopack.CommandLine.Tests/WindowsOnlyTheoryAttribute.cs diff --git a/test/Squirrel.Packaging.Tests/DeltaPackageTests.cs b/test/Velopack.Packaging.Tests/DeltaPackageTests.cs similarity index 100% rename from test/Squirrel.Packaging.Tests/DeltaPackageTests.cs rename to test/Velopack.Packaging.Tests/DeltaPackageTests.cs diff --git a/test/Squirrel.Packaging.Tests/Init.cs b/test/Velopack.Packaging.Tests/Init.cs similarity index 100% rename from test/Squirrel.Packaging.Tests/Init.cs rename to test/Velopack.Packaging.Tests/Init.cs diff --git a/test/Squirrel.Packaging.Tests/Properties/AssemblyInfo.cs b/test/Velopack.Packaging.Tests/Properties/AssemblyInfo.cs similarity index 100% rename from test/Squirrel.Packaging.Tests/Properties/AssemblyInfo.cs rename to test/Velopack.Packaging.Tests/Properties/AssemblyInfo.cs diff --git a/test/Squirrel.Packaging.Tests/ReleasePackageTests.cs b/test/Velopack.Packaging.Tests/ReleasePackageTests.cs similarity index 100% rename from test/Squirrel.Packaging.Tests/ReleasePackageTests.cs rename to test/Velopack.Packaging.Tests/ReleasePackageTests.cs diff --git a/test/Squirrel.Packaging.Tests/Squirrel.Packaging.Tests.csproj b/test/Velopack.Packaging.Tests/Velopack.Packaging.Tests.csproj similarity index 60% rename from test/Squirrel.Packaging.Tests/Squirrel.Packaging.Tests.csproj rename to test/Velopack.Packaging.Tests/Velopack.Packaging.Tests.csproj index 8d13bc2d..16187b60 100644 --- a/test/Squirrel.Packaging.Tests/Squirrel.Packaging.Tests.csproj +++ b/test/Velopack.Packaging.Tests/Velopack.Packaging.Tests.csproj @@ -5,7 +5,7 @@ - + diff --git a/test/Squirrel.Packaging.Tests/WindowsPackTests.cs b/test/Velopack.Packaging.Tests/WindowsPackTests.cs similarity index 100% rename from test/Squirrel.Packaging.Tests/WindowsPackTests.cs rename to test/Velopack.Packaging.Tests/WindowsPackTests.cs diff --git a/test/Squirrel.Tests/ContentTypeTests.cs b/test/Velopack.Tests/ContentTypeTests.cs similarity index 100% rename from test/Squirrel.Tests/ContentTypeTests.cs rename to test/Velopack.Tests/ContentTypeTests.cs diff --git a/test/Squirrel.Tests/OldSquirrel/ReleaseEntry.cs b/test/Velopack.Tests/OldSquirrel/ReleaseEntry.cs similarity index 100% rename from test/Squirrel.Tests/OldSquirrel/ReleaseEntry.cs rename to test/Velopack.Tests/OldSquirrel/ReleaseEntry.cs diff --git a/test/Squirrel.Tests/OldSquirrel/ReleaseExtensions.cs b/test/Velopack.Tests/OldSquirrel/ReleaseExtensions.cs similarity index 100% rename from test/Squirrel.Tests/OldSquirrel/ReleaseExtensions.cs rename to test/Velopack.Tests/OldSquirrel/ReleaseExtensions.cs diff --git a/test/Squirrel.Tests/OldSquirrel/SemanticVersion.cs b/test/Velopack.Tests/OldSquirrel/SemanticVersion.cs similarity index 100% rename from test/Squirrel.Tests/OldSquirrel/SemanticVersion.cs rename to test/Velopack.Tests/OldSquirrel/SemanticVersion.cs diff --git a/test/Squirrel.Tests/OldSquirrel/Utility.cs b/test/Velopack.Tests/OldSquirrel/Utility.cs similarity index 100% rename from test/Squirrel.Tests/OldSquirrel/Utility.cs rename to test/Velopack.Tests/OldSquirrel/Utility.cs diff --git a/test/Squirrel.Tests/ReleaseEntryTests.cs b/test/Velopack.Tests/ReleaseEntryTests.cs similarity index 100% rename from test/Squirrel.Tests/ReleaseEntryTests.cs rename to test/Velopack.Tests/ReleaseEntryTests.cs diff --git a/test/Squirrel.Tests/RuntimeTests.cs b/test/Velopack.Tests/RuntimeTests.cs similarity index 100% rename from test/Squirrel.Tests/RuntimeTests.cs rename to test/Velopack.Tests/RuntimeTests.cs diff --git a/test/Squirrel.Tests/TestHelpers/AssertExtensions.cs b/test/Velopack.Tests/TestHelpers/AssertExtensions.cs similarity index 100% rename from test/Squirrel.Tests/TestHelpers/AssertExtensions.cs rename to test/Velopack.Tests/TestHelpers/AssertExtensions.cs diff --git a/test/Squirrel.Tests/TestHelpers/ExposedClass.cs b/test/Velopack.Tests/TestHelpers/ExposedClass.cs similarity index 100% rename from test/Squirrel.Tests/TestHelpers/ExposedClass.cs rename to test/Velopack.Tests/TestHelpers/ExposedClass.cs diff --git a/test/Squirrel.Tests/TestHelpers/ExposedObject.cs b/test/Velopack.Tests/TestHelpers/ExposedObject.cs similarity index 100% rename from test/Squirrel.Tests/TestHelpers/ExposedObject.cs rename to test/Velopack.Tests/TestHelpers/ExposedObject.cs diff --git a/test/Squirrel.Tests/TestHelpers/ExposedObjectHelper.cs b/test/Velopack.Tests/TestHelpers/ExposedObjectHelper.cs similarity index 100% rename from test/Squirrel.Tests/TestHelpers/ExposedObjectHelper.cs rename to test/Velopack.Tests/TestHelpers/ExposedObjectHelper.cs diff --git a/test/Squirrel.Tests/TestHelpers/FakeDownloader.cs b/test/Velopack.Tests/TestHelpers/FakeDownloader.cs similarity index 100% rename from test/Squirrel.Tests/TestHelpers/FakeDownloader.cs rename to test/Velopack.Tests/TestHelpers/FakeDownloader.cs diff --git a/test/Squirrel.Tests/TestHelpers/FakeFixtureRepository.cs b/test/Velopack.Tests/TestHelpers/FakeFixtureRepository.cs similarity index 100% rename from test/Squirrel.Tests/TestHelpers/FakeFixtureRepository.cs rename to test/Velopack.Tests/TestHelpers/FakeFixtureRepository.cs diff --git a/test/Squirrel.Tests/TestHelpers/StaticHttpServer.cs b/test/Velopack.Tests/TestHelpers/StaticHttpServer.cs similarity index 100% rename from test/Squirrel.Tests/TestHelpers/StaticHttpServer.cs rename to test/Velopack.Tests/TestHelpers/StaticHttpServer.cs diff --git a/test/Squirrel.Tests/UpdateManager/ApplyReleasesTests.cs b/test/Velopack.Tests/UpdateManager/ApplyReleasesTests.cs similarity index 100% rename from test/Squirrel.Tests/UpdateManager/ApplyReleasesTests.cs rename to test/Velopack.Tests/UpdateManager/ApplyReleasesTests.cs diff --git a/test/Squirrel.Tests/UpdateManager/CheckForUpdateTests.cs b/test/Velopack.Tests/UpdateManager/CheckForUpdateTests.cs similarity index 100% rename from test/Squirrel.Tests/UpdateManager/CheckForUpdateTests.cs rename to test/Velopack.Tests/UpdateManager/CheckForUpdateTests.cs diff --git a/test/Squirrel.Tests/UpdateManager/DownloadReleasesTests.cs b/test/Velopack.Tests/UpdateManager/DownloadReleasesTests.cs similarity index 100% rename from test/Squirrel.Tests/UpdateManager/DownloadReleasesTests.cs rename to test/Velopack.Tests/UpdateManager/DownloadReleasesTests.cs diff --git a/test/Squirrel.Tests/UpdateManager/UpdateManagerTests.cs b/test/Velopack.Tests/UpdateManager/UpdateManagerTests.cs similarity index 100% rename from test/Squirrel.Tests/UpdateManager/UpdateManagerTests.cs rename to test/Velopack.Tests/UpdateManager/UpdateManagerTests.cs diff --git a/test/Squirrel.Tests/UpdateManagerTests.cs b/test/Velopack.Tests/UpdateManagerTests.cs similarity index 100% rename from test/Squirrel.Tests/UpdateManagerTests.cs rename to test/Velopack.Tests/UpdateManagerTests.cs diff --git a/test/Squirrel.Tests/UtilityTests.cs b/test/Velopack.Tests/UtilityTests.cs similarity index 100% rename from test/Squirrel.Tests/UtilityTests.cs rename to test/Velopack.Tests/UtilityTests.cs diff --git a/test/Squirrel.Tests/Squirrel.Tests.csproj b/test/Velopack.Tests/Velopack.Tests.csproj similarity index 91% rename from test/Squirrel.Tests/Squirrel.Tests.csproj rename to test/Velopack.Tests/Velopack.Tests.csproj index ff1941bb..56e4f130 100644 --- a/test/Squirrel.Tests/Squirrel.Tests.csproj +++ b/test/Velopack.Tests/Velopack.Tests.csproj @@ -18,7 +18,7 @@ - + diff --git a/test/Squirrel.Tests/ZipPackageTests.cs b/test/Velopack.Tests/ZipPackageTests.cs similarity index 100% rename from test/Squirrel.Tests/ZipPackageTests.cs rename to test/Velopack.Tests/ZipPackageTests.cs diff --git a/vendor/THIRD_PARTY_NOTICES.md b/vendor/THIRD_PARTY_NOTICES.md index 8e328b52..ac9c57d0 100644 --- a/vendor/THIRD_PARTY_NOTICES.md +++ b/vendor/THIRD_PARTY_NOTICES.md @@ -7,7 +7,7 @@ This folder contains pre-compiled binaries from a variety of sources. These shou - MIT License: https://github.com/electron/rcedit/blob/master/LICENSE ### signtool.exe -- Signs application binaries while building Squirrel packages. +- Signs application binaries while building packages. - Can be found in the Windows SDK at "C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86\signtool.exe" or similar, depending on the version of the SDK you have installed. - License? https://github.com/dotnet/docs/issues/10478 diff --git a/version.json b/version.json index 2ba8b2e1..8821c62e 100644 --- a/version.json +++ b/version.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", - "version": "4.0", + "version": "0.0", "gitCommitIdShortFixedLength": 7, "publicReleaseRefSpec": [ "^refs/heads/master$"