From 22bc5784360ebbe57f5ac94f3def1b3e32b09abf Mon Sep 17 00:00:00 2001 From: memsharded Date: Mon, 21 Feb 2022 18:50:06 +0100 Subject: [PATCH 1/8] started with conflicts examples --- .../versioning/conflicts/ai/conanfile.py | 7 +++++ .../consuming/versioning/conflicts/build.py | 29 +++++++++++++++++++ .../versioning/conflicts/conanfile.py | 4 +++ .../versioning/conflicts/engine/conanfile.py | 7 +++++ .../versioning/conflicts/game1/conanfile.py | 9 ++++++ .../versioning/conflicts/game2/conanfile.py | 9 ++++++ .../versioning/conflicts/math/conanfile.py | 4 +++ 7 files changed, 69 insertions(+) create mode 100644 tutorial/consuming/versioning/conflicts/ai/conanfile.py create mode 100644 tutorial/consuming/versioning/conflicts/build.py create mode 100644 tutorial/consuming/versioning/conflicts/conanfile.py create mode 100644 tutorial/consuming/versioning/conflicts/engine/conanfile.py create mode 100644 tutorial/consuming/versioning/conflicts/game1/conanfile.py create mode 100644 tutorial/consuming/versioning/conflicts/game2/conanfile.py create mode 100644 tutorial/consuming/versioning/conflicts/math/conanfile.py diff --git a/tutorial/consuming/versioning/conflicts/ai/conanfile.py b/tutorial/consuming/versioning/conflicts/ai/conanfile.py new file mode 100644 index 00000000..38575ccb --- /dev/null +++ b/tutorial/consuming/versioning/conflicts/ai/conanfile.py @@ -0,0 +1,7 @@ +from conan import ConanFile + +class Pkg(ConanFile): + name = "ai" + version = "1.0" + + requires = "math/1.1" \ No newline at end of file diff --git a/tutorial/consuming/versioning/conflicts/build.py b/tutorial/consuming/versioning/conflicts/build.py new file mode 100644 index 00000000..9e706761 --- /dev/null +++ b/tutorial/consuming/versioning/conflicts/build.py @@ -0,0 +1,29 @@ +import os + +def run(cmd, error=False): + ret = os.system(cmd) + if ret != 0 and not error: + raise Exception("Failed cmd: {}".format(cmd)) + if ret == 0 and error: + raise Exception("Cmd succeded (failure expected): {}".format(cmd)) + + +# This is a half diamong game1 -> engine -> math/1.0 +# \--------------> math/2.0 (conflict) +# solved with force=True +run("conan create math --version=1.0") +run("conan create math --version=2.0") +run("conan create engine") +run("conan install game1", error=True) + +# Add the requires forces fixes it +content = open("game1/conanfile.py").read() +new_content = content.replace('self.requires("math/2.0")', + 'self.requires("math/2.0", force=True)') +open("game1/conanfile.py", "w").write(new_content) +# The jump in major version requires building a new engine/1.0 binary +run("conan install game1", error=True) # binary missing +run("conan install game1 --build=missing") + + +# TODO: Full diamong example, introduce "override" instead of "force" \ No newline at end of file diff --git a/tutorial/consuming/versioning/conflicts/conanfile.py b/tutorial/consuming/versioning/conflicts/conanfile.py new file mode 100644 index 00000000..4151efab --- /dev/null +++ b/tutorial/consuming/versioning/conflicts/conanfile.py @@ -0,0 +1,4 @@ +from conan import ConanFile + +class Pkg(ConanFile): + name = "math" diff --git a/tutorial/consuming/versioning/conflicts/engine/conanfile.py b/tutorial/consuming/versioning/conflicts/engine/conanfile.py new file mode 100644 index 00000000..435cd83a --- /dev/null +++ b/tutorial/consuming/versioning/conflicts/engine/conanfile.py @@ -0,0 +1,7 @@ +from conan import ConanFile + +class Pkg(ConanFile): + name = "engine" + version = "1.0" + + requires = "math/1.0" diff --git a/tutorial/consuming/versioning/conflicts/game1/conanfile.py b/tutorial/consuming/versioning/conflicts/game1/conanfile.py new file mode 100644 index 00000000..7f648771 --- /dev/null +++ b/tutorial/consuming/versioning/conflicts/game1/conanfile.py @@ -0,0 +1,9 @@ +from conan import ConanFile + +class Pkg(ConanFile): + name = "game1" + version = "1.0" + + def requirements(self): + self.requires("engine/1.0") + self.requires("math/2.0", force=True) diff --git a/tutorial/consuming/versioning/conflicts/game2/conanfile.py b/tutorial/consuming/versioning/conflicts/game2/conanfile.py new file mode 100644 index 00000000..65533a61 --- /dev/null +++ b/tutorial/consuming/versioning/conflicts/game2/conanfile.py @@ -0,0 +1,9 @@ +from conan import ConanFile + +class Pkg(ConanFile): + name = "game" + version = "1.0" + + def requirements(self): + self.requires("engine/1.0") + self.requires("ai/1.0") diff --git a/tutorial/consuming/versioning/conflicts/math/conanfile.py b/tutorial/consuming/versioning/conflicts/math/conanfile.py new file mode 100644 index 00000000..4151efab --- /dev/null +++ b/tutorial/consuming/versioning/conflicts/math/conanfile.py @@ -0,0 +1,4 @@ +from conan import ConanFile + +class Pkg(ConanFile): + name = "math" From 47a4ae3b92069b2bd8d6e4b62966d8d65d989ea8 Mon Sep 17 00:00:00 2001 From: memsharded Date: Tue, 22 Feb 2022 19:21:52 +0100 Subject: [PATCH 2/8] wip --- .../consuming/versioning/conflicts/build.py | 29 ------------ .../versioning/conflicts/game1/conanfile.py | 2 +- .../versioning/conflicts/run_example.py | 45 +++++++++++++++++++ 3 files changed, 46 insertions(+), 30 deletions(-) delete mode 100644 tutorial/consuming/versioning/conflicts/build.py create mode 100644 tutorial/consuming/versioning/conflicts/run_example.py diff --git a/tutorial/consuming/versioning/conflicts/build.py b/tutorial/consuming/versioning/conflicts/build.py deleted file mode 100644 index 9e706761..00000000 --- a/tutorial/consuming/versioning/conflicts/build.py +++ /dev/null @@ -1,29 +0,0 @@ -import os - -def run(cmd, error=False): - ret = os.system(cmd) - if ret != 0 and not error: - raise Exception("Failed cmd: {}".format(cmd)) - if ret == 0 and error: - raise Exception("Cmd succeded (failure expected): {}".format(cmd)) - - -# This is a half diamong game1 -> engine -> math/1.0 -# \--------------> math/2.0 (conflict) -# solved with force=True -run("conan create math --version=1.0") -run("conan create math --version=2.0") -run("conan create engine") -run("conan install game1", error=True) - -# Add the requires forces fixes it -content = open("game1/conanfile.py").read() -new_content = content.replace('self.requires("math/2.0")', - 'self.requires("math/2.0", force=True)') -open("game1/conanfile.py", "w").write(new_content) -# The jump in major version requires building a new engine/1.0 binary -run("conan install game1", error=True) # binary missing -run("conan install game1 --build=missing") - - -# TODO: Full diamong example, introduce "override" instead of "force" \ No newline at end of file diff --git a/tutorial/consuming/versioning/conflicts/game1/conanfile.py b/tutorial/consuming/versioning/conflicts/game1/conanfile.py index 7f648771..544c9330 100644 --- a/tutorial/consuming/versioning/conflicts/game1/conanfile.py +++ b/tutorial/consuming/versioning/conflicts/game1/conanfile.py @@ -6,4 +6,4 @@ class Pkg(ConanFile): def requirements(self): self.requires("engine/1.0") - self.requires("math/2.0", force=True) + self.requires("math/2.0") diff --git a/tutorial/consuming/versioning/conflicts/run_example.py b/tutorial/consuming/versioning/conflicts/run_example.py new file mode 100644 index 00000000..6ee38780 --- /dev/null +++ b/tutorial/consuming/versioning/conflicts/run_example.py @@ -0,0 +1,45 @@ +import os +import subprocess + +def run(cmd, error=False): + # Used by tools/scm check_repo only (see if repo ok with status) + print("Running: {}".format(cmd)) + process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, err = process.communicate() + out = out.decode("utf-8") + err = err.decode("utf-8") + ret = process.returncode + + output = err + out + if ret != 0 and not error: + raise Exception("Failed cmd: {}\n{}".format(cmd, output)) + if ret == 0 and error: + raise Exception("Cmd succeded (failure expected): {}\n{}".format(cmd, output)) + return output + + +# This is a half diamond +# game1 -> engine -> math/1.0 +# \--------------> math/2.0 (conflict) +# solved with force=True +run("conan create math --version=1.0") + +run("conan create math --version=2.0") +run("conan create engine") +out = run("conan install game1", error=True) +assert "ERROR: Version conflict: engine/1.0->math/1.0, game1/1.0->math/2.0" in out + +# Add the requires "force=True" fixes it +content = open("game1/conanfile.py").read() +new_content = content.replace('self.requires("math/2.0")', + 'self.requires("math/2.0", force=True)') +open("game1/conanfile.py", "w").write(new_content) +# The jump in major version requires building a new engine/1.0 binary +out = run("conan install game1", error=True) # binary missing +assert "ERROR: Missing binary: engine/1.0" in out +run("conan install game1 --build=missing") + +# restore the original contents: +with open("game1/conanfile.py", "w") as f: + print(content) + f.write(content) \ No newline at end of file From 4bcca595a9e59adb5992382b40eeeb6487994d33 Mon Sep 17 00:00:00 2001 From: memsharded Date: Tue, 22 Feb 2022 19:25:08 +0100 Subject: [PATCH 3/8] wip --- tutorial/consuming/versioning/conflicts/run_example.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tutorial/consuming/versioning/conflicts/run_example.py b/tutorial/consuming/versioning/conflicts/run_example.py index 6ee38780..4ffbb9c1 100644 --- a/tutorial/consuming/versioning/conflicts/run_example.py +++ b/tutorial/consuming/versioning/conflicts/run_example.py @@ -22,8 +22,10 @@ def run(cmd, error=False): # game1 -> engine -> math/1.0 # \--------------> math/2.0 (conflict) # solved with force=True -run("conan create math --version=1.0") +# Demo the conflict +run("conan remove * -f") # Make sure no packages from last run +run("conan create math --version=1.0") run("conan create math --version=2.0") run("conan create engine") out = run("conan install game1", error=True) @@ -37,9 +39,9 @@ def run(cmd, error=False): # The jump in major version requires building a new engine/1.0 binary out = run("conan install game1", error=True) # binary missing assert "ERROR: Missing binary: engine/1.0" in out + +# With force=True and --build=missing, it works run("conan install game1 --build=missing") # restore the original contents: -with open("game1/conanfile.py", "w") as f: - print(content) - f.write(content) \ No newline at end of file +open("game1/conanfile.py", "w").write(content) From 8dbd0cbd8120515eedefe004dd94aaf65c527833 Mon Sep 17 00:00:00 2001 From: memsharded Date: Tue, 22 Feb 2022 19:37:04 +0100 Subject: [PATCH 4/8] both force and override examples --- .../versioning/conflicts/force}/conanfile.py | 0 .../conflicts/force}/engine/conanfile.py | 0 .../conflicts/force/game}/conanfile.py | 2 +- .../conflicts/force}/math/conanfile.py | 0 .../conflicts/force}/run_example.py | 16 +++---- .../conflicts/override}/ai/conanfile.py | 2 +- .../conflicts/override/conanfile.py | 4 ++ .../conflicts/override/engine/conanfile.py | 7 +++ .../conflicts/override/game}/conanfile.py | 0 .../conflicts/override/math/conanfile.py | 4 ++ .../conflicts/override/run_example.py | 48 +++++++++++++++++++ 11 files changed, 73 insertions(+), 10 deletions(-) rename {tutorial/consuming/versioning/conflicts => examples/consuming_packages/versioning/conflicts/force}/conanfile.py (100%) rename {tutorial/consuming/versioning/conflicts => examples/consuming_packages/versioning/conflicts/force}/engine/conanfile.py (100%) rename {tutorial/consuming/versioning/conflicts/game1 => examples/consuming_packages/versioning/conflicts/force/game}/conanfile.py (90%) rename {tutorial/consuming/versioning/conflicts => examples/consuming_packages/versioning/conflicts/force}/math/conanfile.py (100%) rename {tutorial/consuming/versioning/conflicts => examples/consuming_packages/versioning/conflicts/force}/run_example.py (75%) rename {tutorial/consuming/versioning/conflicts => examples/consuming_packages/versioning/conflicts/override}/ai/conanfile.py (77%) create mode 100644 examples/consuming_packages/versioning/conflicts/override/conanfile.py create mode 100644 examples/consuming_packages/versioning/conflicts/override/engine/conanfile.py rename {tutorial/consuming/versioning/conflicts/game2 => examples/consuming_packages/versioning/conflicts/override/game}/conanfile.py (100%) create mode 100644 examples/consuming_packages/versioning/conflicts/override/math/conanfile.py create mode 100644 examples/consuming_packages/versioning/conflicts/override/run_example.py diff --git a/tutorial/consuming/versioning/conflicts/conanfile.py b/examples/consuming_packages/versioning/conflicts/force/conanfile.py similarity index 100% rename from tutorial/consuming/versioning/conflicts/conanfile.py rename to examples/consuming_packages/versioning/conflicts/force/conanfile.py diff --git a/tutorial/consuming/versioning/conflicts/engine/conanfile.py b/examples/consuming_packages/versioning/conflicts/force/engine/conanfile.py similarity index 100% rename from tutorial/consuming/versioning/conflicts/engine/conanfile.py rename to examples/consuming_packages/versioning/conflicts/force/engine/conanfile.py diff --git a/tutorial/consuming/versioning/conflicts/game1/conanfile.py b/examples/consuming_packages/versioning/conflicts/force/game/conanfile.py similarity index 90% rename from tutorial/consuming/versioning/conflicts/game1/conanfile.py rename to examples/consuming_packages/versioning/conflicts/force/game/conanfile.py index 544c9330..134d6a84 100644 --- a/tutorial/consuming/versioning/conflicts/game1/conanfile.py +++ b/examples/consuming_packages/versioning/conflicts/force/game/conanfile.py @@ -1,7 +1,7 @@ from conan import ConanFile class Pkg(ConanFile): - name = "game1" + name = "game" version = "1.0" def requirements(self): diff --git a/tutorial/consuming/versioning/conflicts/math/conanfile.py b/examples/consuming_packages/versioning/conflicts/force/math/conanfile.py similarity index 100% rename from tutorial/consuming/versioning/conflicts/math/conanfile.py rename to examples/consuming_packages/versioning/conflicts/force/math/conanfile.py diff --git a/tutorial/consuming/versioning/conflicts/run_example.py b/examples/consuming_packages/versioning/conflicts/force/run_example.py similarity index 75% rename from tutorial/consuming/versioning/conflicts/run_example.py rename to examples/consuming_packages/versioning/conflicts/force/run_example.py index 4ffbb9c1..a2cc7e40 100644 --- a/tutorial/consuming/versioning/conflicts/run_example.py +++ b/examples/consuming_packages/versioning/conflicts/force/run_example.py @@ -19,7 +19,7 @@ def run(cmd, error=False): # This is a half diamond -# game1 -> engine -> math/1.0 +# game -> engine -> math/1.0 # \--------------> math/2.0 (conflict) # solved with force=True @@ -28,20 +28,20 @@ def run(cmd, error=False): run("conan create math --version=1.0") run("conan create math --version=2.0") run("conan create engine") -out = run("conan install game1", error=True) -assert "ERROR: Version conflict: engine/1.0->math/1.0, game1/1.0->math/2.0" in out +out = run("conan install game", error=True) +assert "ERROR: Version conflict: engine/1.0->math/1.0, game/1.0->math/2.0" in out # Add the requires "force=True" fixes it -content = open("game1/conanfile.py").read() +content = open("game/conanfile.py").read() new_content = content.replace('self.requires("math/2.0")', 'self.requires("math/2.0", force=True)') -open("game1/conanfile.py", "w").write(new_content) +open("game/conanfile.py", "w").write(new_content) # The jump in major version requires building a new engine/1.0 binary -out = run("conan install game1", error=True) # binary missing +out = run("conan install game", error=True) # binary missing assert "ERROR: Missing binary: engine/1.0" in out # With force=True and --build=missing, it works -run("conan install game1 --build=missing") +run("conan install game --build=missing") # restore the original contents: -open("game1/conanfile.py", "w").write(content) +open("game/conanfile.py", "w").write(content) diff --git a/tutorial/consuming/versioning/conflicts/ai/conanfile.py b/examples/consuming_packages/versioning/conflicts/override/ai/conanfile.py similarity index 77% rename from tutorial/consuming/versioning/conflicts/ai/conanfile.py rename to examples/consuming_packages/versioning/conflicts/override/ai/conanfile.py index 38575ccb..8762b4bd 100644 --- a/tutorial/consuming/versioning/conflicts/ai/conanfile.py +++ b/examples/consuming_packages/versioning/conflicts/override/ai/conanfile.py @@ -4,4 +4,4 @@ class Pkg(ConanFile): name = "ai" version = "1.0" - requires = "math/1.1" \ No newline at end of file + requires = "math/2.0" \ No newline at end of file diff --git a/examples/consuming_packages/versioning/conflicts/override/conanfile.py b/examples/consuming_packages/versioning/conflicts/override/conanfile.py new file mode 100644 index 00000000..4151efab --- /dev/null +++ b/examples/consuming_packages/versioning/conflicts/override/conanfile.py @@ -0,0 +1,4 @@ +from conan import ConanFile + +class Pkg(ConanFile): + name = "math" diff --git a/examples/consuming_packages/versioning/conflicts/override/engine/conanfile.py b/examples/consuming_packages/versioning/conflicts/override/engine/conanfile.py new file mode 100644 index 00000000..435cd83a --- /dev/null +++ b/examples/consuming_packages/versioning/conflicts/override/engine/conanfile.py @@ -0,0 +1,7 @@ +from conan import ConanFile + +class Pkg(ConanFile): + name = "engine" + version = "1.0" + + requires = "math/1.0" diff --git a/tutorial/consuming/versioning/conflicts/game2/conanfile.py b/examples/consuming_packages/versioning/conflicts/override/game/conanfile.py similarity index 100% rename from tutorial/consuming/versioning/conflicts/game2/conanfile.py rename to examples/consuming_packages/versioning/conflicts/override/game/conanfile.py diff --git a/examples/consuming_packages/versioning/conflicts/override/math/conanfile.py b/examples/consuming_packages/versioning/conflicts/override/math/conanfile.py new file mode 100644 index 00000000..4151efab --- /dev/null +++ b/examples/consuming_packages/versioning/conflicts/override/math/conanfile.py @@ -0,0 +1,4 @@ +from conan import ConanFile + +class Pkg(ConanFile): + name = "math" diff --git a/examples/consuming_packages/versioning/conflicts/override/run_example.py b/examples/consuming_packages/versioning/conflicts/override/run_example.py new file mode 100644 index 00000000..3556ccaa --- /dev/null +++ b/examples/consuming_packages/versioning/conflicts/override/run_example.py @@ -0,0 +1,48 @@ +import os +import subprocess + +def run(cmd, error=False): + # Used by tools/scm check_repo only (see if repo ok with status) + print("Running: {}".format(cmd)) + process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, err = process.communicate() + out = out.decode("utf-8") + err = err.decode("utf-8") + ret = process.returncode + + output = err + out + if ret != 0 and not error: + raise Exception("Failed cmd: {}\n{}".format(cmd, output)) + if ret == 0 and error: + raise Exception("Cmd succeded (failure expected): {}\n{}".format(cmd, output)) + return output + + +# This is a full diamond +# game -> engine -> math/1.0 +# \----> ai -----> math/2.0 (conflict) +# solved with override=True + +# Demo the conflict +run("conan remove * -f") # Make sure no packages from last run +run("conan create math --version=1.0") +run("conan create math --version=2.0") +run("conan create engine") +run("conan create ai") +out = run("conan install game", error=True) +# NOTE This output shows the downstream conflict not the immediate +assert "ERROR: Version conflict: ai/1.0->math/2.0, game/1.0->math/1.0" in out + +# Add the requires "force=True" fixes it +content = open("game/conanfile.py").read() +new_content = content + ' self.requires("math/2.0", override=True)\n' +open("game/conanfile.py", "w").write(new_content) +# The jump in major version requires building a new engine/1.0 binary +out = run("conan install game", error=True) # binary missing +assert "ERROR: Missing binary: engine/1.0" in out + +# With force=True and --build=missing, it works +run("conan install game --build=missing") + +# restore the original contents: +open("game/conanfile.py", "w").write(content) From 24861e3c8db720c7e36e0a993b7017d317182b05 Mon Sep 17 00:00:00 2001 From: memsharded Date: Thu, 24 Feb 2022 09:16:12 +0100 Subject: [PATCH 5/8] review --- .../versioning/conflicts/force/conanfile.py | 4 ---- .../versioning/conflicts/override/ai/conanfile.py | 2 +- .../versioning/conflicts/override/conanfile.py | 4 ---- 3 files changed, 1 insertion(+), 9 deletions(-) delete mode 100644 examples/consuming_packages/versioning/conflicts/force/conanfile.py delete mode 100644 examples/consuming_packages/versioning/conflicts/override/conanfile.py diff --git a/examples/consuming_packages/versioning/conflicts/force/conanfile.py b/examples/consuming_packages/versioning/conflicts/force/conanfile.py deleted file mode 100644 index 4151efab..00000000 --- a/examples/consuming_packages/versioning/conflicts/force/conanfile.py +++ /dev/null @@ -1,4 +0,0 @@ -from conan import ConanFile - -class Pkg(ConanFile): - name = "math" diff --git a/examples/consuming_packages/versioning/conflicts/override/ai/conanfile.py b/examples/consuming_packages/versioning/conflicts/override/ai/conanfile.py index 8762b4bd..be77fda2 100644 --- a/examples/consuming_packages/versioning/conflicts/override/ai/conanfile.py +++ b/examples/consuming_packages/versioning/conflicts/override/ai/conanfile.py @@ -4,4 +4,4 @@ class Pkg(ConanFile): name = "ai" version = "1.0" - requires = "math/2.0" \ No newline at end of file + requires = "math/2.0" diff --git a/examples/consuming_packages/versioning/conflicts/override/conanfile.py b/examples/consuming_packages/versioning/conflicts/override/conanfile.py deleted file mode 100644 index 4151efab..00000000 --- a/examples/consuming_packages/versioning/conflicts/override/conanfile.py +++ /dev/null @@ -1,4 +0,0 @@ -from conan import ConanFile - -class Pkg(ConanFile): - name = "math" From f099c615616aa1627582638e51a78c6af3daa0d5 Mon Sep 17 00:00:00 2001 From: Carlos Zoido Date: Tue, 8 Mar 2022 18:00:49 +0100 Subject: [PATCH 6/8] fix ci (#5) --- .ci/Jenkinsfile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.ci/Jenkinsfile b/.ci/Jenkinsfile index fc20ca9c..64899209 100644 --- a/.ci/Jenkinsfile +++ b/.ci/Jenkinsfile @@ -51,8 +51,13 @@ List getBranchesInstalls() { def runExample(Map ctxt, String example) { for (extension in ctxt.extensions) { if (example.contains(extension)) { - def command = example.contains(".py") ? "python ${example}" : "${example}" - ctxt.shFunction(command) + example = example.replace("\\","/") + split_path = example.split('/') + String script = split_path[split_path.length-1] + String path = example - script + script = isUnix() ? "./${script}" : "${script}" + String command = script.contains(".py") ? "python ${script}" : "${script}" + ctxt.shFunction("cd ${path} && ${command}") } } } From df4efbed5ad54669d51025d1b38215ed0e82ec15 Mon Sep 17 00:00:00 2001 From: memsharded Date: Tue, 8 Mar 2022 18:31:15 +0100 Subject: [PATCH 7/8] fixed tests --- .../versioning/conflicts/force/run_example.py | 2 +- .../versioning/conflicts/override/run_example.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/consuming_packages/versioning/conflicts/force/run_example.py b/examples/consuming_packages/versioning/conflicts/force/run_example.py index a2cc7e40..93e016ec 100644 --- a/examples/consuming_packages/versioning/conflicts/force/run_example.py +++ b/examples/consuming_packages/versioning/conflicts/force/run_example.py @@ -24,7 +24,7 @@ def run(cmd, error=False): # solved with force=True # Demo the conflict -run("conan remove * -f") # Make sure no packages from last run +run('conan remove "*" -f') # Make sure no packages from last run run("conan create math --version=1.0") run("conan create math --version=2.0") run("conan create engine") diff --git a/examples/consuming_packages/versioning/conflicts/override/run_example.py b/examples/consuming_packages/versioning/conflicts/override/run_example.py index 3556ccaa..71610b23 100644 --- a/examples/consuming_packages/versioning/conflicts/override/run_example.py +++ b/examples/consuming_packages/versioning/conflicts/override/run_example.py @@ -24,7 +24,7 @@ def run(cmd, error=False): # solved with override=True # Demo the conflict -run("conan remove * -f") # Make sure no packages from last run +run('conan remove "*" -f') # Make sure no packages from last run run("conan create math --version=1.0") run("conan create math --version=2.0") run("conan create engine") From 45366d901a4c31d6a0653c7188876ae1e783f5de Mon Sep 17 00:00:00 2001 From: memsharded Date: Tue, 8 Mar 2022 18:50:43 +0100 Subject: [PATCH 8/8] add shell=True --- .../versioning/conflicts/force/run_example.py | 2 +- .../versioning/conflicts/override/run_example.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/consuming_packages/versioning/conflicts/force/run_example.py b/examples/consuming_packages/versioning/conflicts/force/run_example.py index 93e016ec..6a76a16a 100644 --- a/examples/consuming_packages/versioning/conflicts/force/run_example.py +++ b/examples/consuming_packages/versioning/conflicts/force/run_example.py @@ -4,7 +4,7 @@ def run(cmd, error=False): # Used by tools/scm check_repo only (see if repo ok with status) print("Running: {}".format(cmd)) - process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) out, err = process.communicate() out = out.decode("utf-8") err = err.decode("utf-8") diff --git a/examples/consuming_packages/versioning/conflicts/override/run_example.py b/examples/consuming_packages/versioning/conflicts/override/run_example.py index 71610b23..19f17bd6 100644 --- a/examples/consuming_packages/versioning/conflicts/override/run_example.py +++ b/examples/consuming_packages/versioning/conflicts/override/run_example.py @@ -4,7 +4,7 @@ def run(cmd, error=False): # Used by tools/scm check_repo only (see if repo ok with status) print("Running: {}".format(cmd)) - process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) out, err = process.communicate() out = out.decode("utf-8") err = err.decode("utf-8")