diff --git a/dev/archery/archery/crossbow/core.py b/dev/archery/archery/crossbow/core.py index 4e6b42e485c0c..0f5db1c88f714 100644 --- a/dev/archery/archery/crossbow/core.py +++ b/dev/archery/archery/crossbow/core.py @@ -803,6 +803,19 @@ def __init__(self, head, branch, remote, version, r_version, email=None): self.r_version = r_version self.no_rc_version = re.sub(r'-rc\d+\Z', '', version) self.no_rc_r_version = re.sub(r'-rc\d+\Z', '', r_version) + # MAJOR.MINOR.PATCH Versioning + # + # Excludes: + # + # 1. Release Candidate (RC) string components (e.g. -rc123) + # 2. Dev string components (e.g. .dev123) + # + # Example: + # + # '19.0.0.dev66' -> + # '19.0.0' + self.no_rc_no_dev_version = \ + re.sub(r'\.dev\d+\Z', '', self.no_rc_version) # Semantic Versioning 1.0.0: https://semver.org/spec/v1.0.0.html # # > A pre-release version number MAY be denoted by appending an @@ -1187,6 +1200,7 @@ def from_config(cls, config, target, tasks=None, groups=None, params=None): versions = { 'version': target.version, 'no_rc_version': target.no_rc_version, + 'no_rc_no_dev_version': target.no_rc_no_dev_version, 'no_rc_semver_version': target.no_rc_semver_version, 'no_rc_snapshot_version': target.no_rc_snapshot_version, 'r_version': target.r_version, diff --git a/dev/tasks/matlab/github.yml b/dev/tasks/matlab/github.yml index 3e8af430a96de..5de60c709ef30 100644 --- a/dev/tasks/matlab/github.yml +++ b/dev/tasks/matlab/github.yml @@ -152,7 +152,7 @@ jobs: MATLABPATH: arrow/matlab/tools ARROW_MATLAB_TOOLBOX_FOLDER: arrow/matlab/install/arrow_matlab ARROW_MATLAB_TOOLBOX_OUTPUT_FOLDER: artifacts/matlab-dist - ARROW_MATLAB_TOOLBOX_VERSION: {{ arrow.no_rc_version }} + ARROW_MATLAB_TOOLBOX_VERSION: {{ arrow.no_rc_no_dev_version }} uses: matlab-actions/run-command@v2 with: command: packageMatlabInterface diff --git a/dev/tasks/tasks.yml b/dev/tasks/tasks.yml index 01f4f8f020c4e..63a2c777c0329 100644 --- a/dev/tasks/tasks.yml +++ b/dev/tasks/tasks.yml @@ -693,7 +693,7 @@ tasks: ci: github template: matlab/github.yml artifacts: - - matlab-arrow-[0-9]+.[0-9]+.[0-9]+.mltbx + - matlab-arrow-{no_rc_no_dev_version}.mltbx ############################## Arrow JAR's ################################## diff --git a/matlab/tools/packageMatlabInterface.m b/matlab/tools/packageMatlabInterface.m index 5c82763b25f8a..a90b84186d558 100644 --- a/matlab/tools/packageMatlabInterface.m +++ b/matlab/tools/packageMatlabInterface.m @@ -17,7 +17,11 @@ toolboxFolder = string(getenv("ARROW_MATLAB_TOOLBOX_FOLDER")); outputFolder = string(getenv("ARROW_MATLAB_TOOLBOX_OUTPUT_FOLDER")); -toolboxVersionRaw = string(getenv("ARROW_MATLAB_TOOLBOX_VERSION")); +toolboxVersion = string(getenv("ARROW_MATLAB_TOOLBOX_VERSION")); +if isempty(toolboxVersion) + error("ARROW_MATLAB_TOOLBOX_VERSION environment variable value is empty." + ... + "ARROW_MATLAB_TOOLBOX_VERSION should follow the general form: ${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}."; +end appendLicenseText(fullfile(toolboxFolder, "LICENSE.txt")); appendNoticeText(fullfile(toolboxFolder, "NOTICE.txt")); @@ -27,13 +31,7 @@ disp("Toolbox Folder: " + toolboxFolder); disp("Output Folder: " + outputFolder); -disp("Toolbox Version Raw: " + toolboxVersionRaw); - -versionPattern = regexpPattern("^[0-9]+\.[0-9]+\.[0-9]+"); -toolboxVersion = extract(toolboxVersionRaw, versionPattern); -if isempty(toolboxVersion) - error("Unable to extract MAJOR.MINOR.PATCH version string from " + toolboxVersionRaw); -end +disp("Toolbox Version: " + toolboxVersion); disp("Toolbox Version:" + toolboxVersion); @@ -85,4 +83,4 @@ function appendNoticeText(filename) "This product includes software from The MathWorks, Inc. (Apache 2.0)" " * Copyright (C) 2024 The MathWorks, Inc."]; writelines(noticeText, filename, WriteMode="append"); -end \ No newline at end of file +end