alibuild 1.17.16__tar.gz → 1.17.17__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.16 → alibuild-1.17.17}/PKG-INFO +3 -2
  2. {alibuild-1.17.16 → alibuild-1.17.17}/alfaBuild +2 -2
  3. {alibuild-1.17.16 → alibuild-1.17.17}/aliBuild +2 -2
  4. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild.egg-info/PKG-INFO +3 -2
  5. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/_version.py +2 -2
  6. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/args.py +8 -8
  7. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/init.py +1 -1
  8. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/log.py +0 -2
  9. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/utilities.py +18 -4
  10. {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_args.py +5 -5
  11. {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_build.py +1 -1
  12. {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_deps.py +1 -1
  13. {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_doctor.py +1 -1
  14. {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_packagelist.py +2 -2
  15. {alibuild-1.17.16 → alibuild-1.17.17}/.flake8 +0 -0
  16. {alibuild-1.17.16 → alibuild-1.17.17}/.github/workflows/documentation.yml +0 -0
  17. {alibuild-1.17.16 → alibuild-1.17.17}/.github/workflows/pr-check.yml +0 -0
  18. {alibuild-1.17.16 → alibuild-1.17.17}/.github/workflows/release.yml +0 -0
  19. {alibuild-1.17.16 → alibuild-1.17.17}/.gitignore +0 -0
  20. {alibuild-1.17.16 → alibuild-1.17.17}/.pylintrc +0 -0
  21. {alibuild-1.17.16 → alibuild-1.17.17}/ANALYTICS.md +0 -0
  22. {alibuild-1.17.16 → alibuild-1.17.17}/DESIGN.md +0 -0
  23. {alibuild-1.17.16 → alibuild-1.17.17}/LICENSE.md +0 -0
  24. {alibuild-1.17.16 → alibuild-1.17.17}/MANIFEST.in +0 -0
  25. {alibuild-1.17.16 → alibuild-1.17.17}/PACKAGING.md +0 -0
  26. {alibuild-1.17.16 → alibuild-1.17.17}/README.rst +0 -0
  27. {alibuild-1.17.16 → alibuild-1.17.17}/aliDeps +0 -0
  28. {alibuild-1.17.16 → alibuild-1.17.17}/aliDoctor +0 -0
  29. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild.egg-info/SOURCES.txt +0 -0
  30. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild.egg-info/dependency_links.txt +0 -0
  31. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild.egg-info/requires.txt +0 -0
  32. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild.egg-info/top_level.txt +0 -0
  33. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/__init__.py +0 -0
  34. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/analytics.py +0 -0
  35. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/build.py +0 -0
  36. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/build_template.sh +0 -0
  37. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/clean.py +0 -0
  38. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/cmd.py +0 -0
  39. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/deps.py +0 -0
  40. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/doctor.py +0 -0
  41. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/git.py +0 -0
  42. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/scm.py +0 -0
  43. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/sl.py +0 -0
  44. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/sync.py +0 -0
  45. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/templating_plugin.py +0 -0
  46. {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/workarea.py +0 -0
  47. {alibuild-1.17.16 → alibuild-1.17.17}/alienv +0 -0
  48. {alibuild-1.17.16 → alibuild-1.17.17}/codecov.yml +0 -0
  49. {alibuild-1.17.16 → alibuild-1.17.17}/debian/changelog +0 -0
  50. {alibuild-1.17.16 → alibuild-1.17.17}/debian/compat +0 -0
  51. {alibuild-1.17.16 → alibuild-1.17.17}/debian/control +0 -0
  52. {alibuild-1.17.16 → alibuild-1.17.17}/debian/copyright +0 -0
  53. {alibuild-1.17.16 → alibuild-1.17.17}/debian/files +0 -0
  54. {alibuild-1.17.16 → alibuild-1.17.17}/debian/rules +0 -0
  55. {alibuild-1.17.16 → alibuild-1.17.17}/docs/README.md +0 -0
  56. {alibuild-1.17.16 → alibuild-1.17.17}/docs/SUPPORT +0 -0
  57. {alibuild-1.17.16 → alibuild-1.17.17}/docs/docs/alice_logo.png +0 -0
  58. {alibuild-1.17.16 → alibuild-1.17.17}/docs/docs/deps.png +0 -0
  59. {alibuild-1.17.16 → alibuild-1.17.17}/docs/docs/index.md +0 -0
  60. {alibuild-1.17.16 → alibuild-1.17.17}/docs/docs/quick.md +0 -0
  61. {alibuild-1.17.16 → alibuild-1.17.17}/docs/docs/reference.md +0 -0
  62. {alibuild-1.17.16 → alibuild-1.17.17}/docs/docs/stylesheets/extra.css +0 -0
  63. {alibuild-1.17.16 → alibuild-1.17.17}/docs/docs/troubleshooting.md +0 -0
  64. {alibuild-1.17.16 → alibuild-1.17.17}/docs/docs/user.md +0 -0
  65. {alibuild-1.17.16 → alibuild-1.17.17}/docs/mkdocs.yml +0 -0
  66. {alibuild-1.17.16 → alibuild-1.17.17}/pb +0 -0
  67. {alibuild-1.17.16 → alibuild-1.17.17}/pyproject.toml +0 -0
  68. {alibuild-1.17.16 → alibuild-1.17.17}/requirements.txt +0 -0
  69. {alibuild-1.17.16 → alibuild-1.17.17}/setup.cfg +0 -0
  70. {alibuild-1.17.16 → alibuild-1.17.17}/setup.py +0 -0
  71. {alibuild-1.17.16 → alibuild-1.17.17}/templates/alibuild_to_please.jnj +0 -0
  72. {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_analytics.py +0 -0
  73. {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_clean.py +0 -0
  74. {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_cmd.py +0 -0
  75. {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_git.py +0 -0
  76. {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_hashing.py +0 -0
  77. {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_init.py +0 -0
  78. {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_log.py +0 -0
  79. {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_parseRecipe.py +0 -0
  80. {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_sync.py +0 -0
  81. {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_utilities.py +0 -0
  82. {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_workarea.py +0 -0
  83. {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/broken1.sh +0 -0
  84. {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/broken2.sh +0 -0
  85. {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/broken3.sh +0 -0
  86. {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/broken4.sh +0 -0
  87. {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/broken5.sh +0 -0
  88. {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/broken6.sh +0 -0
  89. {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/broken7.sh +0 -0
  90. {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/clobber-initdotsh.sh +0 -0
  91. {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/defaults-o2.sh +0 -0
  92. {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/delete-etc.sh +0 -0
  93. {alibuild-1.17.16 → alibuild-1.17.17}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: alibuild
3
- Version: 1.17.16
3
+ Version: 1.17.17
4
4
  Summary: ALICE Build Tool
5
5
  Home-page: https://alisw.github.io/alibuild
6
6
  Author: Giulio Eulisse
@@ -30,6 +30,7 @@ Dynamic: author
30
30
  Dynamic: description
31
31
  Dynamic: description-content-type
32
32
  Dynamic: home-page
33
+ Dynamic: license-file
33
34
 
34
35
  .. image:: https://badge.fury.io/py/alibuild.svg
35
36
  .. image:: https://github.com/alisw/alibuild/actions/workflows/pr-check.yml/badge.svg?branch=master&event=push
@@ -111,8 +111,8 @@ if __name__ == "__main__":
111
111
  else:
112
112
  os.environ["ALIBUILD_ANALYTICS_USER_UUID"] = open(expanduser("~/.config/alibuild/analytics-uuid")).read().strip()
113
113
  try:
114
- profiler = "--profile" in sys.argv
115
- if profiler:
114
+ useProfiler = "--profile" in sys.argv
115
+ if useProfiler:
116
116
  print("profiler started")
117
117
  import cProfile, pstats
118
118
  from io import StringIO
@@ -111,8 +111,8 @@ if __name__ == "__main__":
111
111
  else:
112
112
  os.environ["ALIBUILD_ANALYTICS_USER_UUID"] = open(expanduser("~/.config/alibuild/analytics-uuid")).read().strip()
113
113
  try:
114
- profiler = "--profile" in sys.argv
115
- if profiler:
114
+ useProfiler = "--profile" in sys.argv
115
+ if useProfiler:
116
116
  print("profiler started")
117
117
  import cProfile, pstats
118
118
  from io import StringIO
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: alibuild
3
- Version: 1.17.16
3
+ Version: 1.17.17
4
4
  Summary: ALICE Build Tool
5
5
  Home-page: https://alisw.github.io/alibuild
6
6
  Author: Giulio Eulisse
@@ -30,6 +30,7 @@ Dynamic: author
30
30
  Dynamic: description
31
31
  Dynamic: description-content-type
32
32
  Dynamic: home-page
33
+ Dynamic: license-file
33
34
 
34
35
  .. image:: https://badge.fury.io/py/alibuild.svg
35
36
  .. image:: https://github.com/alisw/alibuild/actions/workflows/pr-check.yml/badge.svg?branch=master&event=push
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '1.17.16'
21
- __version_tuple__ = version_tuple = (1, 17, 16)
20
+ __version__ = version = '1.17.17'
21
+ __version_tuple__ = version_tuple = (1, 17, 17)
@@ -176,8 +176,8 @@ def doParseArgs():
176
176
  build_system = build_parser.add_mutually_exclusive_group()
177
177
  build_system.add_argument("--always-prefer-system", dest="preferSystem", action="store_true",
178
178
  help="Always use system packages when compatible.")
179
- build_system.add_argument("--no-system", dest="noSystem", action="store_true",
180
- help="Never use system packages, even if compatible.")
179
+ build_system.add_argument("--no-system", dest="noSystem", nargs="?", const="*", default=None, metavar="PACKAGES",
180
+ help="Never use system packages for the provided, command separated, PACKAGES, even if compatible.")
181
181
 
182
182
  # Options for clean subcommand
183
183
  clean_parser.add_argument("-a", "--architecture", dest="architecture", metavar="ARCH", default=detectedArch,
@@ -237,8 +237,8 @@ def doParseArgs():
237
237
  deps_system = deps_parser.add_mutually_exclusive_group()
238
238
  deps_system.add_argument("--always-prefer-system", dest="preferSystem", action="store_true",
239
239
  help="Always use system packages when compatible.")
240
- deps_system.add_argument("--no-system", dest="noSystem", action="store_true",
241
- help="Never use system packages, even if compatible.")
240
+ deps_system.add_argument("--no-system", dest="noSystem", nargs="?", const="*", default=None, metavar="PACKAGES",
241
+ help="Never use system packages for PACKAGES, even if compatible.")
242
242
 
243
243
  # Options for the doctor subcommand
244
244
  doctor_parser.add_argument("packages", metavar="PACKAGE", nargs="+",
@@ -258,8 +258,8 @@ def doParseArgs():
258
258
  doctor_system = doctor_parser.add_mutually_exclusive_group()
259
259
  doctor_system.add_argument("--always-prefer-system", dest="preferSystem", action="store_true",
260
260
  help="Always use system packages when compatible.")
261
- doctor_system.add_argument("--no-system", dest="noSystem", action="store_true",
262
- help="Never use system packages, even if compatible.")
261
+ doctor_system.add_argument("--no-system", dest="noSystem", nargs="?", const="*", default=None, metavar="PACKAGES",
262
+ help="Never use system packages for the provided, command separated, PACKAGES, even if compatible.")
263
263
 
264
264
  doctor_docker = doctor_parser.add_argument_group(title="Use a Docker container", description="""\
265
265
  If you're planning to build inside a Docker container, e.g. using aliBuild
@@ -457,14 +457,14 @@ def finaliseArgs(args, parser):
457
457
 
458
458
  # On selected platforms, caching is active by default
459
459
  if args.architecture in S3_SUPPORTED_ARCHS and not args.preferSystem and not args.no_remote_store:
460
- args.noSystem = True
460
+ args.noSystem = "*"
461
461
  if not args.remoteStore:
462
462
  args.remoteStore = "https://s3.cern.ch/swift/v1/alibuild-repo"
463
463
  elif args.no_remote_store:
464
464
  args.remoteStore = ""
465
465
 
466
466
  if args.remoteStore or args.writeStore:
467
- args.noSystem = True
467
+ args.noSystem = "*"
468
468
 
469
469
  if args.remoteStore.endswith("::rw") and args.writeStore:
470
470
  parser.error("cannot specify ::rw and --write-store at the same time")
@@ -50,7 +50,7 @@ def doInit(args):
50
50
  specs=specs,
51
51
  configDir=args.configDir,
52
52
  preferSystem=False,
53
- noSystem=True,
53
+ noSystem="*",
54
54
  architecture="",
55
55
  disable=[],
56
56
  defaults=args.defaults,
@@ -4,8 +4,6 @@ import re
4
4
  import time
5
5
  import datetime
6
6
 
7
- debug, error, warning, info, success = (None, None, None, None, None)
8
-
9
7
  def dieOnError(err, msg) -> None:
10
8
  if err:
11
9
  error("%s", msg)
@@ -307,7 +307,7 @@ def readDefaults(configDir, defaults, error, architecture):
307
307
  return (defaultsMeta, defaultsBody)
308
308
 
309
309
 
310
- def getRecipeReader(url, dist=None):
310
+ def getRecipeReader(url:str , dist=None):
311
311
  m = re.search(r'^dist:(.*)@([^@]+)$', url)
312
312
  if m and dist:
313
313
  return GitReader(url, dist)
@@ -454,6 +454,9 @@ def getPackageList(packages, specs, configDir, preferSystem, noSystem,
454
454
 
455
455
  filename, pkgdir = resolveFilename(taps, pkg_filename, configDir)
456
456
 
457
+ dieOnError(not filename, "Package %s not found in %s" % (p, configDir))
458
+ assert(filename is not None)
459
+
457
460
  err, spec, recipe = parseRecipe(getRecipeReader(filename, configDir))
458
461
  dieOnError(err, err)
459
462
  # Unless there was an error, both spec and recipe should be valid.
@@ -498,7 +501,14 @@ def getPackageList(packages, specs, configDir, preferSystem, noSystem,
498
501
  systemREMatches = re.match(systemRE, architecture)
499
502
  except TypeError:
500
503
  dieOnError(True, "Malformed entry prefer_system: %s in %s" % (systemRE, spec["package"]))
501
- if not noSystem and (preferSystem or systemREMatches):
504
+
505
+ noSystemList = []
506
+ if noSystem == "*":
507
+ noSystemList = [spec["package"]]
508
+ elif noSystem is not None:
509
+ noSystemList = noSystem.split(",")
510
+ systemExcluded = (spec["package"] in noSystemList)
511
+ if (preferSystem or systemREMatches):
502
512
  requested_version = resolve_version(spec, defaults, "unavailable", "unavailable")
503
513
  cmd = "REQUESTED_VERSION={version}\n{check}".format(
504
514
  version=quote(requested_version),
@@ -513,12 +523,16 @@ def getPackageList(packages, specs, configDir, preferSystem, noSystem,
513
523
  else:
514
524
  # prefer_system_check succeeded; this means we should use the system package.
515
525
  match = re.search(r"^alibuild_system_replace:(?P<key>.*)$", output, re.MULTILINE)
516
- if not match:
526
+ if not match and systemExcluded:
527
+ # No replacement spec name given. Fall back to old system package
528
+ # behaviour and just disable the package.
529
+ ownPackages.add(spec["package"])
530
+ elif not match and not systemExcluded:
517
531
  # No replacement spec name given. Fall back to old system package
518
532
  # behaviour and just disable the package.
519
533
  systemPackages.add(spec["package"])
520
534
  disable.append(spec["package"])
521
- else:
535
+ elif match:
522
536
  # The check printed the name of a replacement; use it.
523
537
  key = match.group("key").strip()
524
538
  replacement = None
@@ -48,11 +48,11 @@ CORRECT_BEHAVIOR = [
48
48
  ((), "build --force-unknown-architecture -j 10 zlib --disable gcc --disable foo,bar" , [("disable", ["gcc", "foo", "bar"])]),
49
49
  ((), "init zlib --dist master" , [("dist", {"repo": "alisw/alidist", "ver": "master"})]),
50
50
  ((), "init zlib --dist ktf/alidist@dev" , [("dist", {"repo": "ktf/alidist", "ver": "dev"})]),
51
- ((), "build --force-unknown-architecture zlib --remote-store rsync://test.local/" , [("noSystem", True), ("remoteStore", "rsync://test.local/")]),
52
- ((), "build --force-unknown-architecture zlib --remote-store rsync://test.local/::rw", [("noSystem", True), ("remoteStore", "rsync://test.local/"), ("writeStore", "rsync://test.local/")]),
53
- ((), "build --force-unknown-architecture zlib --no-remote-store --remote-store rsync://test.local/", [("noSystem", False), ("remoteStore", "")]),
54
- ((), "build zlib --architecture slc7_x86-64" , [("noSystem", True), ("preferSystem", False), ("remoteStore", "https://s3.cern.ch/swift/v1/alibuild-repo")]),
55
- ((), "build zlib --architecture ubuntu1804_x86-64" , [("noSystem", False), ("preferSystem", False), ("remoteStore", "")]),
51
+ ((), "build --force-unknown-architecture zlib --remote-store rsync://test.local/" , [("noSystem", "*"), ("remoteStore", "rsync://test.local/")]),
52
+ ((), "build --force-unknown-architecture zlib --remote-store rsync://test.local/::rw", [("noSystem", "*"), ("remoteStore", "rsync://test.local/"), ("writeStore", "rsync://test.local/")]),
53
+ ((), "build --force-unknown-architecture zlib --no-remote-store --remote-store rsync://test.local/", [("noSystem", None), ("remoteStore", "")]),
54
+ ((), "build zlib --architecture slc7_x86-64" , [("noSystem", "*"), ("preferSystem", False), ("remoteStore", "https://s3.cern.ch/swift/v1/alibuild-repo")]),
55
+ ((), "build zlib --architecture ubuntu1804_x86-64" , [("noSystem", None), ("preferSystem", False), ("remoteStore", "")]),
56
56
  ((), "build zlib -a slc7_x86-64" , [("docker", False), ("dockerImage", None), ("docker_extra_args", ["--network=host"])]),
57
57
  ((), "build zlib -a slc7_x86-64 --docker-image registry.cern.ch/alisw/some-builder" , [("docker", True), ("dockerImage", "registry.cern.ch/alisw/some-builder")]),
58
58
  ((), "build zlib -a slc7_x86-64 --docker" , [("docker", True), ("dockerImage", "registry.cern.ch/alisw/slc7-builder")]),
@@ -268,7 +268,7 @@ class BuildTestCase(unittest.TestCase):
268
268
  jobs=2,
269
269
  annotate={},
270
270
  preferSystem=[],
271
- noSystem=False,
271
+ noSystem=None,
272
272
  debug=True,
273
273
  dryRun=False,
274
274
  aggressiveCleanup=False,
@@ -57,7 +57,7 @@ class DepsTestCase(unittest.TestCase):
57
57
  dockerImage=None,
58
58
  docker_extra_args=["--network=host"],
59
59
  preferSystem=[],
60
- noSystem=True,
60
+ noSystem="*",
61
61
  architecture="slc7_x86-64",
62
62
  disable=[],
63
63
  neat=True,
@@ -80,7 +80,7 @@ class DoctorTestCase(unittest.TestCase):
80
80
  docker_extra_args=["--network=host"],
81
81
  debug=False,
82
82
  preferSystem=[],
83
- noSystem=False,
83
+ noSystem="*",
84
84
  architecture="osx_x86-64",
85
85
  disable=[],
86
86
  defaults="release")
@@ -89,10 +89,10 @@ def getPackageListWithDefaults(packages, force_rebuild=()):
89
89
  specs=specs,
90
90
  configDir="CONFIG_DIR",
91
91
  # Make sure getPackageList considers prefer_system_check.
92
- # (Even with preferSystem=False + noSystem=False, it is sufficient
92
+ # (Even with preferSystem=False + noSystem=None, it is sufficient
93
93
  # if the prefer_system regex matches the architecture.)
94
94
  preferSystem=True,
95
- noSystem=False,
95
+ noSystem=None,
96
96
  architecture="ARCH",
97
97
  disable=[],
98
98
  defaults="release",
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