Handle 'all' subcommand - run complete workflow.
(args)
| 908 | |
| 909 | |
| 910 | def cmd_all(args) -> bool: |
| 911 | """Handle 'all' subcommand - run complete workflow.""" |
| 912 | _print_section(f"Apache Burr Release Process - v{args.version}-RC{args.rc_num}") |
| 913 | |
| 914 | if args.dry_run: |
| 915 | print("*** DRY RUN MODE ***\n") |
| 916 | skip_signing = getattr(args, "skip_signing", False) |
| 917 | if skip_signing: |
| 918 | print("*** SKIP SIGNING MODE ***\n") |
| 919 | |
| 920 | _verify_project_root() |
| 921 | _validate_version(args.version) |
| 922 | _check_git_working_tree() |
| 923 | |
| 924 | # Step 1: Git Archive |
| 925 | _print_step(1, 4, "Creating git archive") |
| 926 | _create_git_archive(args.version, args.rc_num, args.output_dir, skip_signing=skip_signing) |
| 927 | |
| 928 | # Step 2: Build sdist |
| 929 | _print_step(2, 4, "Building sdist") |
| 930 | sdist_path = _build_sdist_from_git(args.version, args.output_dir) |
| 931 | _sign_artifact(sdist_path, skip_signing=skip_signing) |
| 932 | if not _verify_artifact_complete(sdist_path, skip_signing=skip_signing): |
| 933 | _fail("sdist verification failed!") |
| 934 | |
| 935 | # Step 3: Build wheel |
| 936 | _print_step(3, 4, "Building wheel") |
| 937 | wheel_path = _build_wheel_from_current_dir(args.version, args.output_dir) |
| 938 | if not _verify_wheel_with_twine(wheel_path): |
| 939 | _fail("Twine verification failed!") |
| 940 | _sign_artifact(wheel_path, skip_signing=skip_signing) |
| 941 | if not _verify_wheel(wheel_path) or not _verify_artifact_complete( |
| 942 | wheel_path, skip_signing=skip_signing |
| 943 | ): |
| 944 | _fail("Wheel verification failed!") |
| 945 | |
| 946 | # Step 4: Upload (if not disabled) |
| 947 | if not args.no_upload: |
| 948 | _print_step(4, 4, "Uploading to Apache SVN") |
| 949 | all_artifacts = _collect_all_artifacts(args.version, args.output_dir) |
| 950 | svn_url = _upload_to_svn( |
| 951 | args.version, args.rc_num, args.apache_id, all_artifacts, dry_run=args.dry_run |
| 952 | ) |
| 953 | if not svn_url: |
| 954 | _fail("SVN upload failed!") |
| 955 | else: |
| 956 | svn_url = f"https://dist.apache.org/repos/dist/dev/incubator/{PROJECT_SHORT_NAME}/{args.version}-incubating-RC{args.rc_num}" |
| 957 | if args.dry_run: |
| 958 | print(f"\n[DRY RUN] Would upload to: {svn_url}") |
| 959 | |
| 960 | # Generate email template |
| 961 | _print_section("Release Complete!") |
| 962 | email_content = _generate_vote_email(args.version, args.rc_num, svn_url) |
| 963 | print(email_content) |
| 964 | |
| 965 | return True |
| 966 | |
| 967 |
no test coverage detected