jolt 0.9.373__py3-none-any.whl → 0.9.388__py3-none-any.whl

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.
jolt/cache.py CHANGED
@@ -1275,7 +1275,7 @@ class ArtifactCache(StorageProvider):
1275
1275
 
1276
1276
  # Read configuration
1277
1277
  self._max_size = config.getsize(
1278
- "jolt", "cachesize", os.environ.get("JOLT_CACHESIZE", 1 * 1024 ** 3))
1278
+ "jolt", "cachesize", os.environ.get("JOLT_CACHE_SIZE", 1 * 1024 ** 3))
1279
1279
 
1280
1280
  # Create cache directory
1281
1281
  self._fs_create_cachedir()
jolt/cli.py CHANGED
@@ -18,7 +18,7 @@ from jolt import log
18
18
  from jolt import __version__
19
19
  from jolt.log import logfile
20
20
  from jolt import config
21
- from jolt.loader import JoltLoader
21
+ from jolt.loader import JoltLoader, import_workspace
22
22
  from jolt import tools
23
23
  from jolt import utils
24
24
  from jolt.influence import HashInfluenceRegistry
@@ -216,12 +216,13 @@ def _autocomplete_tasks(ctx, args, incomplete):
216
216
  help="Don't prune cached artifacts from the build graph. This option can be used to populate the local cache with remotely cached dependency artifacts.")
217
217
  @click.option("--worker", is_flag=True, default=False,
218
218
  help="Run with the worker build strategy", hidden=True)
219
+ @click.option("--environ", type=click.Path(), help="Import build environment from protobuf", hidden=True)
219
220
  @click.pass_context
220
221
  @hooks.cli_build
221
222
  def build(ctx, task, network, keep_going, default, local,
222
223
  no_download, no_download_persistent, no_upload, download, upload, worker, force,
223
224
  salt, copy, debug, result, jobs, no_prune, verbose,
224
- mute):
225
+ mute, environ):
225
226
  """
226
227
  Build task artifact.
227
228
 
@@ -253,6 +254,7 @@ def build(ctx, task, network, keep_going, default, local,
253
254
  are removed before execution starts.
254
255
 
255
256
  """
257
+
256
258
  raise_error_if(network and local,
257
259
  "The -n and -l flags are mutually exclusive")
258
260
 
@@ -304,6 +306,33 @@ def build(ctx, task, network, keep_going, default, local,
304
306
  if keep_going:
305
307
  config.set_keep_going(True)
306
308
 
309
+ # Import build environment from protobuf if provided
310
+ buildenv = None
311
+ if environ:
312
+ with open(environ, "rb") as f:
313
+ from jolt import common_pb2 as common_pb
314
+ buildenv = common_pb.BuildEnvironment()
315
+ try:
316
+ buildenv.ParseFromString(f.read())
317
+ except Exception as e:
318
+ raise_error("Failed to parse build environment protobuf: {}", e)
319
+
320
+ # Import log level
321
+ log.set_level_pb(buildenv.loglevel)
322
+
323
+ # Import workspace
324
+ import_workspace(buildenv)
325
+
326
+ # Import configuration snippet
327
+ config.import_config(buildenv.config)
328
+
329
+ # Import configuration parameters (-c params.key)
330
+ config.import_params({param.key: param.value for param in buildenv.parameters})
331
+
332
+ # Import default parameters (-d taskname:param=value)
333
+ default = utils.as_list(default)
334
+ default += buildenv.task_default_parameters
335
+
307
336
  options = JoltOptions(
308
337
  network=network,
309
338
  local=local,
@@ -340,7 +369,7 @@ def build(ctx, task, network, keep_going, default, local,
340
369
 
341
370
  log.info("Started: {}", datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
342
371
 
343
- gb = graph.GraphBuilder(registry, acache, options, progress=True)
372
+ gb = graph.GraphBuilder(registry, acache, options, progress=True, buildenv=buildenv)
344
373
  dag = gb.build(task)
345
374
 
346
375
  # If asked to force rebuild, taint all goal tasks
jolt/loader.py CHANGED
@@ -252,6 +252,7 @@ class JoltLoader(object):
252
252
  for factory in _loaders:
253
253
  loader = factory().create(searchpath)
254
254
  for recipe in loader.recipes:
255
+ recipe.workspace_path = os.path.relpath(recipe.path, self.workspace_path)
255
256
  recipe.load()
256
257
  self._recipes.append(recipe)
257
258
  self._tasks += recipe.tasks
@@ -450,6 +451,7 @@ def export_workspace(tasks=None) -> common_pb.Workspace:
450
451
  cache_grpc_uri = config.geturi("cache", "grpc_uri")
451
452
  if fstree_enabled:
452
453
  if not cache_grpc_uri:
454
+ fstree_enabled = False
453
455
  log.warning("No cache gRPC URI configured, will not push workspace to remote cache")
454
456
  else:
455
457
  raise_error_if(cache_grpc_uri.scheme not in ["tcp"], "Invalid scheme in cache gRPC URI config: {}", cache_grpc_uri.scheme)
@@ -542,12 +544,13 @@ def export_workspace(tasks=None) -> common_pb.Workspace:
542
544
  tree=tree,
543
545
  )
544
546
 
545
- for recipe in loader.recipes:
546
- workspace.files.append(
547
- common_pb.File(
548
- path=recipe.basepath,
549
- content=recipe.source,
547
+ if not fstree_enabled:
548
+ for recipe in loader.recipes:
549
+ workspace.files.append(
550
+ common_pb.File(
551
+ path=recipe.workspace_path,
552
+ content=recipe.source,
553
+ )
550
554
  )
551
- )
552
555
 
553
556
  return workspace
jolt/plugins/docker.py CHANGED
@@ -103,8 +103,8 @@ class DockerClient(Download):
103
103
  url = "https://download.docker.com/{host}/static/stable/{arch}/docker-{version}.tgz"
104
104
  """ URL of binaries """
105
105
 
106
- version = Parameter("27.3.1", help="Docker version")
107
- """ Docker version [27.3.1] """
106
+ version = Parameter("27.4.1", help="Docker version")
107
+ """ Docker version [27.4.1] """
108
108
 
109
109
  def publish(self, artifact, tools):
110
110
  super().publish(artifact, tools)
jolt/plugins/podman.py CHANGED
@@ -1,4 +1,4 @@
1
- from jolt import Download, Parameter, Resource, Task
1
+ from jolt import Parameter, Resource, Task
2
2
  from jolt.error import raise_task_error_if
3
3
  from jolt.tasks import TaskRegistry
4
4
  from jolt import attributes
@@ -15,7 +15,6 @@ from jolt.cache import ArtifactAttributeSetProvider
15
15
  import contextlib
16
16
  import json
17
17
  from os import path
18
- from platform import system
19
18
  import tarfile
20
19
 
21
20
 
@@ -100,35 +99,6 @@ class PodmanAttributeProvider(ArtifactAttributeSetProvider):
100
99
  artifact.podman.unapply(task, artifact)
101
100
 
102
101
 
103
- class PodmanClient(Download):
104
- """ Task: Downloads and publishes the Podman command line client.
105
-
106
- The task will be automatically made available after importing
107
- ``jolt.plugins.podman``.
108
- """
109
-
110
- name = "podman/cli"
111
- """ Name of the task """
112
-
113
- arch = Parameter("x86_64", help="Host architecture")
114
- """ Host architecture [x86_64] """
115
-
116
- collect = ["podman/podman"]
117
-
118
- host = Parameter(system().lower(), help="Host operating system")
119
- """ Host operating system [autodetected] """
120
-
121
- url = "https://download.podman.com/{host}/static/stable/{arch}/podman-{version}.tgz"
122
- """ URL of binaries """
123
-
124
- version = Parameter("20.10.13", help="Podman version")
125
- """ Podman version [20.10.13] """
126
-
127
- def publish(self, artifact, tools):
128
- super().publish(artifact, tools)
129
- artifact.environ.PATH.append("podman")
130
-
131
-
132
102
  @attributes.requires("_image")
133
103
  class Container(Resource):
134
104
  """
@@ -344,8 +314,6 @@ class PodmanLogin(Resource):
344
314
  name = "podman/login"
345
315
  """ Name of the resource """
346
316
 
347
- requires = ["podman/cli"]
348
-
349
317
  user = Parameter("", help="Podman Registry username")
350
318
  """
351
319
  Podman Registry username.
@@ -385,7 +353,6 @@ class PodmanLogin(Resource):
385
353
  tools.run("podman logout {server}")
386
354
 
387
355
 
388
- TaskRegistry.get().add_task_class(PodmanClient)
389
356
  TaskRegistry.get().add_task_class(PodmanLogin)
390
357
 
391
358
 
@@ -445,7 +412,6 @@ class ContainerImage(Task):
445
412
 
446
413
  Optionally add requirements to:
447
414
 
448
- - ``podman/cli`` to provision the Podman client, if none is available on the host.
449
415
  - ``podman/login`` to automatically login to the Podman registry.
450
416
 
451
417
  This class must be subclassed.
@@ -468,7 +434,6 @@ class ContainerImage(Task):
468
434
  class Busybox(ContainerImage):
469
435
  \"\"\" Publishes Busybox image as gzip-compressed tarball \"\"\"
470
436
  compression = "gz"
471
- requires = ["podman/cli"]
472
437
  tags = ["busybox:{identity}"]
473
438
 
474
439
  """
jolt/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.9.373"
1
+ __version__ = "0.9.388"
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: jolt
3
- Version: 0.9.373
3
+ Version: 0.9.388
4
4
  Summary: A task executor
5
5
  Home-page: https://github.com/srand/jolt
6
6
  Author: Robert Andersson
@@ -66,6 +66,16 @@ Requires-Dist: sphinx-click; extra == "doc"
66
66
  Requires-Dist: sphinx-rtd-theme; extra == "doc"
67
67
  Provides-Extra: test
68
68
  Requires-Dist: coverage; extra == "test"
69
+ Dynamic: author
70
+ Dynamic: author-email
71
+ Dynamic: classifier
72
+ Dynamic: description
73
+ Dynamic: home-page
74
+ Dynamic: keywords
75
+ Dynamic: provides-extra
76
+ Dynamic: requires-dist
77
+ Dynamic: requires-python
78
+ Dynamic: summary
69
79
 
70
80
  Jolt
71
81
  ============================
@@ -1,8 +1,8 @@
1
1
  jolt/__init__.py,sha256=C1WNj-iUNT1gtK2v7zxlnyMLW9dsYcM_yzlltJEYY6Y,3267
2
2
  jolt/__main__.py,sha256=sAASLJ5dhK8jTKwh1vWAGQ2-qgLEgrAQlR-hIC75Ze0,1670
3
- jolt/cache.py,sha256=WwYkOhuSDF8M_cUjnij6Sj7rMUi6Lk6x2sg1iir9_hw,79401
3
+ jolt/cache.py,sha256=rzacqo-Foq6yD3-k2aazxAQszYX2XK96sdPzegfV-og,79402
4
4
  jolt/chroot.py,sha256=lnejhnjO3takDBZewBOvVlN2e8GWKhXnjFlqQp_zAJ4,4666
5
- jolt/cli.py,sha256=SQUk1v0g4if1ZM-odlYWJquELMExZ3jVgxUXhton-GE,41867
5
+ jolt/cli.py,sha256=b_jbDTaGnbxEdZvxhLH7TPTYjGyaMWVTdE3r6GU2G_k,42966
6
6
  jolt/colors.py,sha256=P6vhaILGoOn8odEwQ6-z871YQoTe3HRLgS6clavwVHs,737
7
7
  jolt/common_pb2.py,sha256=Oe9cyZ4qNyS2aTunjiO7tAO3XVw8XkZ1M7TaTmss3bs,6335
8
8
  jolt/common_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
@@ -14,7 +14,7 @@ jolt/graph.py,sha256=7OCfz_Q00tV1ewGUKjwKIhk6nbfd0KemprFTs3n3XTQ,45978
14
14
  jolt/hooks.py,sha256=jcCaNwlyFrWkXrO6MiO_roDQVohefbablfXnuQ3dmmM,11029
15
15
  jolt/influence.py,sha256=c5Vdizk9kK-8O7cSU9LAHhh8xkvchudstBn7HLIr9hg,16937
16
16
  jolt/inspection.py,sha256=QkOCXAbjJBdw1SMsb6xH_3GHXV5BcdzaGD7HrGmOJss,3931
17
- jolt/loader.py,sha256=F8JDCPjl4gdjs9X23iVb94iIqkasYTeEVaTjwfkmMH8,18962
17
+ jolt/loader.py,sha256=-WpYcYDhdZBAncgtn9MPUMudOn2dr-nsWj9KEDKet-8,19152
18
18
  jolt/log.py,sha256=cqEfX__AWSA4onueTTdoL4HnovEtzT4yoRoyKQk2MH8,14592
19
19
  jolt/manifest.py,sha256=V5fkvTE-cZt0IQbA8sBdC4WEaYrz7FEXQdSt6Uj-DWc,7256
20
20
  jolt/options.py,sha256=BrsyKsj3sY5qogMreHGgbimQuyGjnyilCa8QXPVm1Y0,947
@@ -23,7 +23,7 @@ jolt/tasks.py,sha256=fD-huf0h0xN5x3MjClaZMRDPuhjwHeF3SBnqXXlHjtM,115888
23
23
  jolt/timer.py,sha256=PE-7vmsqZpF73e_cKSsrhd36-A7fJ9_XGYI_oBWJn5w,644
24
24
  jolt/tools.py,sha256=LpmBzeQCl--7y2wAbe1flufUfO7wDeP7v4tqzgbvdaI,80097
25
25
  jolt/utils.py,sha256=6TphNzqr2AAQ55bGDD36YoJSi8qQM3FRkrY1iIkhtNA,18771
26
- jolt/version.py,sha256=RYK5zO_o7KDGDj7bwALue6eJUFIyieMoDm0Mi08R0ko,24
26
+ jolt/version.py,sha256=VDALzYR873jrSkhL4aSgbdpIzeADa7QF8BODCJQ4kuo,24
27
27
  jolt/version_utils.py,sha256=tNCGT6ZmSGFHW1aw2Hx1l19m-RR1UnTN6xJV1I54KRw,3900
28
28
  jolt/xmldom.py,sha256=SbygiDUMYczzWGxXa60ZguWS6Nztg8gDAirdbtjT15I,5982
29
29
  jolt/bin/fstree-darwin-x86_64,sha256=i4Ppbdr7CxsEhJzWpy3GMB5Gn5ikmskh41MyUwQS3-o,29549000
@@ -41,7 +41,7 @@ jolt/plugins/conan.py,sha256=5d7TdQBV1dcwTFfyW-U3jrfJDTpLbnp08Ltra1zTZyc,16259
41
41
  jolt/plugins/cxx.py,sha256=UqcBIcjCphRB2ojknU4v5vRv_6i3CmIAFZS1T3dXWVc,30487
42
42
  jolt/plugins/cxxinfo.py,sha256=yuHkgT2Lqg2v1GmrjINXBF--KeSOfMya7_HN8AA2hbw,2398
43
43
  jolt/plugins/dashboard.py,sha256=5XxU7J33htfc7rxPXTob37rOpehtWZh6N-HVlNHAluM,642
44
- jolt/plugins/docker.py,sha256=JYgwAHczci25JO0MeJ_E8G7t0ZcJQEvu87jYi9ZLJqw,21100
44
+ jolt/plugins/docker.py,sha256=cVzX9EYsk0DSkSnkArwjhZ7iVfUTYOfLyMoO2uGvdhs,21100
45
45
  jolt/plugins/email.py,sha256=esONwpn7xKJLh4SYGZ0GpSZ2UwzWsckfsAPCeYdZSVw,3549
46
46
  jolt/plugins/email.xslt,sha256=3vrrfnG-KH_cfJq6RDOXHKQxKd-6s28qy4znapGaciM,8513
47
47
  jolt/plugins/environ.py,sha256=k382rvEKWj-nlibJcCUWcYtYheU8p9df9ZY0DAAkjDE,3561
@@ -58,7 +58,7 @@ jolt/plugins/ninja-compdb.py,sha256=Otxz-nQnJx-aAPuAf8-T0AOi_34ENHGb5gypGVVGFB0,
58
58
  jolt/plugins/ninja.py,sha256=7ToQS3Pl81R2qoSRvGvWlkITONjOwV2wRklrB64wURQ,102787
59
59
  jolt/plugins/nodejs.py,sha256=HHDbvmdlqnao3qOtpCD9UY7iyTIX4gb2WxKUBtn-3cM,1879
60
60
  jolt/plugins/paths.py,sha256=DgiPI5K5bV3lVuyNEMIjRO26iTwf6RL5-2WPQ3rSmj8,1920
61
- jolt/plugins/podman.py,sha256=w9dEY0sfR4tiE5MMd2K272JyrI8yN3UkDuUQkYK8SSI,23073
61
+ jolt/plugins/podman.py,sha256=vxcR9-X4MtMLrejgwZCH80TAS7SujFVx5NeTXCHqoGk,21975
62
62
  jolt/plugins/python.py,sha256=kLx1Y3ezMH9AOW36DH_cNyDlvbIdTkyvPjwLYolnCEU,3073
63
63
  jolt/plugins/report.py,sha256=EiPuZSoxEM-fXDsHBQuRTf1xtvN_gPBodMej3E9CGx0,2695
64
64
  jolt/plugins/scheduler.py,sha256=SJdRb0taOF4zhKkPfc9zg8UyvDn7rJYtbyMPC93XXsk,24560
@@ -85,8 +85,8 @@ jolt/templates/cxxexecutable.cmake.template,sha256=f0dg1VOFlamlF8fuHFTki5dsJ2ssS
85
85
  jolt/templates/cxxlibrary.cmake.template,sha256=GMEG2G3QoY3E5fsNer52zOqgM221-abeCkV__mVbZ94,1750
86
86
  jolt/templates/export.sh.template,sha256=PKkflGXFbq70EIsowqcnLvzbnEDnqh_WgC4E_JNT0VE,1937
87
87
  jolt/templates/timeline.html.template,sha256=xdqvFBmhE8XRQaWgcIFBVbd__9HdRq6O-U0o276PyjU,1222
88
- jolt-0.9.373.dist-info/METADATA,sha256=Dwyjtlg8IPfyv4-cn2zgtv-3NdQTb_AXm0R_wTeEcT0,5558
89
- jolt-0.9.373.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
90
- jolt-0.9.373.dist-info/entry_points.txt,sha256=VZ-QH38Z9HJc1O57wfzr-soHn6exwc3N0TSrRum4tYg,44
91
- jolt-0.9.373.dist-info/top_level.txt,sha256=HwzVmAwUrvCUUHRi3zUfcpdKTsdNrZmPCvsrsWSFyqE,5
92
- jolt-0.9.373.dist-info/RECORD,,
88
+ jolt-0.9.388.dist-info/METADATA,sha256=I0CrIvzF7vxCOfmUzyfVptV0pHRVYxA9pMBrFish5DY,5763
89
+ jolt-0.9.388.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
90
+ jolt-0.9.388.dist-info/entry_points.txt,sha256=VZ-QH38Z9HJc1O57wfzr-soHn6exwc3N0TSrRum4tYg,44
91
+ jolt-0.9.388.dist-info/top_level.txt,sha256=HwzVmAwUrvCUUHRi3zUfcpdKTsdNrZmPCvsrsWSFyqE,5
92
+ jolt-0.9.388.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5