alibuild 1.17.12__tar.gz → 1.17.13__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. {alibuild-1.17.12 → alibuild-1.17.13}/PKG-INFO +1 -1
  2. {alibuild-1.17.12 → alibuild-1.17.13}/alfaBuild +1 -1
  3. {alibuild-1.17.12 → alibuild-1.17.13}/aliBuild +1 -1
  4. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild.egg-info/PKG-INFO +1 -1
  5. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/_version.py +2 -2
  6. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/build.py +25 -2
  7. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/utilities.py +21 -20
  8. {alibuild-1.17.12 → alibuild-1.17.13}/tests/test_packagelist.py +14 -11
  9. {alibuild-1.17.12 → alibuild-1.17.13}/.flake8 +0 -0
  10. {alibuild-1.17.12 → alibuild-1.17.13}/.github/workflows/documentation.yml +0 -0
  11. {alibuild-1.17.12 → alibuild-1.17.13}/.github/workflows/pr-check.yml +0 -0
  12. {alibuild-1.17.12 → alibuild-1.17.13}/.github/workflows/release.yml +0 -0
  13. {alibuild-1.17.12 → alibuild-1.17.13}/.gitignore +0 -0
  14. {alibuild-1.17.12 → alibuild-1.17.13}/.pylintrc +0 -0
  15. {alibuild-1.17.12 → alibuild-1.17.13}/ANALYTICS.md +0 -0
  16. {alibuild-1.17.12 → alibuild-1.17.13}/DESIGN.md +0 -0
  17. {alibuild-1.17.12 → alibuild-1.17.13}/LICENSE.md +0 -0
  18. {alibuild-1.17.12 → alibuild-1.17.13}/MANIFEST.in +0 -0
  19. {alibuild-1.17.12 → alibuild-1.17.13}/PACKAGING.md +0 -0
  20. {alibuild-1.17.12 → alibuild-1.17.13}/README.rst +0 -0
  21. {alibuild-1.17.12 → alibuild-1.17.13}/aliDeps +0 -0
  22. {alibuild-1.17.12 → alibuild-1.17.13}/aliDoctor +0 -0
  23. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild.egg-info/SOURCES.txt +0 -0
  24. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild.egg-info/dependency_links.txt +0 -0
  25. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild.egg-info/requires.txt +0 -0
  26. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild.egg-info/top_level.txt +0 -0
  27. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/__init__.py +0 -0
  28. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/analytics.py +0 -0
  29. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/args.py +0 -0
  30. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/build_template.sh +0 -0
  31. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/clean.py +0 -0
  32. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/cmd.py +0 -0
  33. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/deps.py +0 -0
  34. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/doctor.py +0 -0
  35. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/git.py +0 -0
  36. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/init.py +0 -0
  37. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/log.py +0 -0
  38. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/scm.py +0 -0
  39. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/sl.py +0 -0
  40. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/sync.py +0 -0
  41. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/templating_plugin.py +0 -0
  42. {alibuild-1.17.12 → alibuild-1.17.13}/alibuild_helpers/workarea.py +0 -0
  43. {alibuild-1.17.12 → alibuild-1.17.13}/alienv +0 -0
  44. {alibuild-1.17.12 → alibuild-1.17.13}/codecov.yml +0 -0
  45. {alibuild-1.17.12 → alibuild-1.17.13}/debian/changelog +0 -0
  46. {alibuild-1.17.12 → alibuild-1.17.13}/debian/compat +0 -0
  47. {alibuild-1.17.12 → alibuild-1.17.13}/debian/control +0 -0
  48. {alibuild-1.17.12 → alibuild-1.17.13}/debian/copyright +0 -0
  49. {alibuild-1.17.12 → alibuild-1.17.13}/debian/files +0 -0
  50. {alibuild-1.17.12 → alibuild-1.17.13}/debian/rules +0 -0
  51. {alibuild-1.17.12 → alibuild-1.17.13}/docs/README.md +0 -0
  52. {alibuild-1.17.12 → alibuild-1.17.13}/docs/SUPPORT +0 -0
  53. {alibuild-1.17.12 → alibuild-1.17.13}/docs/docs/alice_logo.png +0 -0
  54. {alibuild-1.17.12 → alibuild-1.17.13}/docs/docs/deps.png +0 -0
  55. {alibuild-1.17.12 → alibuild-1.17.13}/docs/docs/index.md +0 -0
  56. {alibuild-1.17.12 → alibuild-1.17.13}/docs/docs/quick.md +0 -0
  57. {alibuild-1.17.12 → alibuild-1.17.13}/docs/docs/reference.md +0 -0
  58. {alibuild-1.17.12 → alibuild-1.17.13}/docs/docs/stylesheets/extra.css +0 -0
  59. {alibuild-1.17.12 → alibuild-1.17.13}/docs/docs/troubleshooting.md +0 -0
  60. {alibuild-1.17.12 → alibuild-1.17.13}/docs/docs/user.md +0 -0
  61. {alibuild-1.17.12 → alibuild-1.17.13}/docs/mkdocs.yml +0 -0
  62. {alibuild-1.17.12 → alibuild-1.17.13}/pb +0 -0
  63. {alibuild-1.17.12 → alibuild-1.17.13}/pyproject.toml +0 -0
  64. {alibuild-1.17.12 → alibuild-1.17.13}/requirements.txt +0 -0
  65. {alibuild-1.17.12 → alibuild-1.17.13}/setup.cfg +0 -0
  66. {alibuild-1.17.12 → alibuild-1.17.13}/setup.py +0 -0
  67. {alibuild-1.17.12 → alibuild-1.17.13}/templates/alibuild_to_please.jnj +0 -0
  68. {alibuild-1.17.12 → alibuild-1.17.13}/tests/test_analytics.py +0 -0
  69. {alibuild-1.17.12 → alibuild-1.17.13}/tests/test_args.py +0 -0
  70. {alibuild-1.17.12 → alibuild-1.17.13}/tests/test_build.py +0 -0
  71. {alibuild-1.17.12 → alibuild-1.17.13}/tests/test_clean.py +0 -0
  72. {alibuild-1.17.12 → alibuild-1.17.13}/tests/test_cmd.py +0 -0
  73. {alibuild-1.17.12 → alibuild-1.17.13}/tests/test_deps.py +0 -0
  74. {alibuild-1.17.12 → alibuild-1.17.13}/tests/test_doctor.py +0 -0
  75. {alibuild-1.17.12 → alibuild-1.17.13}/tests/test_git.py +0 -0
  76. {alibuild-1.17.12 → alibuild-1.17.13}/tests/test_hashing.py +0 -0
  77. {alibuild-1.17.12 → alibuild-1.17.13}/tests/test_init.py +0 -0
  78. {alibuild-1.17.12 → alibuild-1.17.13}/tests/test_log.py +0 -0
  79. {alibuild-1.17.12 → alibuild-1.17.13}/tests/test_parseRecipe.py +0 -0
  80. {alibuild-1.17.12 → alibuild-1.17.13}/tests/test_sync.py +0 -0
  81. {alibuild-1.17.12 → alibuild-1.17.13}/tests/test_utilities.py +0 -0
  82. {alibuild-1.17.12 → alibuild-1.17.13}/tests/test_workarea.py +0 -0
  83. {alibuild-1.17.12 → alibuild-1.17.13}/tests/testdist/broken1.sh +0 -0
  84. {alibuild-1.17.12 → alibuild-1.17.13}/tests/testdist/broken2.sh +0 -0
  85. {alibuild-1.17.12 → alibuild-1.17.13}/tests/testdist/broken3.sh +0 -0
  86. {alibuild-1.17.12 → alibuild-1.17.13}/tests/testdist/broken4.sh +0 -0
  87. {alibuild-1.17.12 → alibuild-1.17.13}/tests/testdist/broken5.sh +0 -0
  88. {alibuild-1.17.12 → alibuild-1.17.13}/tests/testdist/broken6.sh +0 -0
  89. {alibuild-1.17.12 → alibuild-1.17.13}/tests/testdist/broken7.sh +0 -0
  90. {alibuild-1.17.12 → alibuild-1.17.13}/tests/testdist/clobber-initdotsh.sh +0 -0
  91. {alibuild-1.17.12 → alibuild-1.17.13}/tests/testdist/defaults-o2.sh +0 -0
  92. {alibuild-1.17.12 → alibuild-1.17.13}/tests/testdist/delete-etc.sh +0 -0
  93. {alibuild-1.17.12 → alibuild-1.17.13}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: alibuild
3
- Version: 1.17.12
3
+ Version: 1.17.13
4
4
  Summary: ALICE Build Tool
5
5
  Home-page: https://alisw.github.io/alibuild
6
6
  Author: Giulio Eulisse
@@ -57,7 +57,7 @@ def doMain(args, parser):
57
57
  error(e.message)
58
58
  exit(1)
59
59
 
60
- if args.action == "version":
60
+ if args.action == "version" or args.action == None:
61
61
  print("aliBuild version: {version} ({arch})".format(
62
62
  version=__version__ or "unknown", arch=args.architecture or "unknown"))
63
63
  sys.exit(0)
@@ -57,7 +57,7 @@ def doMain(args, parser):
57
57
  error(e.message)
58
58
  exit(1)
59
59
 
60
- if args.action == "version":
60
+ if args.action == "version" or args.action == None:
61
61
  print("aliBuild version: {version} ({arch})".format(
62
62
  version=__version__ or "unknown", arch=args.architecture or "unknown"))
63
63
  sys.exit(0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: alibuild
3
- Version: 1.17.12
3
+ Version: 1.17.13
4
4
  Summary: ALICE Build Tool
5
5
  Home-page: https://alisw.github.io/alibuild
6
6
  Author: Giulio Eulisse
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '1.17.12'
16
- __version_tuple__ = version_tuple = (1, 17, 12)
15
+ __version__ = version = '1.17.13'
16
+ __version_tuple__ = version_tuple = (1, 17, 13)
@@ -4,8 +4,8 @@ from alibuild_helpers import __version__
4
4
  from alibuild_helpers.analytics import report_event
5
5
  from alibuild_helpers.log import debug, info, banner, warning
6
6
  from alibuild_helpers.log import dieOnError
7
- from alibuild_helpers.cmd import execute, DockerRunner, BASH, install_wrapper_script
8
- from alibuild_helpers.utilities import prunePaths, symlink, call_ignoring_oserrors, topological_sort
7
+ from alibuild_helpers.cmd import execute, DockerRunner, BASH, install_wrapper_script, getstatusoutput
8
+ from alibuild_helpers.utilities import prunePaths, symlink, call_ignoring_oserrors, topological_sort, detectArch
9
9
  from alibuild_helpers.utilities import resolve_store_path
10
10
  from alibuild_helpers.utilities import parseDefaults, readDefaults
11
11
  from alibuild_helpers.utilities import getPackageList, asList
@@ -1112,6 +1112,29 @@ def doBuild(args, parser):
1112
1112
  """)
1113
1113
  buildErrMsg += "".join("\n ( cd %s && git pull --rebase )" % dp for dp in updatablePkgs)
1114
1114
 
1115
+ # Gather build info for the error message
1116
+ try:
1117
+ safe_args = {
1118
+ "pkgname", "defaults", "architecture", "forceUnknownArch",
1119
+ "develPrefix", "jobs", "noSystem", "noDevel", "forceTracked", "plugin",
1120
+ "disable", "annotate", "onlyDeps", "docker"
1121
+ }
1122
+ args_str = " ".join(f"--{k}={v}" for k, v in vars(args).items() if v and k in safe_args)
1123
+ detected_arch = detectArch()
1124
+ buildErrMsg += dedent(f"""
1125
+ Build info:
1126
+ OS: {detected_arch}
1127
+ Using aliBuild from alibuild@{__version__ or "unknown"} recipes in alidist@{os.environ["ALIBUILD_ALIDIST_HASH"][:10]}
1128
+ Build arguments: {args_str}
1129
+ """)
1130
+
1131
+ if detected_arch.startswith("osx"):
1132
+ buildErrMsg += f'XCode version: {getstatusoutput("xcodebuild -version")[1]}'
1133
+
1134
+ except Exception as exc:
1135
+ warning("Failed to gather build info", exc_info=exc)
1136
+
1137
+
1115
1138
  dieOnError(err, buildErrMsg.strip())
1116
1139
 
1117
1140
  # We need to create 2 sets of links, once with the full requires,
@@ -493,27 +493,28 @@ def getPackageList(packages, specs, configDir, preferSystem, noSystem,
493
493
  if re.match(replacement_matcher, key):
494
494
  replacement = spec["prefer_system_replacement_specs"][replacement_matcher]
495
495
  break
496
- dieOnError(replacement is None, "Could not find named replacement spec for "
497
- "%s: %s" % (spec["package"], key))
498
- assert(replacement)
499
- # We must keep the package name the same, since it is used to
500
- # specify dependencies.
501
- replacement["package"] = spec["package"]
502
- # The version is required for all specs. What we put there will
503
- # influence the package's hash, so allow the user to override it.
504
- replacement.setdefault("version", requested_version)
505
- spec = replacement
506
- # Allows generalising the version based on the actual key provided
507
- spec["version"] = spec["version"].replace("%(key)s", key)
508
- recipe = replacement.get("recipe", "")
509
- # If there's an explicitly-specified recipe, we're still building
510
- # the package. If not, aliBuild will still "build" it, but it's
511
- # basically instantaneous, so report to the user that we're taking
512
- # it from the system.
513
- if recipe:
514
- ownPackages.add(spec["package"])
496
+ if replacement:
497
+ # We must keep the package name the same, since it is used to
498
+ # specify dependencies.
499
+ replacement["package"] = spec["package"]
500
+ # The version is required for all specs. What we put there will
501
+ # influence the package's hash, so allow the user to override it.
502
+ replacement.setdefault("version", requested_version)
503
+ spec = replacement
504
+ # Allows generalising the version based on the actual key provided
505
+ spec["version"] = spec["version"].replace("%(key)s", key)
506
+ recipe = replacement.get("recipe", "")
507
+ # If there's an explicitly-specified recipe, we're still building
508
+ # the package. If not, aliBuild will still "build" it, but it's
509
+ # basically instantaneous, so report to the user that we're taking
510
+ # it from the system.
511
+ if recipe:
512
+ ownPackages.add(spec["package"])
513
+ else:
514
+ systemPackages.add(spec["package"])
515
515
  else:
516
- systemPackages.add(spec["package"])
516
+ warning(f"Could not find named replacement spec for {spec['package']}: {key}, "
517
+ "falling back to building the package ourselves.")
517
518
 
518
519
  dieOnError(("system_requirement" in spec) and recipe.strip("\n\t "),
519
520
  "System requirements %s cannot have a recipe" % spec["package"])
@@ -154,17 +154,20 @@ class ReplacementTestCase(unittest.TestCase):
154
154
  self.assertNotIn("with-replacement-recipe", systemPkgs)
155
155
  self.assertIn("with-replacement-recipe", ownPkgs)
156
156
 
157
- @mock.patch("alibuild_helpers.utilities.dieOnError")
158
- def test_missing_replacement_spec(self, mock_dieOnError):
159
- """Check an error is thrown when the replacement spec is not found."""
160
- assert_msg = "Could not find named replacement spec for missing-spec: missing_tag"
161
- # Change the behaviour from sys.exit to a regular exception. Without it
162
- # we don't stop execution properly and other asserts might trigger
163
- mock_dieOnError.side_effect = lambda cond, _: (_ for _ in ()).throw(Exception("dieOnError called")) if cond else None
164
- with self.assertRaises(Exception, msg=assert_msg) as context:
165
- specs, systemPkgs, ownPkgs, failedReqs, validDefaults = \
166
- getPackageListWithDefaults(["missing-spec"])
167
- self.assertEqual(str(context.exception), "dieOnError called", msg=assert_msg)
157
+ @mock.patch("alibuild_helpers.utilities.warning")
158
+ def test_missing_replacement_spec(self, mock_warning):
159
+ """Check a warning is displayed when the replacement spec is not found."""
160
+ warning_msg = "falling back to building the package ourselves"
161
+ warning_exists = False
162
+ def side_effect(msg, *args, **kwargs):
163
+ nonlocal warning_exists
164
+ if warning_msg in str(msg):
165
+ warning_exists = True
166
+ mock_warning.side_effect = side_effect
167
+ specs, systemPkgs, ownPkgs, failedReqs, validDefaults = \
168
+ getPackageListWithDefaults(["missing-spec"])
169
+ self.assertTrue(warning_exists)
170
+
168
171
 
169
172
 
170
173
  @mock.patch("alibuild_helpers.utilities.getRecipeReader", new=MockReader)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes