#!/bin/bash ver=$1 pkgs=$2 # It is recommended that you clean up the environment first # by running this command: # git submodule deinit --all -f git submodule update --init if [ "$(uname)" == "Darwin" ]; then backup="''" else backup="" fi : ${ver:="$NUGET_VERSION"} : ${pkgs:=" Microsoft.Quantum.Chemistry; Microsoft.Quantum.Chemistry.Jupyter; Microsoft.Quantum.Compiler; Microsoft.Quantum.Development.Kit; Microsoft.Quantum.IQSharp.Core; Microsoft.Quantum.Numerics; Microsoft.Quantum.Research; Microsoft.Quantum.CsharpGeneration; Microsoft.Quantum.Simulators; Microsoft.Quantum.Standard; Microsoft.Quantum.Xunit"} for pkg in `echo $pkgs | tr ";" "\n"`; do echo Will update package $pkg with version $ver... grep --include=\packages.config -lri -e "package *id=\"$pkg\" *version=" * | xargs sed -i $backup "s/package *id=\"$pkg\" *version=\"\([^\"]*\)\"/package id=\"$pkg\" version=\"$ver\"/i" grep --include=\*proj --exclude-dir="**\QsCompiler" -lri -e "PackageReference *Include=\"$pkg\" *Version=" * | xargs sed -i $backup "s/PackageReference *Include=\"$pkg\" *Version=\"\([^\"]*\)\"/PackageReference Include=\"$pkg\" Version=\"$ver\"/i" done # Update Python version in environment.yml files: case $ver in *-alpha) py_version=`echo $ver | sed "s/\(.*\)-.*/\1a1/g"`;; *-beta) py_version=`echo $ver | sed "s/\(.*\)-.*/\1b1/g"`;; *) py_version=$ver;; esac grep --include=\environment.yml -lri -e "qsharp==" * | xargs sed -i $backup "s/qsharp==\([^ ]*\)/qsharp==$py_version/i" # Update Dockerfile: sed -i $backup "s/qsharp==\([^ ]*\)/qsharp==$py_version/i" **/Dockerfile sed -i $backup "s/Microsoft.Quantum.IQSharp[ ]*--version[ ]*\([^ ]*\)/Microsoft.Quantum.IQSharp --version $ver/i" **/Dockerfile # Update Notebooks find . -type f -name *.ipynb | xargs sed -i $backup "s/%package *\(microsoft.quantum.[^ ]*\)::\([^ \"]*\)/%package \1::$ver/i" echo done! echo