synodic-client 0.0.1.dev21__tar.gz → 0.0.1.dev23__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 (48) hide show
  1. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/PKG-INFO +1 -1
  2. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/pyproject.toml +1 -1
  3. synodic_client-0.0.1.dev23/synodic_client/_version.py +1 -0
  4. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/updater.py +23 -2
  5. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/test_updater.py +5 -4
  6. synodic_client-0.0.1.dev21/synodic_client/_version.py +0 -1
  7. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/LICENSE.md +0 -0
  8. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/README.md +0 -0
  9. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/__init__.py +0 -0
  10. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/__main__.py +0 -0
  11. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/application/__init__.py +0 -0
  12. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/application/icon.py +0 -0
  13. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/application/instance.py +0 -0
  14. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/application/qt.py +0 -0
  15. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/application/screen/__init__.py +0 -0
  16. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/application/screen/install.py +0 -0
  17. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/application/screen/log_panel.py +0 -0
  18. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/application/screen/screen.py +0 -0
  19. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/application/screen/tray.py +0 -0
  20. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/application/theme.py +0 -0
  21. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/application/uri.py +0 -0
  22. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/cli.py +0 -0
  23. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/client.py +0 -0
  24. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/config.py +0 -0
  25. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/logging.py +0 -0
  26. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/protocol.py +0 -0
  27. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/py.typed +0 -0
  28. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/synodic_client/resolution.py +0 -0
  29. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/__init__.py +0 -0
  30. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/conftest.py +0 -0
  31. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/__init__.py +0 -0
  32. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/qt/__init__.py +0 -0
  33. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/qt/conftest.py +0 -0
  34. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/qt/test_install_preview.py +0 -0
  35. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/qt/test_log_panel.py +0 -0
  36. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/qt/test_logging.py +0 -0
  37. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/test_cli.py +0 -0
  38. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/test_client_updater.py +0 -0
  39. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/test_client_version.py +0 -0
  40. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/test_config.py +0 -0
  41. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/test_examples.py +0 -0
  42. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/test_install.py +0 -0
  43. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/test_install_preview.py +0 -0
  44. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/test_resolution.py +0 -0
  45. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/test_uri.py +0 -0
  46. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/windows/__init__.py +0 -0
  47. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/windows/conftest.py +0 -0
  48. {synodic_client-0.0.1.dev21 → synodic_client-0.0.1.dev23}/tests/unit/windows/test_protocol.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: synodic_client
3
- Version: 0.0.1.dev21
3
+ Version: 0.0.1.dev23
4
4
  Author-Email: Synodic Software <contact@synodic.software>
5
5
  License: LGPL-3.0-or-later
6
6
  Project-URL: homepage, https://github.com/synodic/synodic-client
@@ -14,7 +14,7 @@ dependencies = [
14
14
  "velopack>=0.0.1369.dev7516",
15
15
  "typer>=0.23.1",
16
16
  ]
17
- version = "0.0.1.dev21"
17
+ version = "0.0.1.dev23"
18
18
 
19
19
  [project.license]
20
20
  text = "LGPL-3.0-or-later"
@@ -0,0 +1 @@
1
+ __version__ = '0.0.1.dev23'
@@ -25,6 +25,21 @@ logger = logging.getLogger(__name__)
25
25
  # Velopack automatically discovers releases from GitHub releases
26
26
  GITHUB_REPO_URL = 'https://github.com/synodic/synodic-client'
27
27
 
28
+ # Map sys.platform values to Velopack channel suffixes
29
+ _PLATFORM_SUFFIXES: dict[str, str] = {
30
+ 'win32': 'win',
31
+ 'linux': 'linux',
32
+ 'darwin': 'osx',
33
+ }
34
+
35
+
36
+ def _platform_suffix() -> str:
37
+ """Return the Velopack channel suffix for the current platform."""
38
+ try:
39
+ return _PLATFORM_SUFFIXES[sys.platform]
40
+ except KeyError:
41
+ raise RuntimeError(f'Unsupported platform for updates: {sys.platform}') from None
42
+
28
43
 
29
44
  class UpdateChannel(StrEnum):
30
45
  """Update channel selection."""
@@ -83,8 +98,14 @@ class UpdateConfig:
83
98
 
84
99
  @property
85
100
  def channel_name(self) -> str:
86
- """Get the channel name for Velopack."""
87
- return 'dev' if self.channel == UpdateChannel.DEVELOPMENT else 'stable'
101
+ """Get the channel name for Velopack.
102
+
103
+ Combines the update track (dev/stable) with a platform suffix
104
+ so each OS has its own release manifest and nupkg files.
105
+ """
106
+ base = 'dev' if self.channel == UpdateChannel.DEVELOPMENT else 'stable'
107
+ platform_suffix = _platform_suffix()
108
+ return f'{base}-{platform_suffix}'
88
109
 
89
110
 
90
111
  class Updater:
@@ -14,6 +14,7 @@ from synodic_client.updater import (
14
14
  UpdateInfo,
15
15
  Updater,
16
16
  UpdateState,
17
+ _platform_suffix,
17
18
  initialize_velopack,
18
19
  )
19
20
 
@@ -124,15 +125,15 @@ class TestUpdateConfig:
124
125
 
125
126
  @staticmethod
126
127
  def test_channel_name_stable() -> None:
127
- """Verify STABLE channel returns 'stable' name."""
128
+ """Verify STABLE channel returns platform-specific 'stable' name."""
128
129
  config = UpdateConfig(channel=UpdateChannel.STABLE)
129
- assert config.channel_name == 'stable'
130
+ assert config.channel_name == f'stable-{_platform_suffix()}'
130
131
 
131
132
  @staticmethod
132
133
  def test_channel_name_development() -> None:
133
- """Verify DEVELOPMENT channel returns 'dev' name."""
134
+ """Verify DEVELOPMENT channel returns platform-specific 'dev' name."""
134
135
  config = UpdateConfig(channel=UpdateChannel.DEVELOPMENT)
135
- assert config.channel_name == 'dev'
136
+ assert config.channel_name == f'dev-{_platform_suffix()}'
136
137
 
137
138
 
138
139
  @pytest.fixture
@@ -1 +0,0 @@
1
- __version__ = '0.0.1.dev21'