1717
1818"""A command line tool for building and verifying releases
1919Can 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
2323import contextlib
@@ -50,7 +50,7 @@ def run(*argv, expect_exit_code=0):
5050 else :
5151 os .chdir (tmp_dir )
5252
53- cmd = " " .join (shlex . quote ( x ) for x in argv )
53+ cmd = shlex .join (argv )
5454 print ("$ " + cmd )
5555 exit_code = os .system (cmd )
5656 if exit_code != expect_exit_code :
@@ -65,7 +65,9 @@ def run(*argv, expect_exit_code=0):
6565
6666def 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
@@ -120,14 +123,15 @@ def test_dist(dist):
120123 "--strict" ,
121124 "--install-types" ,
122125 "--non-interactive" ,
126+ "--ignore-missing-imports" ,
123127 os .path .join (
124128 base_dir , "test_elasticsearch_serverless/test_types/async_types.py"
125129 ),
126130 )
127131
128132 # Ensure that the namespaces are correct for the dist
129133 for suffix in ("" , "1" , "2" , "5" , "6" , "7" , "8" , "9" , "10" ):
130- distx_name = f"elasticsearch { suffix } "
134+ distx_name = f"elasticsearch_serverless { suffix } "
131135 run (
132136 venv_python ,
133137 "-c" ,
@@ -136,7 +140,7 @@ def test_dist(dist):
136140 )
137141
138142 # Check that sync types work for 'elasticsearch_serverless' and
139- # that aliased types work for 'elasticsearchX '
143+ # that aliased types work for 'elasticsearch_serverlessX '
140144 if dist_name == "elasticsearch_serverless" :
141145 run (
142146 venv_python ,
@@ -145,6 +149,7 @@ def test_dist(dist):
145149 "--strict" ,
146150 "--install-types" ,
147151 "--non-interactive" ,
152+ "--ignore-missing-imports" ,
148153 os .path .join (
149154 base_dir , "test_elasticsearch_serverless/test_types/sync_types.py"
150155 ),
@@ -174,16 +179,16 @@ def test_dist(dist):
174179
175180
176181def main ():
177- run ("git" , "checkout" , "--" , "setup.py " , "elasticsearch_serverless/" )
178- run ("rm" , "-rf" , "build/" , " dist/*" , "*.egg-info" , ".eggs " )
182+ run ("git" , "checkout" , "--" , "pyproject.toml " , "elasticsearch_serverless/" )
183+ run ("rm" , "-rf" , "dist" )
179184
180185 # Grab the major version to be used as a suffix.
181186 version_path = os .path .join (base_dir , "elasticsearch_serverless/_version.py" )
182187 with open (version_path ) as f :
183188 version = re .search (
184189 r"^__versionstr__\s+=\s+[\"\']([^\"\']+)[\"\']" , f .read (), re .M
185190 ).group (1 )
186- major_version = version .split ("." )[0 ]
191+ # major_version = version.split(".")[0]
187192
188193 # If we're handed a version from the build manager we
189194 # should check that the version is correct or write
@@ -231,17 +236,19 @@ def main():
231236 )
232237 exit (1 )
233238
234- for suffix in ("" , major_version ):
239+ for suffix in ("" ,):
235240 run ("rm" , "-rf" , "build/" , "*.egg-info" , ".eggs" )
236241
237242 # Rename the module to fit the suffix.
238243 shutil .move (
239244 os .path .join (base_dir , "elasticsearch_serverless" ),
240- os .path .join (base_dir , f"elasticsearch { suffix } " ),
245+ os .path .join (base_dir , f"elasticsearch_serverless { suffix } " ),
241246 )
242247
243248 # Ensure that the version within 'elasticsearch_serverless/_version.py' is correct.
244- version_path = os .path .join (base_dir , f"elasticsearch{ suffix } /_version.py" )
249+ version_path = os .path .join (
250+ base_dir , f"elasticsearch_serverless{ suffix } /_version.py"
251+ )
245252 with open (version_path ) as f :
246253 version_data = f .read ()
247254 version_data = re .sub (
@@ -253,31 +260,29 @@ def main():
253260 f .truncate ()
254261 f .write (version_data )
255262
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 :
263+ # Rewrite pyproject.toml with the new name.
264+ pyproject_toml_path = os .path .join (base_dir , "pyproject.toml " )
265+ with open (pyproject_toml_path ) as f :
266+ pyproject_toml = f .read ()
267+ with open (pyproject_toml_path , "w" ) as f :
261268 f .truncate ()
262- assert 'package_name = "elasticsearch_serverless"' in setup_py
263269 f .write (
264- setup_py .replace (
265- 'package_name = "elasticsearch_serverless"' ,
266- f'package_name = "elasticsearch{ suffix } "' ,
270+ pyproject_toml .replace (
271+ "elasticsearch_serverless" , f"elasticsearch_serverless{ suffix } "
267272 )
268273 )
269274
270275 # Build the sdist/wheels
271276 run ("python" , "-m" , "build" )
272277
273278 # Clean up everything.
274- run ("git" , "checkout" , "--" , "setup.py " , "elasticsearch_serverless/" )
279+ run ("git" , "checkout" , "--" , "pyproject.toml " , "elasticsearch_serverless/" )
275280 if suffix :
276- run ("rm" , "-rf" , f"elasticsearch { suffix } /" )
281+ run ("rm" , "-rf" , f"elasticsearch_serverless { suffix } /" )
277282
278283 # Test everything that got created
279284 dists = os .listdir (os .path .join (base_dir , "dist" ))
280- assert len (dists ) == 4
285+ assert len (dists ) == 2
281286 for dist in dists :
282287 test_dist (os .path .join (base_dir , "dist" , dist ))
283288 os .system ('bash -c "chmod a+w dist/*"' )
0 commit comments