github上Devstack的一些变动,截至8.20

从github下直接clone下来的代码在执行之前须要对一些文件进行改动,否则会出现关于REQUIREMENTS的错误

说明:代码前边是"-"号的,须要删除,代码前边是“+”号的,是须要加入上去的。注意区分哪些是凝视,哪些是代码,只是多解释了。

1./inc/python

66行,function pip_install_gr {     #这个函数内

# Wrapper for ``pip install`` to set cache and proxy environment variables
 # Uses globals ``OFFLINE``, ``PIP_VIRTUAL_ENV``,
-# ``PIP_UPGRADE``, ``TRACK_DEPENDS``, ``*_proxy``
+# ``PIP_UPGRADE``, ``TRACK_DEPENDS``, ``*_proxy``,
+# ``REQUIREMENTS_MODE``
 # pip_install package [package ...]
 function pip_install {
     local xtrace=$(set +o | grep xtrace)

103行。function pip_install { #这个函数内

 fi
     fi

+    cmd_pip="$cmd_pip install"
+
+    # Handle a constraints file, if needed.
+    if [ "$REQUIREMENTS_MODE" == "constraints" -a -n "$REQUIREMENTS_DIR" ]; then
+        cmd_pip="$cmd_pip -c $REQUIREMENTS_DIR/upper-constraints.txt"
+    fi
+
     local pip_version=$(python -c "import pip;                          print(pip.__version__.strip('.')[0])")
     if (( pip_version<6 )); then

116行。function pip_install { #这个函数内

https_proxy="${https_proxy:-}"          no_proxy="${no_proxy:-}"          PIP_FIND_LINKS=$PIP_FIND_LINKS -        $cmd_pip install $upgrade +        $cmd_pip $upgrade          [email protected]

     # Also install test requirements

128行,function pip_install { #这个函数内

https_proxy=${https_proxy:-}              no_proxy=${no_proxy:-}              PIP_FIND_LINKS=$PIP_FIND_LINKS -            $cmd_pip install $upgrade \</span>
+            $cmd_pip $upgrade \</span>
             -r $test_req
     fi<span style="color:#aa22aa;">

215行,说明:这个函数我并没有在源文件里找到。不知道是不是须要自己手动加入,假设有知道结果的希望能够告诉我。

function setup_package_with_req_sync { #这个函数内

 # ``errexit`` requires us to trap the exit code when the repo is changed
     local update_requirements=$(cd $project_dir && git diff --exit-code >/dev/null || echo "changed")

-    if [[ $update_requirements != "changed" ]]; then</span>
+    if [[ $update_requirements != "changed" && "$REQUIREMENTS_MODE" != "constraints" ]]; then
         if is_in_projects_txt $project_dir; then
             (cd $REQUIREMENTS_DIR;                  ./.venv/bin/python update.py $project_dir)

2.  /lib/infra

33行。

<div class="diff ctx"># bring down global requirements</div><div class="diff ctx">     git_clone $REQUIREMENTS_REPO $REQUIREMENTS_DIR $REQUIREMENTS_BRANCH</div><div class="diff ctx">     [ ! -d $PIP_VIRTUAL_ENV ] && virtualenv $PIP_VIRTUAL_ENV</div><div class="diff add">+    # XXX: Remove when 7.1 is released.</div><div class="diff add">+    $REQUIREMENTS_DIR/.venv/bin/pip install -U git+https://github.com/pypa/[email protected]#egg=pip</div><div class="diff ctx">     # We don't care about testing git pbr in the requirements venv.</div><div class="diff ctx">     PIP_VIRTUAL_ENV=$PIP_VIRTUAL_ENV pip_install -U pbr</div><div class="diff ctx">     PIP_VIRTUAL_ENV=$PIP_VIRTUAL_ENV pip_install $REQUIREMENTS_DIR</div>

3../stack.sh

685行,

# Configure an appropriate Python environment
 if [[ "$OFFLINE" != "True" ]]; then
+    REQUIREMENTS_MODE=${REQUIREMENTS_MODE:-}      PYPI_ALTERNATIVE_URL=${PYPI_ALTERNATIVE_URL:-""} $TOP_DIR/tools/install_pip.sh
 fi

699行。

virtualenv --system-site-packages $DEST/.venv
     source $DEST/.venv/bin/activate
     $DEST/.venv/bin/pip freeze > $DEST/requires-pre-pip
+    # XXX: Remove when 7.1 is released.
+    $DEST/.venv/bin/pip install -U git+https://github.com/pypa/[email protected]#egg=pip
 fi

 # Do the ugly hacks for broken packages and distros

4.   ./stackrc

149行,

# Zero disables timeouts
 GIT_TIMEOUT=${GIT_TIMEOUT:-0}

+# Requirements enforcing mode
+#
+# - strict (default) : ensure projects.txt requirements files match
+#   what's in global requirements.
+#
+# - constraints : do not modify project requirements at all. Instead
+#   use upper-constraints.txt to constraint the versions of things installed
+#   via pip for all pip invocations made during stack.sh.
+REQUIREMENTS_MODE=${REQUIREMENTS_MODE:-strict}

 # Repositories
 # ------------

5.  /tools/build_wheel.sh

56行。

# Prepare the workspace
 TMP_VENV_PATH=$(mktemp -d tmp-venv-XXXX)
 virtualenv $TMP_VENV_PATH
+# Back this out when 7.1 is released.
+$TMP_VENV_PATH/bin/pip install -U git+https://github.com/pypa/[email protected]#egg=pip

 # Install modern pip and wheel
-PIP_VIRTUAL_ENV=$TMP_VENV_PATH pip_install -U pip wheel
+PIP_VIRTUAL_ENV=$TMP_VENV_PATH pip_install -U wheel

 # BUG: cffi has a lot of issues. It has no stable ABI, if installed
 # code is built with a different ABI than the one that's detected at

6. /tools/install_pip.sh

62行。

function install_get_pip {
 }

+function install_constraints_pip {
+    # Constraints requires pip 7.1.0 or newer. For now, when constraints are
+    # used, if -c isn't in the help, install develop.
+    if !(pip install -h | grep -- --constraint); then
+        sudo -H -E python -m pip install -U git+https://github.com/pypa/[email protected]#egg=pip
+    fi
+}
+
+
 function configure_pypi_alternative_url {
     PIP_ROOT_FOLDER="$HOME/.pip"
     PIP_CONFIG_FILE="$PIP_ROOT_FOLDER/pip.conf"

97行,

get_versions
 uninstall_package python-pip

 install_get_pip
+if [[ "$REQUIREMENTS_MODE" == "constraints" ]]; then
+    install_constraints_pip
+fi

 if [[ -n $PYPI_ALTERNATIVE_URL ]]; then
     configure_pypi_alternative_url

再说一下,改动代码的时候,加号和减号记得自己删除掉,别直接都粘贴上去了。

时间: 2024-10-06 21:03:05

github上Devstack的一些变动,截至8.20的相关文章

GitHub上最火的74个Android开源项目(收藏)

GitHub上最火的40个Android开源项目(一) GitHub上最火的40个Android开源项目(二) GitHub上最火的74个Android开源项目(三) GitHub上最火的40个iOS开源项目(一) GitHub上最火的40个iOS开源项目(二) GitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到GitHub平台上.更何况,基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要.利用这些项目,有时能够让你达到事半功倍的效果. 下面,就让我们

GitHub上最火的Android开源项目(四十个)

对于开发者而言,了解当下比较流行的开源项目很是必要.利用这些项目,有时能够让你达到事半功倍的效果.为此,CSDN特整理了GitHub上最受欢迎的Android及iOS开源项目,本文详细介绍了20个Android开源项目. GitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到GitHub平台上.更何况,基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要.利用这些项目,有时能够让你达到事半功倍的效果.为此,CSDN特整理了在GitHub平台上最受欢迎的And

Github上关于iOS的各种开源项目集合(强烈建议大家收藏,查看,总有一款你需要)

下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看“使用方法”. (国人写) XHRefreshControl - XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHouseR

GitHub上最火的74个Android开源项目

GitHub上最火的74个Android开源项目 1.ActionBarSherlock ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便地使用所有版本的Android动作栏的设计模式. 对于Android 4.0及更高版本,ActionBarSherlock可以自动使用本地ActionBar实现,而对于之前没有ActionBar功能的版本,基于Ice Cream Sandwich的自定义动作栏

github上关于iOS的各种开源项目集合(转)

UI 下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看“使用方法”. (国人写) XHRefreshControl - XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHou

GitHub上不错的Android开源项目(三)

收集相关系列资料,自己用作参考,练习和实践.小伙伴们,总有一天,你也能写出 Niubility 的 Android App :-) GitHub上不错的Android开源项目(一):http://www.cnblogs.com/haochuang/p/4676090.html GitHub上不错的Android开源项目(二):http://www.cnblogs.com/haochuang/p/4676092.html GitHub上不错的Android开源项目(三):http://www.cn

GitHub上不错的Android开源项目(二)

收集相关系列资料,自己用作参考,练习和实践.小伙伴们,总有一天,你也能写出 Niubility 的 Android App :-) 系列文章如下: GitHub上不错的Android开源项目(一):http://www.cnblogs.com/haochuang/p/4676090.html GitHub上不错的Android开源项目(二):http://www.cnblogs.com/haochuang/p/4676092.html GitHub上不错的Android开源项目(三):http:

使用CSDN CODE来存放OPENSTACK位于GITHUB上的源码

use CSDN CODE to pull openstack codes 2014-11-20 Author:Hyphen 问题 直接从GITHUB上获取代码,经常是没保障,特别是用DEVSTACK的时候,经常超时,所以我想到了每天把GITHUB上的代码更新到本地的想法.但本地还要搞一套GIT服务环境,而且也只是自己用,为何不使用公开的软件库呢,之前记得OSCHINA和CSDN 都搞GIT,相比之下,使用了CSDN CODE,使用起来就跟GITHUB一样,但有个问题是容量现在默认只给我一个G,

参与github上开源项目的大致流程和注意事项

Foreword github是一个很火的代码托管服务网站,可能好多人都想参与一两个项目玩一玩学习一下,但由于是纯英文的网站,可能又会止步于想法上没有动手实践.接下来我就介绍一下参与github上开源项目的大致流程,以及注意的地方.当然这里不会详细介绍git的使用,看懂本文还得需要参考其他资料,学习git的相关使用方法. 大致流程 一.首先需要在github上注册账号并登陆,这个不多说了 二.安装git,到github官网下载安装包.  在这里我用的是github for windows.安装好