markus / MarkusAutoUpdate / CHANGELOG.md @ d8f5045e
이력 | 보기 | 이력해설 | 다운로드 (11.9 KB)
1 | d8f5045e | taeseongkim | # Changelog |
---|---|---|---|
2 | All notable changes to this project will be documented in this file. |
||
3 | |||
4 | ## [Unreleased] |
||
5 | |||
6 | ### Added |
||
7 | |||
8 | ### Changed |
||
9 | |||
10 | - [Breaking Change] Split UI to separate DLLs. The core NetSparkle DLL no longer requires a `UI`. |
||
11 | - Updated SampleApplication to more easily see new usage of NetSparkle |
||
12 | |||
13 | ### Removed |
||
14 | |||
15 | ## [0.19.0] |
||
16 | |||
17 | ### Added |
||
18 | |||
19 | - `CheckServerFileName` property lets you disable the checking of download file names with the server. Defaults to `true`. |
||
20 | - New function `IsDownloadingItem` lets you see if an item is currently being downloaded |
||
21 | |||
22 | ### Changed |
||
23 | |||
24 | - Fixed bug with threading and `HttpClient` by using `ConfigureAwait(false)`. See also https://stackoverflow.com/a/10351400/3938401. |
||
25 | |||
26 | ## [0.18.2] (and 0.18.3 because Deadpikle failed) |
||
27 | |||
28 | ### Changed |
||
29 | |||
30 | - Fixed bug where process IDs were sometimes not matched properly (@kenjiuno ) -- #80 (PR) |
||
31 | |||
32 | ## [0.18.1] |
||
33 | |||
34 | ### Changed |
||
35 | |||
36 | - Set AutoEllipsis to True for App Captions in dialog windows (@Mostlypyjamas) -- #78 (Issue), #79 (PR) |
||
37 | |||
38 | ## [0.18.0] |
||
39 | |||
40 | ### Changed |
||
41 | |||
42 | - `RegistryConfiguration.BuildRegistryInfo()` is now `public virtual` rather than `private` |
||
43 | |||
44 | ## [0.17.0] |
||
45 | |||
46 | ### Added |
||
47 | |||
48 | - NetSparkle now handles the `ddd, dd MMM yyyy HH:mm:ss Z` and `ddd, dd MMM yyyy HH:mm:ss` date formats when parsing an app cast file (@Mostlypyjamas) |
||
49 | |||
50 | ### Changed |
||
51 | |||
52 | - [Breaking Change] NetSparkle defaults to using the server's file name as the download file name rather than the app cast file name (@Mostlypyjamas) |
||
53 | - Many buttons use `AutoSize = true` to alleviate some concerns outlined in #44 |
||
54 | |||
55 | ### Removed |
||
56 | |||
57 | ## [0.16.2] |
||
58 | |||
59 | ### Fixed |
||
60 | |||
61 | - Fixed a bug where release notes were downloaded incorrectly |
||
62 | - Fixed a bug where the update form window wasn't closed properly |
||
63 | |||
64 | ## [0.16.1] |
||
65 | |||
66 | ### Added |
||
67 | |||
68 | - Appcast download links can now be relative (this change may be removed in a future X.0 verison of `NetSparkle` as it does not follow the RSS spec). This change was made to be consistent with how release notes are downloaded. |
||
69 | |||
70 | ### Changed |
||
71 | |||
72 | - `NetSparkleUtilities` namespace renamed to just `NetSparkle`. |
||
73 | |||
74 | ## [0.16.0] |
||
75 | |||
76 | ### Added |
||
77 | |||
78 | - We now offer a `generate_appcast.exe` tool in the `NetSparkle.New.Tools` NuGet! This works very similarly to macOS Sparkle's `generate_appcast` tool and is due to the work by @ndreisg. |
||
79 | - Started to work on adding formal unit tests for the project. Lots to do here, still. |
||
80 | |||
81 | ## [0.15.0] |
||
82 | |||
83 | ### Changed |
||
84 | |||
85 | - `AppCastItem` is now marked serializable |
||
86 | - If using `SecurityMode.Unsafe`, files are **always** redownloaded because the library has no good way of knowing whether or not the file that is on disk is the file that is actually on the server (@rolikoff) |
||
87 | - Fixed a bug where if you cancel the download process or if an error occurs during download, the update file stays in the same directory (@rolikoff) |
||
88 | - Fixed a bug where the `DownloadCanceled` event was fired twice (@rolikoff) |
||
89 | |||
90 | ## [0.14.0] (Same as 0.14.0.1 because Deadpikle goofed) |
||
91 | |||
92 | ### Added |
||
93 | |||
94 | - NetSparkle now supports the `sparkle:os` attribute (#17). If this is not present, an update is assumed to be a Windows update. Valid types for Windows are "win" or "windows". The operating system string check is a case-insensitive check. |
||
95 | - Added `OperatingSystemString` (default "windows") and `bool IsWindowsUpdate` to `AppCastItem` |
||
96 | - `AppCast.GetUpdates()` no longer returns non-Windows updates |
||
97 | - To increase compatibility with the main macOS Sparkle project, the `enclosure` tag can now be either `enclosure` or `sparkle:enclosure` |
||
98 | - Added `AppCastItem.MIMEType` to read the `<enclosure type="">` attribute if they want to (#15). Defaults to `application/octet-stream`. |
||
99 | - Added `UpdateDetectedEventArgs.AppCastItems` if you want to look at all available app cast items |
||
100 | - Added `DownloadPathForAppCastItem(AppCastItem item)` to easily grab the download path for a given downloadable appcast item |
||
101 | - Added `RunUpdate(AppCastItem item)` to allow you to run an update without waiting for the latest version to download. The DSA signature of the file is still checked! |
||
102 | |||
103 | ### Changed |
||
104 | |||
105 | - `NetSparkle.UpdateSystemProfileInformation` is now private |
||
106 | - `AppCast` no longer takes a Sparkle object and instead takes only those parameters that it needs to operate |
||
107 | - `NextUpdateAction` is now in its own file in the `NetSparkle.Enums` namespace |
||
108 | |||
109 | ### Removed |
||
110 | |||
111 | ## [0.13.0] - 2017-12-06 |
||
112 | |||
113 | ### Added |
||
114 | |||
115 | - **BREAKING CHANGE** Added `HideRemindMeLaterButton()` to `IUpdateAvailable` |
||
116 | - **BREAKING CHANGE** Added `HideSkipButton()` to `IUpdateAvailable` |
||
117 | - Added `HideRemindMeLaterButton` to the `NetSparkle` class. Defaults to false. Set to true to make `NetSparkle` call `HideRemindMeLaterButton()` when showing the update window. |
||
118 | - Added `HideSkipButton` to the `NetSparkle` class. Defaults to false. Set to true to make `NetSparkle` call `HideSkipButton()` when showing the update window. |
||
119 | - Added `RemindMeLaterSelected` to the `NetSparkle` class. Defaults to null. Use this event to be notified when the user has clicked the `Remind Me Later` button in the update window. (@enscope) |
||
120 | |||
121 | ### Changed |
||
122 | |||
123 | - Release notes are now downloaded asynchronously, which should speed up the time it takes to show the download window |
||
124 | - Release note date is now Date.ToString("D") instead of "dd MMM yyyy" so that release notes show localized date strings |
||
125 | - **POTENTIALLY BREAKING CHANGE** Fixed bug where `ValidationResult.Unchecked` was not returned properly from `OnDownloadFinished` if download file signature is null (@keithclanton) |
||
126 | - **BREAKING CHANGE** `IUpdateAvailable` now has a `Result` of type `UpdateAvailableResult` rather than `DialogResult` in order to remove a dependency on WinForms. Use `DefaultUIFactory.ConvertDialogResultToUpdateAvailableResult` to convert from `DialogResult` to `UpdateAvailableResult` if needed. (@enscope) |
||
127 | |||
128 | ### Removed |
||
129 | |||
130 | ## [0.12.0] - 2017-08-02 |
||
131 | ### Added |
||
132 | |||
133 | - Added new `LogWriter` class for printing diagnostic messages to the console. You can now create your own child class that inherits from `LogWriter` to customize how information is logged to the console (or file, or wherever else you want diagnostic messages sent!)! |
||
134 | - Added .gitattributes file for line ending consistency for all developers (@stephenwade) |
||
135 | |||
136 | ### Changed |
||
137 | - Moved `UpdateStatus` enum to `NetSparkle.Enums` |
||
138 | - Moved `UpdateInfo` class to its own file |
||
139 | - Fixed bug in `Configuration.cs` where a few values were not set properly in the constructor due to `InitWithDefaultValues` being called at the wrong time (@devstudiosoft) |
||
140 | - **BREAKING CHANGE** Fixed bug in `AssemblyDiagnosticsAccessor` where `AssemblyProduct` returned the assembly version and not the assembly name (@devstudiosoft) |
||
141 | |||
142 | ### Removed |
||
143 | |||
144 | - **BREAKING CHANGE** Removed `public void NetSparkle.ReportDiagnosticMessage` in lieu of new `LogWriter` class. |
||
145 | |||
146 | ## [0.11.0] - 2017-07-16 |
||
147 | ### Added |
||
148 | - Refactored logic to quit application to a separate `QuitApplication()` function |
||
149 | |||
150 | ### Changed |
||
151 | - `RunDownloadedInstaller()` is now virtual and protected |
||
152 | - Renamed some files and variables |
||
153 | - Moved `SecurityMode` and `ValidationResult` enums to the `NetSparkle.Enums` namespace |
||
154 | |||
155 | ## [0.10.0] - 2017-07-11 |
||
156 | ### Added |
||
157 | - This changelog |
||
158 | - `Sparkle` class documentation to the readme |
||
159 | - Section about how the appcast works to the readme |
||
160 | |||
161 | ### Changed |
||
162 | Much thanks to @stephenwade for his contributions to 0.10.0 |
||
163 | |||
164 | - Cleaned up and added documentation comments throughout the code (@stephenwade) |
||
165 | - Renamed lots of identifiers throughout the project to remove "NetSparkle" (i.e., `NetSparkleAppCast` to `AppCast`, `NetSparkleConfiguration` to `Configuration`, etc.) (@stephenwade) |
||
166 | - Renamed property `UseSyncronizedForms` to `ShowsUIOnMainThread` to better represent what it does (@stephenwade) |
||
167 | - Renamed events `CloseWPFSoftware` and `CloseWPFSoftwareAsync` to `CloseApplication` and `CloseApplicationAsync` (@stephenwade) |
||
168 | - These events are now always run, if present (instead of only on `RunningFromWPF`) |
||
169 | - If one of these events is set, it will be run instead of quitting your app (to allow you a custom quit procedure), so these events should take care of quitting your app. |
||
170 | - Renamed `DSAVerificator` to `DSAChecker` (@stephenwade) |
||
171 | - Folder output changed to be more organized |
||
172 | - Updated LICENSE file |
||
173 | - Update NuGet package items |
||
174 | |||
175 | ### Removed |
||
176 | - deprecated property `EnableSilentMode` |
||
177 | - property `RunningFromWPF` |
||
178 | |||
179 | ## [0.9.1.1] - 2017-06-06 |
||
180 | ### Added |
||
181 | - `ClearOldInstallers` Action that you can implement on your own to remove old installers. Use this if you download installers to a custom folder and need to erase them later. |
||
182 | |||
183 | ### Changed |
||
184 | - Fixed compilation issue with `EnableSilentMode` (not sure how I never came across this!) |
||
185 | |||
186 | ## [0.9.1] - 2017-03-30 |
||
187 | ### Added |
||
188 | - `UpdateSize` to `NetSparkleAppCastItem`, analogous to the `length` field within the `<enclosure>` tag |
||
189 | - `IsCriticalUpdate` to `NetSparkleAppCastItem` |
||
190 | - To use, add `sparkle:criticalUpdate="true"` as an attribute to the `<enclosure>` tag |
||
191 | - When any update that the user needs is marked as critical, the skip and remind me later buttons are disabled |
||
192 | - When an update is marked as critical, the release notes for that version state that the update is critical |
||
193 | - To do something about a critical update in your own software, check `Sparkle.LatestAppCastItems` or `Sparkle.UpdateMarkedCritical` to see if an update in the list of updates that the user needs is critical |
||
194 | |||
195 | ## [0.9] - 2017-03-28 |
||
196 | ### Added |
||
197 | - Several more diagnostic messages for debugging on the console |
||
198 | - New `SilentMode` option to allow for the "normal" update process (`NotSilent`), completely silent updates (`DownloadAndInstall`), or silent downloads that you as the developer initiate the start of the update manually (`DownloadNoInstall`) |
||
199 | - `DownloadAndInstall` may be quite jarring to your users if you don't tell them the software is about to quit to restart. Use `AboutToExitForInstallerRun` or `AboutToExitForInstallerRunAsync` to monitor for these events. |
||
200 | - For proper `DownloadNoInstall` use, monitor the `DownloadedFileReady` event to know when things are ready. At some later time, call `_sparkle.ShowUpdateNeededUI(true);` to show the software update window. You may want to monitor other events as well to keep your user from performing another update check while a software update is downloading. |
||
201 | - `TmpDownloadFilePath` to redirect the download location. This should be a folder, not a full path. Note that you still need to manually delete files that are downloaded here. |
||
202 | |||
203 | ### Changed |
||
204 | - Deprecated EnableSilentMode in lieu of SilentMode |
||
205 | - Stopped the software from redownloading the installer if it already exists on disk (saves bandwidth and time on the user's part) |
||
206 | - Note that NetSparkle does not perform resumable downloads in between software instances |
||
207 | - Fixed potential infinite software update download loop if the software keeps downloading corrupted files (corrupt files or ones that don't pass the DSA check). |
||
208 | |||
209 | ## Older |
||
210 | For older changes, see [HISTORY.md](HISTORY.md). |
||
211 | |||
212 | [Unreleased]: https://github.com/Deadpikle/NetSparkle/compare/28ceb84...develop |
||
213 | [0.19.0]: https://github.com/Deadpikle/NetSparkle/compare/2701e54...28ceb84 |
||
214 | [0.18.2]: https://github.com/Deadpikle/NetSparkle/compare/592fc70...2701e54 |
||
215 | [0.18.1]: https://github.com/Deadpikle/NetSparkle/compare/af0c797...592fc70 |
||
216 | [0.18.0]: https://github.com/Deadpikle/NetSparkle/compare/bc91f54...af0c797 |
||
217 | [0.17.0]: https://github.com/Deadpikle/NetSparkle/compare/a3df35b...bc91f54 |
||
218 | [0.16.2]: https://github.com/Deadpikle/NetSparkle/compare/b1bb3d1...a3df35b |
||
219 | [0.16.1]: https://github.com/Deadpikle/NetSparkle/compare/9298e3c...b1bb3d1 |
||
220 | [0.16.0]: https://github.com/Deadpikle/NetSparkle/compare/6b30321...9298e3c |
||
221 | [0.15.0]: https://github.com/Deadpikle/NetSparkle/compare/6b30321...ee65d3e |
||
222 | [0.14.0]: https://github.com/Deadpikle/NetSparkle/compare/b442795...6b30321 |
||
223 | [0.13.0]: https://github.com/Deadpikle/NetSparkle/compare/85a50da...b442795 |
||
224 | [0.12.0]: https://github.com/Deadpikle/NetSparkle/compare/8a8b393...85a50da |
||
225 | [0.11.0]: https://github.com/Deadpikle/NetSparkle/compare/d2740a4...8a8b393 |
||
226 | [0.10.0]: https://github.com/Deadpikle/NetSparkle/compare/c5e1e49...d2740a4 |
||
227 | [0.9.1.1]: https://github.com/Deadpikle/NetSparkle/compare/e0f5004...c5e1e49 |
||
228 | [0.9.1]: https://github.com/Deadpikle/NetSparkle/compare/7d679f0...e0f5004 |
||
229 | [0.9]: https://github.com/Deadpikle/NetSparkle/compare/8034ec2...7d679f0 |