Skip to content

Commit 3fddcd6

Browse files
scbeddCopilot
andauthored
Patch Nightly Alpha Process (#43260)
* fix functions::get_package_from_repo to properly handle pyproject.toml converted packages * Update eng/tools/azure-sdk-tools/ci_tools/versioning/version_set_dev.py to utilize common tool code Co-authored-by: Copilot <[email protected]>
1 parent a8917ac commit 3fddcd6

File tree

3 files changed

+29
-20
lines changed

3 files changed

+29
-20
lines changed

eng/tools/azure-sdk-tools/ci_tools/functions.py

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -317,15 +317,17 @@ def is_required_version_on_pypi(package_name, spec):
317317
def get_package_from_repo(pkg_name: str, repo_root: Optional[str] = None) -> Optional[ParsedSetup]:
318318
root_dir = discover_repo_root(repo_root)
319319

320-
glob_path = os.path.join(root_dir, "sdk", "*", pkg_name, "setup.py")
321-
paths = glob.glob(glob_path)
320+
paths = discover_targeted_packages(pkg_name, root_dir, filter_type="Build", include_inactive=True)
322321

323-
if paths:
324-
setup_py_path = paths[0]
325-
parsed_setup = ParsedSetup.from_path(setup_py_path)
326-
return parsed_setup
322+
if len(paths) >= 2:
323+
raise RuntimeError(
324+
f"Multiple packages found for {pkg_name} within {root_dir}, please specify a more specific glob."
325+
)
327326

328-
return None
327+
if paths and len(paths) == 1:
328+
return ParsedSetup.from_path(paths[0])
329+
330+
raise RuntimeError(f"Package {pkg_name} not found in repo {root_dir}.")
329331

330332

331333
def get_package_from_repo_or_folder(req: str, prebuilt_wheel_dir: Optional[str] = None) -> Optional[str]:
@@ -363,26 +365,21 @@ def get_version_from_repo(pkg_name: str, repo_root: Optional[str] = None) -> str
363365
if version_obj.pre:
364366
if version_obj.pre[0] == DEV_BUILD_IDENTIFIER:
365367
return version_obj.base_version
366-
367368
return str(version_obj)
368369
else:
369-
logging.error("setup.py is not found for package {} to identify current version".format(pkg_name))
370-
exit(1)
370+
raise RuntimeError(f"setup.py is not found for package {pkg_name} to identify current version")
371371

372372

373373
def get_base_version(pkg_name: str) -> str:
374374
root_dir = discover_repo_root()
375-
# find version for the package from source. This logic should be revisited to find version from devops feed
376-
glob_path = os.path.join(root_dir, "sdk", "*", pkg_name, "setup.py")
377-
paths = glob.glob(glob_path)
378-
if paths:
379-
setup_py_path = paths[0]
380-
parsed_setup = ParsedSetup.from_path(setup_py_path)
375+
376+
parsed_setup = get_package_from_repo(pkg_name, root_dir)
377+
378+
if parsed_setup:
381379
version_obj = Version(parsed_setup.version)
382380
return version_obj.base_version
383381
else:
384-
logging.error("setup.py is not found for package {} to identify current version".format(pkg_name))
385-
exit(1)
382+
raise RuntimeError("setup.py is not found for package {} to identify current version".format(pkg_name))
386383

387384

388385
def process_requires(setup_py_path: str, is_dev_build: bool = False):

eng/tools/azure-sdk-tools/ci_tools/versioning/version_set_dev.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from ci_tools.variables import discover_repo_root
2222
from ci_tools.functions import process_requires
2323
from ci_tools.parsing import ParsedSetup
24+
from ci_tools.logging import logger, configure_logging
2425

2526
from typing import List
2627

@@ -82,6 +83,9 @@ def version_set_dev_main() -> None:
8283
)
8384

8485
args = parser.parse_args()
86+
87+
configure_logging(args)
88+
8589
root_dir = args.repo or discover_repo_root()
8690

8791
target_packages = get_packages(args, root_dir=root_dir)
@@ -102,5 +106,10 @@ def set_dev_version(target_packages: List[ParsedSetup], build_id: str):
102106
set_version_py(target_package.setup_filename, new_version)
103107
set_dev_classifier(target_package.setup_filename, new_version)
104108
print("{0}: {1} -> {2}".format(target_package.name, target_package.version, new_version))
105-
except:
109+
except Exception as e:
106110
print("Could not set dev version for package: {0}".format(target_package.name))
111+
logger.error(str(e))
112+
113+
114+
if __name__ == "__main__":
115+
version_set_dev_main()

eng/tools/azure-sdk-tools/ci_tools/versioning/version_shared.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,10 @@ def set_version_py(setup_path, new_version):
8282
version_py_location = get_version_py(setup_path)
8383

8484
if not version_py_location:
85-
logger.error("No version.py file found in {}".format(setup_path))
85+
if "nspkg" in setup_path:
86+
logger.warning(f"No version.py file found in {setup_path}. This is expected for nspkg packages.")
87+
return
88+
logger.error(f"No version.py file found in {setup_path}")
8689
sys.exit(1)
8790

8891
version_contents = ""

0 commit comments

Comments
 (0)