17
17
18
18
"""A command line tool for building and verifying releases
19
19
Can be used for building both 'elasticsearch' and 'elasticsearchX' dists.
20
- Only requires 'name' in 'setup.py ' and the directory to be changed.
20
+ Only requires 'name' in 'pyproject.toml ' and the directory to be changed.
21
21
"""
22
22
23
23
import contextlib
@@ -65,7 +65,7 @@ def run(*argv, expect_exit_code=0):
65
65
66
66
def test_dist (dist ):
67
67
with set_tmp_dir () as tmp_dir :
68
- dist_name = re .match (r"^(elasticsearch \d*)-" , os .path .basename (dist )).group (1 )
68
+ dist_name = re .match (r"^(elasticsearch_serverless \d*)-" , os .path .basename (dist )).group (1 )
69
69
70
70
# Build the venv and install the dist
71
71
run ("python" , "-m" , "venv" , os .path .join (tmp_dir , "venv" ))
@@ -80,6 +80,7 @@ def test_dist(dist):
80
80
"mypy" ,
81
81
"numpy" ,
82
82
"pandas-stubs" ,
83
+ "opentelemetry-api" ,
83
84
)
84
85
run (venv_python , "-m" , "pip" , "install" , dist )
85
86
@@ -127,7 +128,7 @@ def test_dist(dist):
127
128
128
129
# Ensure that the namespaces are correct for the dist
129
130
for suffix in ("" , "1" , "2" , "5" , "6" , "7" , "8" , "9" , "10" ):
130
- distx_name = f"elasticsearch { suffix } "
131
+ distx_name = f"elasticsearch_serverless { suffix } "
131
132
run (
132
133
venv_python ,
133
134
"-c" ,
@@ -136,7 +137,7 @@ def test_dist(dist):
136
137
)
137
138
138
139
# Check that sync types work for 'elasticsearch_serverless' and
139
- # that aliased types work for 'elasticsearchX '
140
+ # that aliased types work for 'elasticsearch_serverlessX '
140
141
if dist_name == "elasticsearch_serverless" :
141
142
run (
142
143
venv_python ,
@@ -174,16 +175,16 @@ def test_dist(dist):
174
175
175
176
176
177
def main ():
177
- run ("git" , "checkout" , "--" , "setup.py " , "elasticsearch_serverless/" )
178
- run ("rm" , "-rf" , "build/" , " dist/*" , "*.egg-info" , ".eggs " )
178
+ run ("git" , "checkout" , "--" , "pyproject.toml " , "elasticsearch_serverless/" )
179
+ run ("rm" , "-rf" , "dist" )
179
180
180
181
# Grab the major version to be used as a suffix.
181
182
version_path = os .path .join (base_dir , "elasticsearch_serverless/_version.py" )
182
183
with open (version_path ) as f :
183
184
version = re .search (
184
185
r"^__versionstr__\s+=\s+[\"\']([^\"\']+)[\"\']" , f .read (), re .M
185
186
).group (1 )
186
- major_version = version .split ("." )[0 ]
187
+ # major_version = version.split(".")[0]
187
188
188
189
# If we're handed a version from the build manager we
189
190
# should check that the version is correct or write
@@ -231,17 +232,17 @@ def main():
231
232
)
232
233
exit (1 )
233
234
234
- for suffix in ("" , major_version ):
235
+ for suffix in ("" ,):
235
236
run ("rm" , "-rf" , "build/" , "*.egg-info" , ".eggs" )
236
237
237
238
# Rename the module to fit the suffix.
238
239
shutil .move (
239
240
os .path .join (base_dir , "elasticsearch_serverless" ),
240
- os .path .join (base_dir , f"elasticsearch { suffix } " ),
241
+ os .path .join (base_dir , f"elasticsearch_serverless { suffix } " ),
241
242
)
242
243
243
244
# Ensure that the version within 'elasticsearch_serverless/_version.py' is correct.
244
- version_path = os .path .join (base_dir , f"elasticsearch { suffix } /_version.py" )
245
+ version_path = os .path .join (base_dir , f"elasticsearch_serverless { suffix } /_version.py" )
245
246
with open (version_path ) as f :
246
247
version_data = f .read ()
247
248
version_data = re .sub (
@@ -253,31 +254,25 @@ def main():
253
254
f .truncate ()
254
255
f .write (version_data )
255
256
256
- # Rewrite setup.py with the new name.
257
- setup_py_path = os .path .join (base_dir , "setup.py " )
258
- with open (setup_py_path ) as f :
259
- setup_py = f .read ()
260
- with open (setup_py_path , "w" ) as f :
257
+ # Rewrite pyproject.toml with the new name.
258
+ pyproject_toml_path = os .path .join (base_dir , "pyproject.toml " )
259
+ with open (pyproject_toml_path ) as f :
260
+ pyproject_toml = f .read ()
261
+ with open (pyproject_toml_path , "w" ) as f :
261
262
f .truncate ()
262
- assert 'package_name = "elasticsearch_serverless"' in setup_py
263
- f .write (
264
- setup_py .replace (
265
- 'package_name = "elasticsearch_serverless"' ,
266
- f'package_name = "elasticsearch{ suffix } "' ,
267
- )
268
- )
263
+ f .write (pyproject_toml .replace ("elasticsearch_serverless" , f"elasticsearch_serverless{ suffix } " ))
269
264
270
265
# Build the sdist/wheels
271
266
run ("python" , "-m" , "build" )
272
267
273
268
# Clean up everything.
274
- run ("git" , "checkout" , "--" , "setup.py " , "elasticsearch_serverless/" )
269
+ run ("git" , "checkout" , "--" , "pyproject.toml " , "elasticsearch_serverless/" )
275
270
if suffix :
276
- run ("rm" , "-rf" , f"elasticsearch { suffix } /" )
271
+ run ("rm" , "-rf" , f"elasticsearch_serverless { suffix } /" )
277
272
278
273
# Test everything that got created
279
274
dists = os .listdir (os .path .join (base_dir , "dist" ))
280
- assert len (dists ) == 4
275
+ assert len (dists ) == 2
281
276
for dist in dists :
282
277
test_dist (os .path .join (base_dir , "dist" , dist ))
283
278
os .system ('bash -c "chmod a+w dist/*"' )
0 commit comments