protobuf-protoc-bin 33.1__tar.gz → 33.3__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.
@@ -8,7 +8,7 @@ jobs:
8
8
  runs-on: ${{ matrix.os }}
9
9
  strategy:
10
10
  matrix:
11
- os: [ubuntu-latest, windows-latest, macos-latest]
11
+ os: [ubuntu-latest, windows-latest, macos-latest, ubuntu-24.04-arm]
12
12
 
13
13
  steps:
14
14
  - uses: actions/checkout@v4
@@ -51,7 +51,7 @@ jobs:
51
51
  runs-on: ${{ matrix.os }}
52
52
  strategy:
53
53
  matrix:
54
- os: [ubuntu-latest, ubuntu-22.04, macos-latest, macos-13, windows-latest]
54
+ os: [ubuntu-latest, ubuntu-22.04, macos-latest, macos-14, windows-latest, ubuntu-24.04-arm]
55
55
  steps:
56
56
  - uses: actions/checkout @v4
57
57
  - uses: actions/download-artifact@v4
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: protobuf-protoc-bin
3
- Version: 33.1
3
+ Version: 33.3
4
4
  Summary: Pip package to host the protobuf protoc binary
5
5
  Author-email: Robert Roos <robert.roos@demcon.com>
6
6
  Project-URL: Repository, https://github.com/RobertoRoos/protobuf-protoc-bin
@@ -74,3 +74,19 @@ However, the reference that triggers the CI build will affect the version assign
74
74
 
75
75
  A nightly workflow runs a script that looks for new Protoc releases and copies the tags into here, at the tip of the `main` branch.
76
76
  So future releases should show up fully automatically.
77
+
78
+ ### Platform Tags
79
+
80
+ Relevant for a binary wheel release is the [platform tag](https://packaging.python.org/en/latest/specifications/platform-compatibility-tags/), to indicate to a client which wheel should be downloaded.
81
+ Separate from that is downloading the correct archive from the protoc release page.
82
+ Below is a table showing known examples and their correct values.
83
+ In `setup.py` there is logic to determine these values dynamically.
84
+
85
+ | | Ubuntu (arm64) | Ubuntu (x64) | Windows (x64) | MacOS (x64) |
86
+ |----------------------------|-------------------------------|-----------------------------|------------------------|---------------------------|
87
+ | Github runner | ubuntu-24.04-arm | ubuntu-latest | windows-latest | macos-latest |
88
+ | `sysconfig.get_platform()` | linux-aarch64 | linux-x86_64 | win-amd64 | macosx-10.13-universal2 |
89
+ | `platform.system()` | Linux | Linux | Windows | Darwin |
90
+ | `platform.architecture()` | ('64bit', 'ELF') | ('64bit', 'ELF') | ('64bit', 'WindowsPE') | ('64bit', '') |
91
+ | Wheel platform tag | manylinux_2_24_aarch64 | manylinux_2_24_x86_64 | win_amd64 | macosx_10_13_universal2 |
92
+ | Protoc archive name | protoc-vvv-linux-aarch_64.zip | protoc-vvv-linux-x86_64.zip | protoc-vvv-win64.zip | protoc-vvv-osx-x86_64.zip |
@@ -62,3 +62,19 @@ However, the reference that triggers the CI build will affect the version assign
62
62
 
63
63
  A nightly workflow runs a script that looks for new Protoc releases and copies the tags into here, at the tip of the `main` branch.
64
64
  So future releases should show up fully automatically.
65
+
66
+ ### Platform Tags
67
+
68
+ Relevant for a binary wheel release is the [platform tag](https://packaging.python.org/en/latest/specifications/platform-compatibility-tags/), to indicate to a client which wheel should be downloaded.
69
+ Separate from that is downloading the correct archive from the protoc release page.
70
+ Below is a table showing known examples and their correct values.
71
+ In `setup.py` there is logic to determine these values dynamically.
72
+
73
+ | | Ubuntu (arm64) | Ubuntu (x64) | Windows (x64) | MacOS (x64) |
74
+ |----------------------------|-------------------------------|-----------------------------|------------------------|---------------------------|
75
+ | Github runner | ubuntu-24.04-arm | ubuntu-latest | windows-latest | macos-latest |
76
+ | `sysconfig.get_platform()` | linux-aarch64 | linux-x86_64 | win-amd64 | macosx-10.13-universal2 |
77
+ | `platform.system()` | Linux | Linux | Windows | Darwin |
78
+ | `platform.architecture()` | ('64bit', 'ELF') | ('64bit', 'ELF') | ('64bit', 'WindowsPE') | ('64bit', '') |
79
+ | Wheel platform tag | manylinux_2_24_aarch64 | manylinux_2_24_x86_64 | win_amd64 | macosx_10_13_universal2 |
80
+ | Protoc archive name | protoc-vvv-linux-aarch_64.zip | protoc-vvv-linux-x86_64.zip | protoc-vvv-win64.zip | protoc-vvv-osx-x86_64.zip |
@@ -113,8 +113,9 @@ class CustomInstallCommand(install):
113
113
 
114
114
  See available tags from https://github.com/protocolbuffers/protobuf/releases/latest
115
115
  """
116
- system = platform.system().lower()
116
+ system = platform.system().lower() # Like "linux"
117
117
  arch = [x.lower() if isinstance(x, str) else x for x in platform.architecture()]
118
+ # Like `("64bit", "ELF")`
118
119
 
119
120
  if system == "windows":
120
121
  if "64bit" in arch:
@@ -122,9 +123,10 @@ class CustomInstallCommand(install):
122
123
  return "win32"
123
124
 
124
125
  if system == "linux":
125
- if "64bit" in arch:
126
- return "linux-x86_64"
127
- return "linux-x86_32"
126
+ platform_str = sysconfig.get_platform().lower() # Like "linux-aarch64"
127
+
128
+ # Returned platform is the right format, but a space is needed for "ARM":
129
+ return platform_str.replace("aarch64", "aarch_64")
128
130
  # Other Linux types are still ignored
129
131
 
130
132
  if system == "darwin":
@@ -154,7 +156,7 @@ class CustomWheel(bdist_wheel):
154
156
  """
155
157
  impl_tag = "py2.py3" # Same wheel across Python versions
156
158
  abi_tag = "none" # Same wheeel across ABI versions (not a C-extension)
157
- # But we need to differentiate on the platform for the compiled adslib:
159
+ # But we need to differentiate on the platform for the protoc binary:
158
160
  plat_tag = sysconfig.get_platform().replace("-", "_").replace(".", "_")
159
161
 
160
162
  if plat_tag.startswith("linux_"):
@@ -164,7 +166,7 @@ class CustomWheel(bdist_wheel):
164
166
  # MacOS platform tags area already okay
165
167
 
166
168
  # We also keep Windows tags in place, instead of using `any`, to prevent an
167
- # obscure Linux platform to getting a wheel without adslib source
169
+ # obscure Linux platform to getting an incompatible binary
168
170
 
169
171
  return impl_tag, abi_tag, plat_tag
170
172
 
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '33.1'
32
- __version_tuple__ = version_tuple = (33, 1)
31
+ __version__ = version = '33.3'
32
+ __version_tuple__ = version_tuple = (33, 3)
33
33
 
34
- __commit_id__ = commit_id = 'g2db8a4fa3'
34
+ __commit_id__ = commit_id = 'g33f102640'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: protobuf-protoc-bin
3
- Version: 33.1
3
+ Version: 33.3
4
4
  Summary: Pip package to host the protobuf protoc binary
5
5
  Author-email: Robert Roos <robert.roos@demcon.com>
6
6
  Project-URL: Repository, https://github.com/RobertoRoos/protobuf-protoc-bin
@@ -74,3 +74,19 @@ However, the reference that triggers the CI build will affect the version assign
74
74
 
75
75
  A nightly workflow runs a script that looks for new Protoc releases and copies the tags into here, at the tip of the `main` branch.
76
76
  So future releases should show up fully automatically.
77
+
78
+ ### Platform Tags
79
+
80
+ Relevant for a binary wheel release is the [platform tag](https://packaging.python.org/en/latest/specifications/platform-compatibility-tags/), to indicate to a client which wheel should be downloaded.
81
+ Separate from that is downloading the correct archive from the protoc release page.
82
+ Below is a table showing known examples and their correct values.
83
+ In `setup.py` there is logic to determine these values dynamically.
84
+
85
+ | | Ubuntu (arm64) | Ubuntu (x64) | Windows (x64) | MacOS (x64) |
86
+ |----------------------------|-------------------------------|-----------------------------|------------------------|---------------------------|
87
+ | Github runner | ubuntu-24.04-arm | ubuntu-latest | windows-latest | macos-latest |
88
+ | `sysconfig.get_platform()` | linux-aarch64 | linux-x86_64 | win-amd64 | macosx-10.13-universal2 |
89
+ | `platform.system()` | Linux | Linux | Windows | Darwin |
90
+ | `platform.architecture()` | ('64bit', 'ELF') | ('64bit', 'ELF') | ('64bit', 'WindowsPE') | ('64bit', '') |
91
+ | Wheel platform tag | manylinux_2_24_aarch64 | manylinux_2_24_x86_64 | win_amd64 | macosx_10_13_universal2 |
92
+ | Protoc archive name | protoc-vvv-linux-aarch_64.zip | protoc-vvv-linux-x86_64.zip | protoc-vvv-win64.zip | protoc-vvv-osx-x86_64.zip |