redis-benchmarks-specification 0.1.79__tar.gz → 0.1.80__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.
Potentially problematic release.
This version of redis-benchmarks-specification might be problematic. Click here for more details.
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/PKG-INFO +1 -1
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/pyproject.toml +1 -1
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__common__/github.py +59 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__self_contained_coordinator__/args.py +4 -1
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py +78 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/LICENSE +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/Readme.md +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__api__/Readme.md +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__api__/__init__.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__api__/api.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__api__/app.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__builder__/Readme.md +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__builder__/__init__.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__builder__/builder.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__builder__/schema.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__cli__/__init__.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__cli__/args.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__cli__/cli.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__cli__/stats.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__common__/__init__.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__common__/builder_schema.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__common__/env.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__common__/package.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__common__/runner.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__common__/spec.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__compare__/__init__.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__compare__/args.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__compare__/compare.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__init__.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__runner__/__init__.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__runner__/args.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__runner__/runner.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__self_contained_coordinator__/__init__.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__self_contained_coordinator__/artifacts.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__self_contained_coordinator__/build_info.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__self_contained_coordinator__/clients.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__self_contained_coordinator__/cpuset.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__self_contained_coordinator__/docker.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__self_contained_coordinator__/prepopulation.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__self_contained_coordinator__/runners.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__setups__/__init__.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__setups__/topologies.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__spec__/__init__.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__spec__/args.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__spec__/cli.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__watchdog__/__init__.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__watchdog__/args.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/__watchdog__/watchdog.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/commands/__init__.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/commands/commands.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/setups/builders/gcc:8.5.0-amd64-debian-buster-default.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/setups/builders/gcc:8.5.0-arm64-debian-buster-default.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/setups/platforms/aws-ec2-1node-c5.4xlarge.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/setups/topologies/topologies.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/defaults.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/generate.py +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-1000B-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-expire-use-case.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-exists-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expire-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expireat-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-touch-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-ttl-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hexists.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrby.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-hmset-5-fields-with-1000B-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-100B-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-10B-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-1KiB-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-100B-values-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-100B-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-1KiB-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-200KiB-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-20KiB-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-2MB-values.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-with-10-elements-int-score.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-decr.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-200KiB.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-20KiB.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-2MB.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mget-1KiB.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-pfadd-4KB-values-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smismember.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smembers.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smismember.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-smembers.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-200K-elements-sadd-constant.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-2M-elements-sadd-increasing.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrange-all-elements.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zrange-all-elements.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-lua-eval-hset-expire.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-lua-evalsha-hset-expire.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sdiff.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sinter.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sunion.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries.yml +0 -0
- {redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/redis_benchmarks_specification/test-suites/template.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: redis-benchmarks-specification
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.80
|
|
4
4
|
Summary: The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute.
|
|
5
5
|
Author: filipecosta90
|
|
6
6
|
Author-email: filipecosta.90@gmail.com
|
{redis_benchmarks_specification-0.1.79 → redis_benchmarks_specification-0.1.80}/pyproject.toml
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "redis-benchmarks-specification"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.80"
|
|
4
4
|
description = "The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute."
|
|
5
5
|
authors = ["filipecosta90 <filipecosta.90@gmail.com>","Redis Performance Group <performance@redis.com>"]
|
|
6
6
|
readme = "Readme.md"
|
|
@@ -90,6 +90,7 @@ def check_github_available_and_actionable(
|
|
|
90
90
|
|
|
91
91
|
|
|
92
92
|
def create_new_pr_comment(auto_approve, comment_body, github_pr, pr_link):
|
|
93
|
+
regression_comment = None
|
|
93
94
|
user_input = "n"
|
|
94
95
|
if auto_approve:
|
|
95
96
|
print("auto approving...")
|
|
@@ -100,6 +101,7 @@ def create_new_pr_comment(auto_approve, comment_body, github_pr, pr_link):
|
|
|
100
101
|
regression_comment = github_pr.create_comment(comment_body)
|
|
101
102
|
html_url = regression_comment.html_url
|
|
102
103
|
print("created comment. Access it via {}".format(html_url))
|
|
104
|
+
return regression_comment
|
|
103
105
|
|
|
104
106
|
|
|
105
107
|
def update_comment_if_needed(
|
|
@@ -141,3 +143,60 @@ def update_comment_if_needed(
|
|
|
141
143
|
print(
|
|
142
144
|
"Updated comment. Access it via {}".format(regression_comment.html_url)
|
|
143
145
|
)
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
def check_benchmark_build_comment(comments):
|
|
149
|
+
res = False
|
|
150
|
+
pos = -1
|
|
151
|
+
for n, comment in enumerate(comments):
|
|
152
|
+
body = comment.body
|
|
153
|
+
if "CE Performance Automation : step" in body:
|
|
154
|
+
res = True
|
|
155
|
+
pos = n
|
|
156
|
+
return res, pos
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
def check_benchmark_running_comment(comments):
|
|
160
|
+
res = False
|
|
161
|
+
pos = -1
|
|
162
|
+
for n, comment in enumerate(comments):
|
|
163
|
+
body = comment.body
|
|
164
|
+
if "CE Performance Automation : step" in body:
|
|
165
|
+
res = True
|
|
166
|
+
pos = n
|
|
167
|
+
return res, pos
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
def markdown_progress_bar(current, total, bar_length=40):
|
|
171
|
+
progress = current / total
|
|
172
|
+
block = int(round(bar_length * progress))
|
|
173
|
+
bar = "#" * block + "-" * (bar_length - block)
|
|
174
|
+
percentage = round(progress * 100, 2)
|
|
175
|
+
return f"[{bar}] {percentage}%"
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
def generate_benchmark_started_pr_comment(
|
|
179
|
+
benchmark_stream_ids,
|
|
180
|
+
total_pending,
|
|
181
|
+
total_benchmarks,
|
|
182
|
+
):
|
|
183
|
+
comment_body = (
|
|
184
|
+
"### CE Performance Automation : step 2 of 2 (benchmark) RUNNING...\n\n"
|
|
185
|
+
)
|
|
186
|
+
comment_body += (
|
|
187
|
+
"This comment was automatically generated given a benchmark was triggered.\n\n"
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
completed = total_benchmarks - total_pending
|
|
191
|
+
comment_body += (
|
|
192
|
+
f"Status: {markdown_progress_bar(completed,total_benchmarks)} pending.\n\n"
|
|
193
|
+
)
|
|
194
|
+
comment_body += f"In total will run {total_benchmarks} benchmarks.\n"
|
|
195
|
+
comment_body += f" - {total_pending} pending.\n"
|
|
196
|
+
comment_body += f" - {total_pending} completed.\n"
|
|
197
|
+
|
|
198
|
+
for benchmark_stream_id in benchmark_stream_ids:
|
|
199
|
+
benchmark_stream_id = benchmark_stream_id.decode()
|
|
200
|
+
grafana_benchmark_status_link = f"https://benchmarksredisio.grafana.net/d/edsxdsrbexhc0f/ce-benchmark-run-status?orgId=1&var-benchmark_work_stream={benchmark_stream_id}"
|
|
201
|
+
comment_body += f"You can check a the status in detail via the [grafana link]({grafana_benchmark_status_link})"
|
|
202
|
+
return comment_body
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import argparse
|
|
2
|
-
|
|
2
|
+
import os
|
|
3
3
|
from redis_benchmarks_specification.__common__.env import (
|
|
4
4
|
MACHINE_CPU_COUNT,
|
|
5
5
|
SPECS_PATH_SETUPS,
|
|
@@ -20,6 +20,8 @@ from redis_benchmarks_specification.__common__.env import (
|
|
|
20
20
|
ALLOWED_PROFILERS,
|
|
21
21
|
)
|
|
22
22
|
|
|
23
|
+
PERFORMANCE_GH_TOKEN = os.getenv("PERFORMANCE_GH_TOKEN", None)
|
|
24
|
+
|
|
23
25
|
|
|
24
26
|
def create_self_contained_coordinator_args(project_name):
|
|
25
27
|
parser = argparse.ArgumentParser(
|
|
@@ -30,6 +32,7 @@ def create_self_contained_coordinator_args(project_name):
|
|
|
30
32
|
parser.add_argument("--event_stream_port", type=int, default=GH_REDIS_SERVER_PORT)
|
|
31
33
|
parser.add_argument("--event_stream_pass", type=str, default=GH_REDIS_SERVER_AUTH)
|
|
32
34
|
parser.add_argument("--event_stream_user", type=str, default=GH_REDIS_SERVER_USER)
|
|
35
|
+
parser.add_argument("--github_token", type=str, default=PERFORMANCE_GH_TOKEN)
|
|
33
36
|
parser.add_argument(
|
|
34
37
|
"--cpu-count",
|
|
35
38
|
type=int,
|
|
@@ -25,6 +25,13 @@ from redis_benchmarks_specification.__common__.env import (
|
|
|
25
25
|
REDIS_SOCKET_TIMEOUT,
|
|
26
26
|
REDIS_BINS_EXPIRE_SECS,
|
|
27
27
|
)
|
|
28
|
+
from redis_benchmarks_specification.__common__.github import (
|
|
29
|
+
check_github_available_and_actionable,
|
|
30
|
+
check_benchmark_running_comment,
|
|
31
|
+
update_comment_if_needed,
|
|
32
|
+
create_new_pr_comment,
|
|
33
|
+
generate_benchmark_started_pr_comment,
|
|
34
|
+
)
|
|
28
35
|
from redis_benchmarks_specification.__common__.package import (
|
|
29
36
|
get_version_string,
|
|
30
37
|
populate_with_poetry_data,
|
|
@@ -219,6 +226,11 @@ def main():
|
|
|
219
226
|
arch = args.arch
|
|
220
227
|
logging.info("Running for arch: {}".format(arch))
|
|
221
228
|
|
|
229
|
+
# Github token
|
|
230
|
+
github_token = args.github_token
|
|
231
|
+
if github_token is not None:
|
|
232
|
+
logging.info("Detected GITHUB token. will push PR comments with updates")
|
|
233
|
+
|
|
222
234
|
# Docker air gap usage
|
|
223
235
|
docker_air_gap = args.docker_air_gap
|
|
224
236
|
if docker_air_gap:
|
|
@@ -270,6 +282,7 @@ def main():
|
|
|
270
282
|
override_memtier_test_time,
|
|
271
283
|
default_metrics,
|
|
272
284
|
arch,
|
|
285
|
+
github_token,
|
|
273
286
|
)
|
|
274
287
|
|
|
275
288
|
|
|
@@ -293,6 +306,7 @@ def self_contained_coordinator_blocking_read(
|
|
|
293
306
|
override_test_time=None,
|
|
294
307
|
default_metrics=None,
|
|
295
308
|
arch="amd64",
|
|
309
|
+
github_token=None,
|
|
296
310
|
):
|
|
297
311
|
num_process_streams = 0
|
|
298
312
|
num_process_test_suites = 0
|
|
@@ -339,6 +353,7 @@ def self_contained_coordinator_blocking_read(
|
|
|
339
353
|
None,
|
|
340
354
|
default_metrics,
|
|
341
355
|
arch,
|
|
356
|
+
github_token,
|
|
342
357
|
)
|
|
343
358
|
num_process_streams = num_process_streams + 1
|
|
344
359
|
num_process_test_suites = num_process_test_suites + total_test_suite_runs
|
|
@@ -411,10 +426,20 @@ def process_self_contained_coordinator_stream(
|
|
|
411
426
|
override_test_time=None,
|
|
412
427
|
default_metrics=[],
|
|
413
428
|
arch="amd64",
|
|
429
|
+
github_token=None,
|
|
414
430
|
):
|
|
415
431
|
stream_id = "n/a"
|
|
416
432
|
overall_result = False
|
|
417
433
|
total_test_suite_runs = 0
|
|
434
|
+
# github updates
|
|
435
|
+
is_actionable_pr = False
|
|
436
|
+
contains_regression_comment = False
|
|
437
|
+
github_pr = None
|
|
438
|
+
old_regression_comment_body = ""
|
|
439
|
+
pr_link = ""
|
|
440
|
+
regression_comment = None
|
|
441
|
+
pull_request = None
|
|
442
|
+
auto_approve_github = True
|
|
418
443
|
try:
|
|
419
444
|
stream_id, testDetails = newTestInfo[0][1][0]
|
|
420
445
|
stream_id = stream_id.decode()
|
|
@@ -434,6 +459,24 @@ def process_self_contained_coordinator_stream(
|
|
|
434
459
|
run_arch,
|
|
435
460
|
) = extract_build_info_from_streamdata(testDetails)
|
|
436
461
|
|
|
462
|
+
if b"pull_request" in testDetails:
|
|
463
|
+
pull_request = testDetails[b"pull_request"].decode()
|
|
464
|
+
logging.info(
|
|
465
|
+
f"detected a pull_request definition on the streamdata {pull_request}"
|
|
466
|
+
)
|
|
467
|
+
verbose = True
|
|
468
|
+
fn = check_benchmark_running_comment
|
|
469
|
+
(
|
|
470
|
+
contains_regression_comment,
|
|
471
|
+
github_pr,
|
|
472
|
+
is_actionable_pr,
|
|
473
|
+
old_regression_comment_body,
|
|
474
|
+
pr_link,
|
|
475
|
+
regression_comment,
|
|
476
|
+
) = check_github_available_and_actionable(
|
|
477
|
+
fn, github_token, pull_request, "redis", "redis", verbose
|
|
478
|
+
)
|
|
479
|
+
|
|
437
480
|
test_regexp = ".*"
|
|
438
481
|
if b"test_regexp" in testDetails:
|
|
439
482
|
test_regexp = testDetails[b"test_regexp"]
|
|
@@ -529,6 +572,24 @@ def process_self_contained_coordinator_stream(
|
|
|
529
572
|
f"Added test named {test_name} to the pending test list in key {stream_test_list_pending}"
|
|
530
573
|
)
|
|
531
574
|
filtered_test_files.append(test_file)
|
|
575
|
+
pending_tests = len(filtered_test_files)
|
|
576
|
+
comment_body = generate_benchmark_started_pr_comment(
|
|
577
|
+
stream_id, pending_tests, len(filtered_test_files)
|
|
578
|
+
)
|
|
579
|
+
# update on github if needed
|
|
580
|
+
if is_actionable_pr:
|
|
581
|
+
if contains_regression_comment:
|
|
582
|
+
update_comment_if_needed(
|
|
583
|
+
auto_approve_github,
|
|
584
|
+
comment_body,
|
|
585
|
+
old_regression_comment_body,
|
|
586
|
+
regression_comment,
|
|
587
|
+
verbose,
|
|
588
|
+
)
|
|
589
|
+
else:
|
|
590
|
+
regression_comment = create_new_pr_comment(
|
|
591
|
+
auto_approve_github, comment_body, github_pr, pr_link
|
|
592
|
+
)
|
|
532
593
|
|
|
533
594
|
for test_file in filtered_test_files:
|
|
534
595
|
redis_containers = []
|
|
@@ -1033,6 +1094,23 @@ def process_self_contained_coordinator_stream(
|
|
|
1033
1094
|
conn.lrem(stream_test_list_running, 1, test_name)
|
|
1034
1095
|
conn.lpush(stream_test_list_completed, test_name)
|
|
1035
1096
|
conn.expire(stream_test_list_completed, REDIS_BINS_EXPIRE_SECS)
|
|
1097
|
+
pending_tests = pending_tests - 1
|
|
1098
|
+
|
|
1099
|
+
# update on github if needed
|
|
1100
|
+
if is_actionable_pr:
|
|
1101
|
+
comment_body = generate_benchmark_started_pr_comment(
|
|
1102
|
+
stream_id, pending_tests, len(filtered_test_files)
|
|
1103
|
+
)
|
|
1104
|
+
update_comment_if_needed(
|
|
1105
|
+
auto_approve_github,
|
|
1106
|
+
comment_body,
|
|
1107
|
+
old_regression_comment_body,
|
|
1108
|
+
regression_comment,
|
|
1109
|
+
verbose,
|
|
1110
|
+
)
|
|
1111
|
+
logging.info(
|
|
1112
|
+
f"Updated github comment with latest test info {regression_comment.html_url}"
|
|
1113
|
+
)
|
|
1036
1114
|
logging.info(
|
|
1037
1115
|
f"Added test named {test_name} to the completed test list in key {stream_test_list_completed}"
|
|
1038
1116
|
)
|
|
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
|
|
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
|
|
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
|