jolt 0.9.439__tar.gz → 0.9.444__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.
- {jolt-0.9.439 → jolt-0.9.444}/PKG-INFO +2 -1
- {jolt-0.9.439 → jolt-0.9.444}/jolt/graph.py +3 -3
- {jolt-0.9.439 → jolt-0.9.444}/jolt/influence.py +8 -9
- {jolt-0.9.439 → jolt-0.9.444}/jolt/loader.py +1 -1
- jolt-0.9.444/jolt/pkgs/blake3.py +15 -0
- jolt-0.9.444/jolt/pkgs/brotli.py +20 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/curl.py +8 -1
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/grpc.py +0 -4
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/poco.py +1 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/protobuf.py +1 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/allure.py +6 -6
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/ninja.py +2 -2
- {jolt-0.9.439 → jolt-0.9.444}/jolt/tasks.py +12 -12
- {jolt-0.9.439 → jolt-0.9.444}/jolt/tools.py +15 -10
- {jolt-0.9.439 → jolt-0.9.444}/jolt/utils.py +23 -9
- jolt-0.9.444/jolt/version.py +1 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt.egg-info/PKG-INFO +2 -1
- {jolt-0.9.439 → jolt-0.9.444}/jolt.egg-info/SOURCES.txt +2 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt.egg-info/requires.txt +1 -0
- {jolt-0.9.439 → jolt-0.9.444}/setup.py +1 -0
- jolt-0.9.439/jolt/version.py +0 -1
- {jolt-0.9.439 → jolt-0.9.444}/README.rst +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/__init__.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/__main__.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/bin/fstree-darwin-x86_64 +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/bin/fstree-linux-x86_64 +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/cache.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/chroot.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/cli.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/colors.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/common_pb2.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/common_pb2_grpc.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/config.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/error.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/expires.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/filesystem.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/hooks.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/inspection.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/log.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/manifest.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/options.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/__init__.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/abseil.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/asio.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/autoconf.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/automake.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/b2.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/boost.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/boringssl.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/busybox.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/bzip2.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/cares.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/catch2.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/cbindgen.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/cista.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/clang.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/cli11.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/cmake.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/cpython.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/crun.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/dbus.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/double_conversion.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/fastfloat.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/ffmpeg.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/flatbuffers.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/fmt.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/fstree.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/gflags.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/glib.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/glog.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/glslang.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/golang.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/googlebenchmark.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/googletest.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/gperf.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/hdf5.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/help2man.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/inja.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/jsoncpp.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libarchive.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libcap.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libdrm.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libedit.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libevent.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libexpat.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libfastjson.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libffi.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libglvnd.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libogg.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libpciaccess.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libseccomp.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libtirpc.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libtool.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libunwind.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libva.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libvorbis.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libxml2.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libxslt.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/libyajl.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/llvm.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/lua.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/lz4.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/m4.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/make.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/mesa.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/meson.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/mstch.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/mysql.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/nasm.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/ncurses.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/ng_log.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/ninja.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/nlohmann_json.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/nodejs.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/opencv.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/openjdk.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/openssl.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/paho.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/patchelf.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/perl.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/pkgconfig.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/pugixml.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/python.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/qt.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/rapidjson.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/rapidyaml.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/re2.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/re2c.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/readline.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/rust.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/sdl.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/simdjson.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/soci.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/spdlog.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/spirv_llvm.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/spirv_tools.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/sqlite.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/ssl.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/texinfo.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/tomlplusplus.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/wayland.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/x11.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/xerces_c.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/xorg.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/xz.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/yamlcpp.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/zeromq.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/zlib.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/pkgs/zstd.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/__init__.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/alias.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/autotools.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/autoweight.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/cache.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/cmake.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/conan.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/cxx.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/cxxinfo.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/dashboard.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/docker.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/email.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/email.xslt +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/environ.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/fetch.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/gdb.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/gerrit.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/git.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/golang.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/googletest.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/http.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/junit.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/libtool.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/linux.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/logstash.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/meson.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/ninja-compdb.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/nodejs.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/paths.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/pkgconfig.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/podman.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/python.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/remote_execution/__init__.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/remote_execution/administration_pb2.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/remote_execution/administration_pb2_grpc.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/remote_execution/log_pb2.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/remote_execution/log_pb2_grpc.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/remote_execution/scheduler_pb2.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/remote_execution/scheduler_pb2_grpc.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/remote_execution/worker_pb2.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/remote_execution/worker_pb2_grpc.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/report.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/rust.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/scheduler.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/selfdeploy.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/strings.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/symlinks.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/telemetry.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/timeline.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/volume.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/yaml-ninja.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/plugins/yamltask.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/scheduler.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/templates/cxxexecutable.cmake.template +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/templates/cxxlibrary.cmake.template +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/templates/export.sh.template +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/templates/timeline.html.template +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/timer.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/version_utils.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt/xmldom.py +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt.egg-info/dependency_links.txt +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt.egg-info/entry_points.txt +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/jolt.egg-info/top_level.txt +0 -0
- {jolt-0.9.439 → jolt-0.9.444}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jolt
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.444
|
|
4
4
|
Summary: A task executor
|
|
5
5
|
Home-page: https://github.com/srand/jolt
|
|
6
6
|
Author: Robert Andersson
|
|
@@ -33,6 +33,7 @@ Requires-Dist: SecretStorage==3.3.3
|
|
|
33
33
|
Requires-Dist: allure-python-commons==2.13.5
|
|
34
34
|
Requires-Dist: attrs==24.2.0
|
|
35
35
|
Requires-Dist: backports.tarfile==1.2.0
|
|
36
|
+
Requires-Dist: blake3==1.0.8
|
|
36
37
|
Requires-Dist: bottle==0.12.25
|
|
37
38
|
Requires-Dist: brotli==1.2.0
|
|
38
39
|
Requires-Dist: bz2file==0.98
|
|
@@ -139,9 +139,9 @@ class TaskProxy(object):
|
|
|
139
139
|
if c.is_workspace_resource():
|
|
140
140
|
c.task.acquire_ws()
|
|
141
141
|
|
|
142
|
-
|
|
143
|
-
HashInfluenceRegistry.get().apply_all(self.task,
|
|
144
|
-
self.task.identity =
|
|
142
|
+
hash = utils.hashfn()
|
|
143
|
+
HashInfluenceRegistry.get().apply_all(self.task, hash)
|
|
144
|
+
self.task.identity = hash.hexdigest()
|
|
145
145
|
|
|
146
146
|
return str(self.task.identity)
|
|
147
147
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import datetime
|
|
2
|
-
import hashlib
|
|
3
2
|
import os
|
|
4
3
|
from pathlib import Path, PurePath
|
|
5
4
|
|
|
@@ -158,17 +157,17 @@ class TaskSourceInfluence(HashInfluenceProvider):
|
|
|
158
157
|
else:
|
|
159
158
|
funcs = []
|
|
160
159
|
|
|
161
|
-
# Calculate
|
|
162
|
-
|
|
160
|
+
# Calculate hash sum for all functions
|
|
161
|
+
sum = ""
|
|
163
162
|
for func in funcs:
|
|
164
163
|
try:
|
|
165
164
|
func.__influence
|
|
166
165
|
except AttributeError:
|
|
167
|
-
func.__influence = utils.
|
|
166
|
+
func.__influence = utils.hashstring(inspection.getfuncsource(func))
|
|
168
167
|
finally:
|
|
169
|
-
|
|
168
|
+
sum += func.__influence
|
|
170
169
|
|
|
171
|
-
return
|
|
170
|
+
return utils.hashstring(sum) + ": " + funcname
|
|
172
171
|
|
|
173
172
|
|
|
174
173
|
def source(name, obj=None):
|
|
@@ -271,7 +270,7 @@ class TaskClassSourceInfluence(HashInfluenceProvider):
|
|
|
271
270
|
name = "Source"
|
|
272
271
|
|
|
273
272
|
def get_influence(self, task):
|
|
274
|
-
# Calculate
|
|
273
|
+
# Calculate hash sum for classes in hierarchy
|
|
275
274
|
result = ""
|
|
276
275
|
for cls in reversed(task.__class__.mro()):
|
|
277
276
|
if cls is object:
|
|
@@ -280,7 +279,7 @@ class TaskClassSourceInfluence(HashInfluenceProvider):
|
|
|
280
279
|
cls.__dict__["_TaskClassSourceInfluence__influence"]
|
|
281
280
|
except KeyError:
|
|
282
281
|
try:
|
|
283
|
-
cls.__influence = utils.
|
|
282
|
+
cls.__influence = utils.hashstring(inspection.getclasssource(cls))
|
|
284
283
|
except TypeError:
|
|
285
284
|
continue
|
|
286
285
|
result += cls.__dict__["_TaskClassSourceInfluence__influence"] + \
|
|
@@ -529,7 +528,7 @@ class FileInfluence(HashInfluenceProvider):
|
|
|
529
528
|
self._files = {}
|
|
530
529
|
|
|
531
530
|
def get_file_influence(self, path):
|
|
532
|
-
return utils.
|
|
531
|
+
return utils.hashfile(str(path))
|
|
533
532
|
|
|
534
533
|
def get_filelist(self, task):
|
|
535
534
|
try:
|
|
@@ -462,7 +462,7 @@ def export_workspace(tasks=None) -> common_pb.Workspace:
|
|
|
462
462
|
with tools.cwd(loader.workspace_path):
|
|
463
463
|
cwd = tools.getcwd()
|
|
464
464
|
cachedir = config.get_cachedir()
|
|
465
|
-
indexhash = utils.
|
|
465
|
+
indexhash = utils.hashstring(cwd)
|
|
466
466
|
indexfile = tools.expand_path(
|
|
467
467
|
"{cachedir}/indexes/{}/{}",
|
|
468
468
|
indexhash[:2], indexhash[2:],
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from jolt import attributes, Parameter
|
|
2
|
+
from jolt.plugins import cmake, git
|
|
3
|
+
from jolt.tasks import TaskRegistry
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@attributes.requires("requires_git")
|
|
7
|
+
@cmake.requires()
|
|
8
|
+
class Blake3(cmake.CMake):
|
|
9
|
+
name = "blake3"
|
|
10
|
+
version = Parameter("1.8.3", help="blake3 version.")
|
|
11
|
+
requires_git = ["git:url=https://github.com/BLAKE3-team/BLAKE3.git,rev={version}"]
|
|
12
|
+
srcdir = "{git[BLAKE3]}/c"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
TaskRegistry.get().add_task_class(Blake3)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from jolt import attributes, BooleanParameter, Parameter
|
|
2
|
+
from jolt.plugins import git, cmake
|
|
3
|
+
from jolt.tasks import TaskRegistry
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@attributes.requires("requires_git")
|
|
7
|
+
@cmake.requires()
|
|
8
|
+
@cmake.use_ninja()
|
|
9
|
+
class Brotli(cmake.CMake):
|
|
10
|
+
name = "brotli"
|
|
11
|
+
version = Parameter("1.2.0", help="Brotli version.")
|
|
12
|
+
shared = BooleanParameter(False, help="Build shared libraries.")
|
|
13
|
+
requires_git = ["git:url=https://github.com/google/brotli.git,rev=v{version},submodules=true"]
|
|
14
|
+
srcdir = "{git[brotli]}"
|
|
15
|
+
options = [
|
|
16
|
+
"BUILD_SHARED_LIBS={shared[ON,OFF]}",
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
TaskRegistry.get().add_task_class(Brotli)
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
from jolt import attributes, BooleanParameter, Parameter
|
|
2
|
-
from jolt.pkgs import
|
|
2
|
+
from jolt.pkgs import brotli, ssl, zlib, zstd
|
|
3
3
|
from jolt.plugins import git, cmake
|
|
4
4
|
from jolt.tasks import TaskRegistry
|
|
5
5
|
|
|
6
6
|
|
|
7
|
+
@attributes.requires("requires_brotli")
|
|
7
8
|
@attributes.requires("requires_git")
|
|
8
9
|
@attributes.requires("requires_ssl")
|
|
10
|
+
@attributes.requires("requires_zlib")
|
|
11
|
+
@attributes.requires("requires_zstd")
|
|
9
12
|
@attributes.system
|
|
10
13
|
@cmake.requires()
|
|
11
14
|
@cmake.use_ninja()
|
|
@@ -13,12 +16,16 @@ class Curl(cmake.CMake):
|
|
|
13
16
|
name = "curl"
|
|
14
17
|
version = Parameter("8.17.0", help="Curl version.")
|
|
15
18
|
shared = BooleanParameter(False, help="Build shared libraries.")
|
|
19
|
+
requires_brotli = ["brotli"]
|
|
16
20
|
requires_git = ["git:url=https://github.com/curl/curl.git,rev=curl-{_version_tag},submodules=true"]
|
|
17
21
|
requires_ssl = ["virtual/ssl"]
|
|
22
|
+
requires_zlib = ["virtual/zlib"]
|
|
23
|
+
requires_zstd = ["zstd"]
|
|
18
24
|
srcdir = "{git[curl]}"
|
|
19
25
|
options = [
|
|
20
26
|
"BUILD_SHARED_LIBS={shared[ON,OFF]}",
|
|
21
27
|
"CURL_USE_LIBPSL=OFF",
|
|
28
|
+
"USE_LIBIDN2=OFF",
|
|
22
29
|
]
|
|
23
30
|
|
|
24
31
|
@property
|
|
@@ -56,8 +56,6 @@ class GrpcC(Task):
|
|
|
56
56
|
extends = "grpc"
|
|
57
57
|
|
|
58
58
|
def publish(self, artifact, tools):
|
|
59
|
-
if self.system == "windows":
|
|
60
|
-
artifact.cxxinfo.msvcrt = "Dynamic"
|
|
61
59
|
artifact.cxxinfo.libraries.append("grpc")
|
|
62
60
|
|
|
63
61
|
|
|
@@ -66,8 +64,6 @@ class GrpcCXX(Task):
|
|
|
66
64
|
extends = "grpc"
|
|
67
65
|
|
|
68
66
|
def publish(self, artifact, tools):
|
|
69
|
-
if self.system == "windows":
|
|
70
|
-
artifact.cxxinfo.msvcrt = "Dynamic"
|
|
71
67
|
artifact.cxxinfo.libraries.append("grpc++")
|
|
72
68
|
|
|
73
69
|
|
|
@@ -40,7 +40,7 @@ class _ReporterTest(object):
|
|
|
40
40
|
|
|
41
41
|
def attach(self, name, content, mime_type=None):
|
|
42
42
|
with self._task.tools.cwd(self._outdirfull):
|
|
43
|
-
logpath = utils.
|
|
43
|
+
logpath = utils.hashstring(content) + "-" + name
|
|
44
44
|
self._task.tools.write_file(logpath, content, expand=False)
|
|
45
45
|
self._result.attachments.append(
|
|
46
46
|
Attachment(source=logpath, name=name, type=mime_type))
|
|
@@ -96,8 +96,8 @@ class Reporter(object):
|
|
|
96
96
|
result.name = name
|
|
97
97
|
result.start = time.time() * 1000
|
|
98
98
|
result.fullName = self._task.__class__.__name__ + "." + name
|
|
99
|
-
result.testCaseId = utils.
|
|
100
|
-
result.historyId = utils.
|
|
99
|
+
result.testCaseId = utils.hashstring(result.fullName)
|
|
100
|
+
result.historyId = utils.hashstring(self._task.qualified_name + result.testCaseId)
|
|
101
101
|
result.description = description
|
|
102
102
|
result.labels.append(Label(name=LabelType.HOST, value=self._host))
|
|
103
103
|
result.labels.append(Label(name=LabelType.THREAD, value=self._thread))
|
|
@@ -202,8 +202,8 @@ class AllureHooks(TaskHook):
|
|
|
202
202
|
result.start = time.time() * 1000
|
|
203
203
|
result.fullName = task.qualified_name
|
|
204
204
|
result.description = task.task.__doc__
|
|
205
|
-
result.testCaseId = utils.
|
|
206
|
-
result.historyId = utils.
|
|
205
|
+
result.testCaseId = utils.hashstring(result.fullName)
|
|
206
|
+
result.historyId = utils.hashstring(task.qualified_name + result.testCaseId)
|
|
207
207
|
result.labels.append(Label(name=LabelType.HOST, value=host_tag()))
|
|
208
208
|
result.labels.append(Label(name=LabelType.THREAD, value=thread_tag()))
|
|
209
209
|
result.labels.append(Label(name=LabelType.FRAMEWORK, value='jolt'))
|
|
@@ -217,7 +217,7 @@ class AllureHooks(TaskHook):
|
|
|
217
217
|
with task.tools.cwd(self._logpath):
|
|
218
218
|
content = task.allure_logsink_buffer.getvalue()
|
|
219
219
|
if content:
|
|
220
|
-
logpath = utils.
|
|
220
|
+
logpath = utils.hashstring(content) + "-" + "log"
|
|
221
221
|
task.tools.write_file(logpath, content, expand=False)
|
|
222
222
|
result.attachments.append(
|
|
223
223
|
Attachment(source=logpath, name="log", type="text/plain"))
|
|
@@ -1281,7 +1281,7 @@ class FileListWriter(Rule):
|
|
|
1281
1281
|
|
|
1282
1282
|
def _data(self, project, files):
|
|
1283
1283
|
data = "\n".join(files)
|
|
1284
|
-
return data, utils.
|
|
1284
|
+
return data, utils.hashstring(data)
|
|
1285
1285
|
|
|
1286
1286
|
def build(self, project, writer, infiles, implicit=None, order_only=None):
|
|
1287
1287
|
infiles = [fs.as_posix(infile) for infile in infiles] if self.posix else infiles
|
|
@@ -1320,7 +1320,7 @@ class GNUMRIWriter(FileListWriter):
|
|
|
1320
1320
|
else:
|
|
1321
1321
|
data += "addmod {}\n".format(infile)
|
|
1322
1322
|
data += "save\nend\n"
|
|
1323
|
-
return data, utils.
|
|
1323
|
+
return data, utils.hashstring(data)
|
|
1324
1324
|
|
|
1325
1325
|
@utils.cached.instance
|
|
1326
1326
|
def get_influence(self, task):
|
|
@@ -1977,26 +1977,26 @@ class SubTask(object):
|
|
|
1977
1977
|
|
|
1978
1978
|
@functools.cached_property
|
|
1979
1979
|
def identity(self):
|
|
1980
|
-
|
|
1980
|
+
hash = utils.hashfn()
|
|
1981
1981
|
for ident in self._identity:
|
|
1982
|
-
|
|
1982
|
+
hash.update(ident.encode())
|
|
1983
1983
|
for output in self._outputs:
|
|
1984
|
-
|
|
1984
|
+
hash.update(output.encode())
|
|
1985
1985
|
if self.message:
|
|
1986
|
-
|
|
1987
|
-
return
|
|
1986
|
+
hash.update(self.message.encode())
|
|
1987
|
+
return hash.hexdigest()
|
|
1988
1988
|
|
|
1989
1989
|
@functools.cached_property
|
|
1990
1990
|
def influence(self):
|
|
1991
|
-
|
|
1991
|
+
hash = utils.hashfn()
|
|
1992
1992
|
for infl in self._influence:
|
|
1993
1993
|
if callable(infl):
|
|
1994
|
-
|
|
1994
|
+
hash.update(infl().encode())
|
|
1995
1995
|
else:
|
|
1996
|
-
|
|
1996
|
+
hash.update(infl.encode())
|
|
1997
1997
|
for dep in self._deps:
|
|
1998
|
-
|
|
1999
|
-
return
|
|
1998
|
+
hash.update(dep.influence.encode())
|
|
1999
|
+
return hash.hexdigest()
|
|
2000
2000
|
|
|
2001
2001
|
@functools.cached_property
|
|
2002
2002
|
def is_outdated(self):
|
|
@@ -2049,7 +2049,7 @@ class SubTask(object):
|
|
|
2049
2049
|
|
|
2050
2050
|
def add_influence_file(self, path):
|
|
2051
2051
|
path = self._tools.expand_path(path)
|
|
2052
|
-
self.add_influence(utils.
|
|
2052
|
+
self.add_influence(utils.hashfile(path))
|
|
2053
2053
|
|
|
2054
2054
|
def add_influence_depfile(self, path):
|
|
2055
2055
|
def depfile():
|
|
@@ -2062,7 +2062,7 @@ class SubTask(object):
|
|
|
2062
2062
|
for output in self.outputs:
|
|
2063
2063
|
for input in deps.get(output, []):
|
|
2064
2064
|
input = self._tools.expand_path(input)
|
|
2065
|
-
result += utils.
|
|
2065
|
+
result += utils.hashfile(input)
|
|
2066
2066
|
return result
|
|
2067
2067
|
self.add_influence(depfile)
|
|
2068
2068
|
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import py7zr
|
|
2
|
+
import blake3
|
|
2
3
|
import bz2
|
|
3
4
|
import copy
|
|
4
5
|
import getpass
|
|
5
6
|
import gzip
|
|
6
7
|
import json
|
|
7
8
|
import lzma
|
|
9
|
+
import mmap
|
|
8
10
|
import subprocess
|
|
9
11
|
import os
|
|
10
12
|
import platform
|
|
@@ -710,7 +712,7 @@ class Tools(object):
|
|
|
710
712
|
from jolt.loader import JoltLoader
|
|
711
713
|
return fs.path.normpath(JoltLoader.get().build_path)
|
|
712
714
|
|
|
713
|
-
def checksum_file(self, filelist, concat=False, hashfn=
|
|
715
|
+
def checksum_file(self, filelist, concat=False, hashfn=blake3.blake3):
|
|
714
716
|
""" Calculate a checksum of one or multiple files.
|
|
715
717
|
|
|
716
718
|
Args:
|
|
@@ -718,24 +720,27 @@ class Tools(object):
|
|
|
718
720
|
concat (boolean): Concatenate files and return a single digest. If False,
|
|
719
721
|
a list with one digest for each file is returned. Default: False.
|
|
720
722
|
hashfn: The hash algorithm used. Any type which provides an update() and
|
|
721
|
-
hexdigest() method is accepted. Default:
|
|
722
|
-
filterfn: An optional data filter function. It is called repeatedly
|
|
723
|
-
with each block of data read from files as its only argument.
|
|
724
|
-
It should return the data to be included in the checksum.
|
|
725
|
-
Default: None
|
|
723
|
+
hexdigest() method is accepted. Default: blake3
|
|
726
724
|
|
|
727
725
|
Returns:
|
|
728
726
|
A list of checksum digests, or a single digest if files where concatenated.
|
|
729
727
|
"""
|
|
730
728
|
files = [self.expand_path(fname) for fname in utils.as_list(filelist)]
|
|
731
|
-
filterfn = filterfn or (lambda data: data)
|
|
732
729
|
result = []
|
|
733
|
-
checksum = hashfn()
|
|
734
730
|
|
|
735
731
|
for fname in files:
|
|
732
|
+
checksum = hashfn()
|
|
736
733
|
with open(fname, "rb") as f:
|
|
737
|
-
|
|
738
|
-
|
|
734
|
+
mm = None
|
|
735
|
+
try:
|
|
736
|
+
mm = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
|
|
737
|
+
checksum.update(mm)
|
|
738
|
+
except ValueError:
|
|
739
|
+
# File is empty
|
|
740
|
+
pass
|
|
741
|
+
finally:
|
|
742
|
+
if mm is not None:
|
|
743
|
+
mm.close()
|
|
739
744
|
result.append(checksum.hexdigest())
|
|
740
745
|
if not concat:
|
|
741
746
|
checksum = hashfn()
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import blake3
|
|
1
2
|
import contextlib
|
|
2
3
|
import ctypes
|
|
3
4
|
import fnmatch
|
|
5
|
+
import mmap
|
|
4
6
|
import re
|
|
5
7
|
import time
|
|
6
8
|
from concurrent.futures import ThreadPoolExecutor, as_completed
|
|
@@ -515,18 +517,30 @@ def map_concurrent(method, iterable, *args, **kwargs):
|
|
|
515
517
|
return [future.result() for future in futures]
|
|
516
518
|
|
|
517
519
|
|
|
518
|
-
def
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
return
|
|
520
|
+
def hashstring(string, hashfn=blake3.blake3):
|
|
521
|
+
hash = hashfn()
|
|
522
|
+
hash.update(string.encode())
|
|
523
|
+
return hash.hexdigest()
|
|
522
524
|
|
|
523
525
|
|
|
524
|
-
def
|
|
525
|
-
|
|
526
|
+
def hashfile(path, hashfn=blake3.blake3):
|
|
527
|
+
hash = hashfn()
|
|
526
528
|
with open(path, "rb") as f:
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
529
|
+
mm = None
|
|
530
|
+
try:
|
|
531
|
+
mm = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
|
|
532
|
+
hash.update(mm)
|
|
533
|
+
except ValueError:
|
|
534
|
+
# File is empty
|
|
535
|
+
pass
|
|
536
|
+
finally:
|
|
537
|
+
if mm is not None:
|
|
538
|
+
mm.close()
|
|
539
|
+
return hash.hexdigest()
|
|
540
|
+
|
|
541
|
+
|
|
542
|
+
def hashfn(hashfn=blake3.blake3):
|
|
543
|
+
return hashfn()
|
|
530
544
|
|
|
531
545
|
|
|
532
546
|
def fromjson(filepath, ignore_errors=False):
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.9.444"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jolt
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.444
|
|
4
4
|
Summary: A task executor
|
|
5
5
|
Home-page: https://github.com/srand/jolt
|
|
6
6
|
Author: Robert Andersson
|
|
@@ -33,6 +33,7 @@ Requires-Dist: SecretStorage==3.3.3
|
|
|
33
33
|
Requires-Dist: allure-python-commons==2.13.5
|
|
34
34
|
Requires-Dist: attrs==24.2.0
|
|
35
35
|
Requires-Dist: backports.tarfile==1.2.0
|
|
36
|
+
Requires-Dist: blake3==1.0.8
|
|
36
37
|
Requires-Dist: bottle==0.12.25
|
|
37
38
|
Requires-Dist: brotli==1.2.0
|
|
38
39
|
Requires-Dist: bz2file==0.98
|
jolt-0.9.439/jolt/version.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.9.439"
|
|
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
|
|
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
|