From 5ee4b3554aa3fc72932cf41839c01ddd6c3dde3e Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Fri, 3 Feb 2023 17:32:24 +0900 Subject: [PATCH] GH-33501: [Packaging][Release] Add conan to post-release tasks --- dev/release/post-14-vcpkg.sh | 2 +- dev/release/post-15-conan.sh | 89 ++++++++++++++++++++++++++++++ docs/source/developers/release.rst | 21 ++++++- 3 files changed, 110 insertions(+), 2 deletions(-) create mode 100755 dev/release/post-15-conan.sh diff --git a/dev/release/post-14-vcpkg.sh b/dev/release/post-14-vcpkg.sh index 8a7b669ed9795..8e3e4caa8b541 100755 --- a/dev/release/post-14-vcpkg.sh +++ b/dev/release/post-14-vcpkg.sh @@ -28,7 +28,7 @@ version=$1 repository=$2 if [ ! -d "${repository}" ]; then - echo "vcpkg/vcpkg's fork repository doesn't exist: ${repository}" + echo "microsoft/vcpkg's fork repository doesn't exist: ${repository}" exit 1 fi diff --git a/dev/release/post-15-conan.sh b/dev/release/post-15-conan.sh new file mode 100755 index 0000000000000..cb45e6b68b832 --- /dev/null +++ b/dev/release/post-15-conan.sh @@ -0,0 +1,89 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +set -ue + +if [ "$#" -ne 2 ]; then + echo "Usage: $0 " + exit 1 +fi + +version=$1 +repository=$2 + +if [ ! -d "${repository}" ]; then + echo "conan-io/conan-center-index's fork repository doesn't exist: ${repository}" + exit 1 +fi + +cd "${repository}" +if [ ! -d .git ]; then + echo "not a Git repository: ${repository}" + exit 1 +fi + +if ! git remote | grep -q '^upstream$'; then + echo "'upstream' remote doesn't exist: ${repository}" + echo "Run the following command line in ${repository}:" + echo " git remote add upstream https://github.com/conan-io/conan-center-index.git" + exit 1 +fi + +echo "Updating repository: ${repository}" +git fetch --all --prune --tags --force +git checkout master +git rebase upstream/master + +branch="arrow-${version}" +echo "Creating branch: ${branch}" +git branch -D ${branch} || : +git checkout -b ${branch} + +recipes_arrow=recipes/arrow +echo "Updating: ${recipes_arrow}" +tar_gz_url="https://www.apache.org/dyn/closer.lua/arrow/arrow-${version}/apache-arrow-${version}.tar.gz?action=download" +sha256sum=$(curl \ + --location \ + "https://www.apache.org/dyn/closer.lua?action=download&filename=arrow/arrow-${version}/apache-arrow-${version}.tar.gz.sha256" | \ + cut -d' ' -f1) +sed \ + -i.bak \ + -e "1a\ \ \"${version}\":" \ + -e "1a\ \ \ \ folder:\ all" \ + ${recipes_arrow}/config.yml +rm ${recipes_arrow}/config.yml.bak +sed \ + -i.bak \ + -e "1a\ \ \"${version}\":" \ + -e "1a\ \ \ \ url: \"${tar_gz_url}\"" \ + -e "1a\ \ \ \ sha256: \"${sha256sum}\"" \ + ${recipes_arrow}/all/conandata.yml +rm ${recipes_arrow}/all/conandata.yml.bak +git add ${recipes_arrow}/config.yml +git add ${recipes_arrow}/all/conandata.yml +git commit -m "arrow: add version ${version}" + +git push origin ${branch} + + +owner=$(git remote get-url origin | \ + grep -o '[a-zA-Z0-9_-]*/conan-center-index' | \ + cut -d/ -f1) +echo "Create a pull request:" +echo " https://github.com/${owner}/conan-center-index/pull/new/${branch}" diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index 8bdb84276f738..bb7f2640deaec 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -536,7 +536,26 @@ Be sure to go through on the following checklist: :class-title: sd-fs-5 :class-container: sd-shadow-md - TODO + Open a pull request to vcpkg: + + .. code-block:: Bash + + ## Fork https://github.com/conan-io/conan-center-index on GitHub. + ## You need to do this only once. + ## + ## Prepare your fork of https://github.com/conan-io/conan-center-index . + ## You need to do this only once. + # git clone git@github.com:kou/conan-center-index.git ../ + git clone git@github.com:/conan-center-index.git ../ + cd ../conan-center-index + ## Add https://github.com/conan-io/conan-center-index.git as "upstream" remote. + git remote add upstream https://github.com/conan-io/conan-center-index.git + cd - + + # dev/release/post-15-conan.sh 10.0.1 ../conan-center-index + dev/release/post-15-conan.sh X.Y.Z + + This script pushes a ``arrow-X.Y.Z`` branch to your ``conan-io/conan-center-index`` fork. You need to create a pull request from the ``arrow-X.Y.Z`` branch on your Web browser. .. dropdown:: Bump versions :animate: fade-in-slide-down