markus / MarkusAutoUpdate / CHANGELOG.md @ d8f5045e
이력 | 보기 | 이력해설 | 다운로드 (11.9 KB)
1 |
# 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 |