Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 73059425 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Update mainline reminder hooks" into sc-dev am: 4030ac43

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/13563280

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Iccadee97d150dee63884c2f80aff06485a41943d
parents 586c7414 4030ac43
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -24,11 +24,4 @@
media/codec2/components/
media/codecs/
media/extractors/
media/libstagefright/codecs/amrnb/
media/libstagefright/codecs/amrwb/
media/libstagefright/codecs/amrwbenc/
media/libstagefright/codecs/common/
media/libstagefright/codecs/flac/
media/libstagefright/codecs/m4v_h263/
media/libstagefright/codecs/mp3dec/
media/libstagefright/mpeg2ts

tools/mainline_hook.sh

deleted100755 → 0
+0 −84
Original line number Diff line number Diff line
#!/bin/bash
LOCAL_DIR="$( dirname "${BASH_SOURCE}" )"

MAINLINE_FRAMEWORKS_AV_PATHS=(
    media/extractors/
    media/codec2/components/
    media/libstagefright/codecs/amrnb
    media/libstagefright/codecs/amrwb
    media/libstagefright/codecs/amrwbenc
    media/libstagefright/codecs/common
    media/libstagefright/codecs/mp3dec
    media/libstagefright/codecs/m4v_h263
    media/libstagefright/flac/dec
    media/libstagefright/mpeg2ts
)

MAINLINE_EXTERNAL_PROJECTS=(
    external/aac
    external/flac
    external/libaac
    external/libaom
    external/libavc
    external/libgav1
    external/libgsm
    external/libhevc
    external/libmpeg2
    external/libopus
    external/libvpx
    external/libxaac
    external/sonivox
    external/tremolo
)

DEV_BRANCH=qt-aml-media-dev
RED=$(tput setaf 1)
NORMAL=$(tput sgr0)
WARNING_FULL="${RED}Please upload this change in ${DEV_BRANCH} unless it is restricted
from mainline release until next dessert release. Low/moderate security bugs
are restricted this way.${NORMAL}"
WARNING_PARTIAL="${RED}It looks like your change has mainline and non-mainline changes;
Consider separating them into two separate CLs -- one for mainline files,
one for non-mainline files.${NORMAL}"
PWD=`pwd`

if git branch -vv | grep -q -P "^\*[^\[]+\[goog/qt-aml-media-dev"; then
    # Change appears to be in mainline dev branch
    exit 0
fi

for path in "${MAINLINE_EXTERNAL_PROJECTS[@]}"; do
    if [[ $PWD =~ $path ]]; then
        echo -e "${RED}The source of truth for '$path' is in ${DEV_BRANCH}.${NORMAL}"
        echo -e ${WARNING_FULL}
        exit 1
    fi
done

if [[ ! $PWD =~ frameworks/av ]]; then
    exit 0
fi

mainline_count=0
total_count=0
echo
while read -r file ; do
    (( total_count++ ))
    for path in "${MAINLINE_FRAMEWORKS_AV_PATHS[@]}"; do
        if [[ $file =~ ^$path ]]; then
            echo -e "${RED}The source of truth for '$file' is in ${DEV_BRANCH}.${NORMAL}"
            (( mainline_count++ ))
            break
        fi
    done
done < <(git show --name-only --pretty=format: $1 | grep -- "$2")

if (( mainline_count != 0 )); then
    if (( mainline_count == total_count )); then
        echo -e ${WARNING_FULL}
    else
        echo -e ${WARNING_PARTIAL}
    fi
    exit 1
fi
exit 0
+35 −30
Original line number Diff line number Diff line
@@ -35,7 +35,8 @@

## tunables:
##
DEV_BRANCH=rvc-dev
DEV_BRANCH=master
MAINLINE_BRANCH=mainline-prod
filelist_file=MainlineFiles.cfg

###
@@ -50,8 +51,9 @@ NORMAL=$(tput sgr0)
## get the active branch:
## * <localbranch> <shainfo> [goog/master] Fix to handle missing checks on error returned
## strip this down to "master"
## * b157501573_advisory 25521834a6 [goog/sc-dev] Merge "PlayerBase: add audio session ID" into sc-dev
##
current=`git branch -vv | grep -P "^\*[^\[]+\[goog/"|sed -e 's/^.*\[//' | sed -e 's/:.*$//'| sed -e 's/^goog\///'`
current=`git branch -vv | grep -P "^\*[^\[]+\[goog/"|sed -e 's/^.*\[//' | sed -e 's/\].*$//'|sed -e 's/:.*$//'| sed -e 's/^goog\///'`
if [ "${current}" = "" ] ; then
        current=unknown
fi
@@ -142,12 +144,36 @@ if [ -z "${mainline_yes}" ] ; then
    exit 0
fi

#
# exit 0 is "all good, no output passed along to user"
# exit 77 is "a warning, pass along the output to the user"
# exit 1 will be a failure.
#
result=0

# simple reminder that it should also land in mainline branch
#
if [ "${current}" != "${MAINLINE_BRANCH}" ] ; then
        # simple reminder to ensure it hits mainline
        result=77
        cat - <<EOF
You are uploading repo  ${RED}${REPO_PATH}${NORMAL} to branch ${RED}${current}${NORMAL}.
The mainline branch for ${RED}${REPO_PATH}${NORMAL} is branch ${RED}${MAINLINE_BRANCH}${NORMAL}.

Ensure an appropriate cherry pick or equivalent lands in branch ${RED}${MAINLINE_BRANCH}${NORMAL}.
Security bulletin timing or unreleased functionality may drive when this can be landed.
EOF
fi

# watch for the mixed some mainline / some not CL
# we usually want to reject such mixed CLs
#

if [ ! -z "${mainline_no}" ] ; then
        # mixed bag, suggest (not insist) that developer split them.
        result=1
        cat - <<EOF
This CL contains files contains both mainline and non-mainline files.  Consider separating
This change contains both mainline and non-mainline files.  Please separate
them into separate CLs. It may also be appropriate to update the list of mainline
files in ${RED}${REPO_ROOT}/${filelist_file}${NORMAL}.

@@ -162,33 +188,6 @@ EOF
        echo ${mainline_no} | sed -e 's/ /
/g'
        echo -e ${NORMAL}

fi

if [ "${current}" != "${DEV_BRANCH}" ] ; then
    # Change is not in the desired mainline dev branch
    result=1

    #echo -e "${RED}"
    cat - <<EOF

You are uploading repo  ${RED}${REPO_PATH}${NORMAL} to branch ${RED}${current}${NORMAL}. 
The source of truth for ${RED}${REPO_PATH}${NORMAL} is branch ${RED}${DEV_BRANCH}${NORMAL}. 

Please upload this change to branch ${RED}${DEV_BRANCH}${NORMAL} unless one or more of
the following apply:
- this is a security bug prohibited from disclosure before the next dessert release.
  (moderate security bugs fall into this category).
- this is new functionality prohibitied from disclosure before the next dessert release.
EOF
    #echo -e "${NORMAL}"

fi

## since stdout is buffered in a way that complicates the below, we're just going
## to tell the user what they can do to get around this check instead of asking them
## as part of this run of the command.

if [ ${result} != 0 ] ; then
    cat - <<EOF

If you are sure you want to proceed uploading to branch ${RED}${current}${NORMAL},
@@ -196,5 +195,11 @@ re-run your repo upload command with the '--no-verify' option

EOF
fi

# result will be:
# 0: all good, no output passed to user
# 77: warnings (but we pass), output passed along to user
# else: failure, output passed along to the user

exit ${result}
+17 −30
Original line number Diff line number Diff line
@@ -16,7 +16,8 @@


# tunables
DEV_BRANCH=rvc-dev
DEV_BRANCH=master
MAINLINE_BRANCH=mainline-prod

###
RED=$(tput setaf 1)
@@ -25,41 +26,27 @@ NORMAL=$(tput sgr0)
## check the active branch:
## * b131183694 d198c6a [goog/master] Fix to handle missing checks on error returned
##
current=`git branch -vv | grep -P "^\*[^\[]+\[goog/"|sed -e 's/^.*\[//' | sed -e 's/:.*$//'| sed -e 's/^goog\///'`
current=`git branch -vv | grep -P "^\*[^\[]+\[goog/"|sed -e 's/^.*\[//' | sed -e 's/\].*$//'|sed -e 's/:.*$//'| sed -e 's/^goog\///'`
if [ "${current}" = "" ] ; then
        current=unknown
fi

if [ "${current}" = "${DEV_BRANCH}" ] ; then
    # Change appears to be in mainline dev branch
    exit 0
fi

## warn the user that about not being on the typical/desired branch.

# simple reminder that it should also land in mainline branch
#
if [ "${current}" != "${MAINLINE_BRANCH}" ] ; then
        # simple reminder to ensure it hits mainline
        cat - <<EOF

You are uploading repo  ${RED}${REPO_PATH}${NORMAL} to branch ${RED}${current}${NORMAL}.
The source of truth for ${RED}${REPO_PATH}${NORMAL} is branch ${RED}${DEV_BRANCH}${NORMAL}. 

Please upload this change to branch ${RED}${DEV_BRANCH}${NORMAL} unless one or more of
the following apply:
- this is a security bug prohibited from disclosure before the next dessert release.
  (moderate security bugs fall into this category).
- this is new functionality prohibitied from disclosure before the next dessert release.
EOF
The mainline branch for ${RED}${REPO_PATH}${NORMAL} is branch ${RED}${MAINLINE_BRANCH}${NORMAL}.


##
## TODO: prompt the user y/n to continue right now instead of re-invoking with no-verify
## this has to get around how repo buffers stdout from this script such that the output
## is not flushed before we try to read the input.
## 

cat - <<EOF
If you are sure you want to proceed uploading to branch ${RED}${current}${NORMAL},
re-run your repo upload command with the '--no-verify' option
Ensure an appropriate cherry pick or equivalent lands in branch ${RED}${MAINLINE_BRANCH}${NORMAL}.
Security bulletin timing or unreleased functionality may determine when that can be landed.

EOF
exit 1
fi

# exit 0 is "all good, no output passed along to user"
# exit 77 is "all ok, but output is passed along to the user"
#
exit 77