Skip to content

Commit 877e311

Browse files
Updated build-dists.py to work with pyproject.toml
1 parent 41f4ef7 commit 877e311

File tree

1 file changed

+25
-22
lines changed

1 file changed

+25
-22
lines changed

utils/build-dists.py

+25-22
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
"""A command line tool for building and verifying releases
1919
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.
2121
"""
2222

2323
import contextlib
@@ -65,7 +65,9 @@ def run(*argv, expect_exit_code=0):
6565

6666
def test_dist(dist):
6767
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(
69+
r"^(elasticsearch_serverless\d*)-", os.path.basename(dist)
70+
).group(1)
6971

7072
# Build the venv and install the dist
7173
run("python", "-m", "venv", os.path.join(tmp_dir, "venv"))
@@ -80,6 +82,7 @@ def test_dist(dist):
8082
"mypy",
8183
"numpy",
8284
"pandas-stubs",
85+
"opentelemetry-api",
8386
)
8487
run(venv_python, "-m", "pip", "install", dist)
8588

@@ -127,7 +130,7 @@ def test_dist(dist):
127130

128131
# Ensure that the namespaces are correct for the dist
129132
for suffix in ("", "1", "2", "5", "6", "7", "8", "9", "10"):
130-
distx_name = f"elasticsearch{suffix}"
133+
distx_name = f"elasticsearch_serverless{suffix}"
131134
run(
132135
venv_python,
133136
"-c",
@@ -136,7 +139,7 @@ def test_dist(dist):
136139
)
137140

138141
# Check that sync types work for 'elasticsearch_serverless' and
139-
# that aliased types work for 'elasticsearchX'
142+
# that aliased types work for 'elasticsearch_serverlessX'
140143
if dist_name == "elasticsearch_serverless":
141144
run(
142145
venv_python,
@@ -174,16 +177,16 @@ def test_dist(dist):
174177

175178

176179
def main():
177-
run("git", "checkout", "--", "setup.py", "elasticsearch_serverless/")
178-
run("rm", "-rf", "build/", "dist/*", "*.egg-info", ".eggs")
180+
run("git", "checkout", "--", "pyproject.toml", "elasticsearch_serverless/")
181+
run("rm", "-rf", "dist")
179182

180183
# Grab the major version to be used as a suffix.
181184
version_path = os.path.join(base_dir, "elasticsearch_serverless/_version.py")
182185
with open(version_path) as f:
183186
version = re.search(
184187
r"^__versionstr__\s+=\s+[\"\']([^\"\']+)[\"\']", f.read(), re.M
185188
).group(1)
186-
major_version = version.split(".")[0]
189+
# major_version = version.split(".")[0]
187190

188191
# If we're handed a version from the build manager we
189192
# should check that the version is correct or write
@@ -231,17 +234,19 @@ def main():
231234
)
232235
exit(1)
233236

234-
for suffix in ("", major_version):
237+
for suffix in ("",):
235238
run("rm", "-rf", "build/", "*.egg-info", ".eggs")
236239

237240
# Rename the module to fit the suffix.
238241
shutil.move(
239242
os.path.join(base_dir, "elasticsearch_serverless"),
240-
os.path.join(base_dir, f"elasticsearch{suffix}"),
243+
os.path.join(base_dir, f"elasticsearch_serverless{suffix}"),
241244
)
242245

243246
# Ensure that the version within 'elasticsearch_serverless/_version.py' is correct.
244-
version_path = os.path.join(base_dir, f"elasticsearch{suffix}/_version.py")
247+
version_path = os.path.join(
248+
base_dir, f"elasticsearch_serverless{suffix}/_version.py"
249+
)
245250
with open(version_path) as f:
246251
version_data = f.read()
247252
version_data = re.sub(
@@ -253,31 +258,29 @@ def main():
253258
f.truncate()
254259
f.write(version_data)
255260

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:
261+
# Rewrite pyproject.toml with the new name.
262+
pyproject_toml_path = os.path.join(base_dir, "pyproject.toml")
263+
with open(pyproject_toml_path) as f:
264+
pyproject_toml = f.read()
265+
with open(pyproject_toml_path, "w") as f:
261266
f.truncate()
262-
assert 'package_name = "elasticsearch_serverless"' in setup_py
263267
f.write(
264-
setup_py.replace(
265-
'package_name = "elasticsearch_serverless"',
266-
f'package_name = "elasticsearch{suffix}"',
268+
pyproject_toml.replace(
269+
"elasticsearch_serverless", f"elasticsearch_serverless{suffix}"
267270
)
268271
)
269272

270273
# Build the sdist/wheels
271274
run("python", "-m", "build")
272275

273276
# Clean up everything.
274-
run("git", "checkout", "--", "setup.py", "elasticsearch_serverless/")
277+
run("git", "checkout", "--", "pyproject.toml", "elasticsearch_serverless/")
275278
if suffix:
276-
run("rm", "-rf", f"elasticsearch{suffix}/")
279+
run("rm", "-rf", f"elasticsearch_serverless{suffix}/")
277280

278281
# Test everything that got created
279282
dists = os.listdir(os.path.join(base_dir, "dist"))
280-
assert len(dists) == 4
283+
assert len(dists) == 2
281284
for dist in dists:
282285
test_dist(os.path.join(base_dir, "dist", dist))
283286
os.system('bash -c "chmod a+w dist/*"')

0 commit comments

Comments
 (0)