velopack 1.0.1__tar.gz → 1.0.9.dev49442__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. {velopack-1.0.1 → velopack-1.0.9.dev49442}/Cargo.lock +6 -6
  2. {velopack-1.0.1 → velopack-1.0.9.dev49442}/Cargo.toml +1 -1
  3. {velopack-1.0.1 → velopack-1.0.9.dev49442}/PKG-INFO +1 -1
  4. {velopack-1.0.1 → velopack-1.0.9.dev49442}/pyproject.toml +1 -1
  5. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-python/src/manager.rs +26 -37
  6. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/misc.rs +1 -1
  7. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-python/.gitignore +0 -0
  8. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-python/Cargo.toml +0 -0
  9. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-python/README.md +0 -0
  10. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-python/build.rs +0 -0
  11. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-python/src/app.rs +0 -0
  12. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-python/src/lib.rs +0 -0
  13. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-python/src/sources.rs +0 -0
  14. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-python/src/types.rs +0 -0
  15. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-python/test/app.py +0 -0
  16. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-python/test/run_test.py +0 -0
  17. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-python/uv.lock +0 -0
  18. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/Cargo.toml +0 -0
  19. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/README.md +0 -0
  20. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/app.rs +0 -0
  21. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/bundle.rs +0 -0
  22. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/constants.rs +0 -0
  23. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/download.rs +0 -0
  24. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/file_rotate.rs +0 -0
  25. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/known_path.rs +0 -0
  26. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/lib.rs +0 -0
  27. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/locator.rs +0 -0
  28. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/lockfile.rs +0 -0
  29. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/logging.rs +0 -0
  30. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/macros.rs +0 -0
  31. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/manager.rs +0 -0
  32. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/process_unix.rs +0 -0
  33. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/process_win.rs +0 -0
  34. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/sources/file.rs +0 -0
  35. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/sources/flow.rs +0 -0
  36. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/sources/gitea.rs +0 -0
  37. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/sources/github.rs +0 -0
  38. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/sources/gitlab.rs +0 -0
  39. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/sources/http.rs +0 -0
  40. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/sources/mod.rs +0 -0
  41. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/src/wide_strings.rs +0 -0
  42. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/tests/common/mock_server.rs +0 -0
  43. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/tests/common/mod.rs +0 -0
  44. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/tests/noteshtml_deserialization.rs +0 -0
  45. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/tests/source_auto.rs +0 -0
  46. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/tests/source_file.rs +0 -0
  47. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/tests/source_flow.rs +0 -0
  48. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/tests/source_gitea.rs +0 -0
  49. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/tests/source_github.rs +0 -0
  50. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/tests/source_gitlab.rs +0 -0
  51. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/tests/source_http.rs +0 -0
  52. {velopack-1.0.1 → velopack-1.0.9.dev49442}/src/lib-rust/tests/source_none.rs +0 -0
@@ -4057,7 +4057,7 @@ dependencies = [
4057
4057
 
4058
4058
  [[package]]
4059
4059
  name = "velopack"
4060
- version = "1.0.1"
4060
+ version = "1.0.9-gc12205f"
4061
4061
  dependencies = [
4062
4062
  "anyhow",
4063
4063
  "bitflags 2.11.1",
@@ -4091,7 +4091,7 @@ dependencies = [
4091
4091
 
4092
4092
  [[package]]
4093
4093
  name = "velopack_bins"
4094
- version = "1.0.1"
4094
+ version = "1.0.9-gc12205f"
4095
4095
  dependencies = [
4096
4096
  "anyhow",
4097
4097
  "bitflags 2.11.1",
@@ -4143,7 +4143,7 @@ dependencies = [
4143
4143
 
4144
4144
  [[package]]
4145
4145
  name = "velopack_l18n"
4146
- version = "1.0.1"
4146
+ version = "1.0.9-gc12205f"
4147
4147
  dependencies = [
4148
4148
  "anyhow",
4149
4149
  "fluent",
@@ -4159,7 +4159,7 @@ dependencies = [
4159
4159
 
4160
4160
  [[package]]
4161
4161
  name = "velopack_libc"
4162
- version = "1.0.1"
4162
+ version = "1.0.9-gc12205f"
4163
4163
  dependencies = [
4164
4164
  "anyhow",
4165
4165
  "cbindgen",
@@ -4176,7 +4176,7 @@ dependencies = [
4176
4176
 
4177
4177
  [[package]]
4178
4178
  name = "velopack_nodeffi"
4179
- version = "1.0.1"
4179
+ version = "1.0.9-gc12205f"
4180
4180
  dependencies = [
4181
4181
  "lazy_static",
4182
4182
  "log",
@@ -4200,7 +4200,7 @@ dependencies = [
4200
4200
 
4201
4201
  [[package]]
4202
4202
  name = "velopack_wix"
4203
- version = "1.0.1"
4203
+ version = "1.0.9-gc12205f"
4204
4204
  dependencies = [
4205
4205
  "anyhow",
4206
4206
  "remove_dir_all",
@@ -6,7 +6,7 @@ exclude = [
6
6
  ]
7
7
 
8
8
  [workspace.package]
9
- version = "1.0.1"
9
+ version = "1.0.9-gc12205f"
10
10
  authors = ["Velopack Ltd, Caelan Sayler <git@caesay.com>"]
11
11
  homepage = "https://velopack.io"
12
12
  repository = "https://github.com/velopack/velopack"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: velopack
3
- Version: 1.0.1
3
+ Version: 1.0.9.dev49442
4
4
  Summary: Installer and automatic update framework for cross-platform desktop applications
5
5
  Home-Page: https://velopack.io
6
6
  Author: Velopack Ltd, Caelan Sayler <git@caesay.com>
@@ -2,7 +2,7 @@
2
2
  dynamic = ["description", "authors", "license"]
3
3
  name = "velopack"
4
4
  requires-python = ">=3.8"
5
- version = "1.0.1"
5
+ version = "1.0.9.dev49442"
6
6
 
7
7
  [build-system]
8
8
  requires = ["maturin>=1.0,<2.0"]
@@ -54,46 +54,35 @@ impl UpdateManagerWrapper {
54
54
 
55
55
  #[pyo3(signature = (update_info, progress_callback = None))]
56
56
  pub fn download_updates(&mut self, py: Python, update_info: PyUpdateInfo, progress_callback: Option<Py<PyAny>>) -> Result<()> {
57
- // Convert PyUpdateInfo back to rust UpdateInfo
58
57
  let rust_update_info: UpdateInfo = update_info.into();
58
+ let inner = self.inner.clone();
59
59
 
60
- if let Some(callback) = progress_callback {
61
- // Create a channel for progress updates
62
- let (sender, receiver) = mpsc::channel::<i16>();
63
-
64
- // Clone the callback for the thread
65
- let callback_clone = callback.clone_ref(py);
66
-
67
- // Release the GIL before starting the download
68
- py.detach(|| {
69
- // Spawn a thread to handle progress updates
70
- let progress_thread = thread::spawn(move || {
71
- while let Ok(progress) = receiver.recv() {
72
- // Acquire GIL only when needed to call the callback
73
- Python::try_attach(|py| {
74
- if let Err(e) = callback_clone.call1(py, (progress,)) {
75
- // Log error but continue - don't break the download
76
- eprintln!("Progress callback error: {}", e);
77
- }
78
- });
79
- }
80
- });
81
-
82
- // Call download with the sender
83
- let result = self.inner.download_updates(&rust_update_info, Some(sender));
84
-
85
- // Wait for the progress thread to finish
86
- let _ = progress_thread.join();
87
-
88
- result
89
- })?;
90
-
91
- Ok(())
60
+ let (sender, receiver) = if progress_callback.is_some() {
61
+ let (s, r) = mpsc::channel::<i16>();
62
+ (Some(s), Some(r))
92
63
  } else {
93
- // No progress callback provided - still release GIL for the download
94
- py.detach(|| self.inner.download_updates(&rust_update_info, None))?;
95
- Ok(())
96
- }
64
+ (None, None)
65
+ };
66
+
67
+ py.detach(|| {
68
+ let handle = thread::spawn(move || inner.download_updates(&rust_update_info, sender));
69
+
70
+ if let (Some(callback), Some(receiver)) = (progress_callback, receiver) {
71
+ while let Ok(progress) = receiver.recv() {
72
+ Python::try_attach(|py| {
73
+ if let Err(e) = callback.call1(py, (progress,)) {
74
+ eprintln!("Progress callback error: {}", e);
75
+ }
76
+ });
77
+ }
78
+ }
79
+
80
+ handle
81
+ .join()
82
+ .unwrap_or_else(|_| Err(std::io::Error::other("Download thread panicked").into()))
83
+ })?;
84
+
85
+ Ok(())
97
86
  }
98
87
 
99
88
  pub fn apply_updates_and_restart(&mut self, update: PyUpdateInfoOrAsset) -> Result<()> {
@@ -52,7 +52,7 @@ pub fn calculate_sha1_sha256<P: AsRef<Path>>(file: P) -> Result<(String, String)
52
52
  let mut sha256 = sha2::Sha256::new();
53
53
  let mut sha1 = sha1::Sha1::new();
54
54
 
55
- let mut buffer = [0u8; 1024 * 1024]; // 1MB buffer
55
+ let mut buffer = [0u8; 64 * 1024];
56
56
  loop {
57
57
  let bytes_read = reader.read(&mut buffer)?;
58
58
  if bytes_read == 0 {