algorithm-nexus 1.1.0__tar.gz → 1.1.1__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 (158) hide show
  1. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/.agents/skills/add-benchmark-instance/SKILL.md +21 -0
  2. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/.pre-commit-config.yaml +5 -5
  3. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/CHANGELOG.md +24 -0
  4. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/PKG-INFO +4 -4
  5. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/contributing/benchmarks/add_benchmark_experiment.md +20 -1
  6. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/contributing/benchmarks/add_benchmark_problem.md +95 -1
  7. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/contributing/benchmarks/add_benchmark_submission.md +1 -1
  8. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/contributing/benchmarks/add_instance_binding.md +11 -2
  9. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/design/benchmarking/benchmark_experiments_and_submissions.md +44 -3
  10. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/design/benchmarking/logical_benchmarks_and_instances.md +895 -755
  11. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/getting-started/cli-reference.md +18 -3
  12. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/pyproject.toml +3 -3
  13. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/requirements-candidate.txt +891 -836
  14. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/requirements-ecosystem.txt +749 -757
  15. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/requirements-product.txt +857 -831
  16. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/src/algorithm_nexus/commands/validate.py +328 -7
  17. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/src/algorithm_nexus/models.py +55 -0
  18. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/templates/logical-benchmark/instances/instance-name/instance.yaml +24 -0
  19. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/test_validate_logical_benchmarks.py +295 -0
  20. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/uv.lock +2100 -1654
  21. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/.agents/skills/add-logical-benchmark/SKILL.md +0 -0
  22. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/.agents/skills/add-nexus-package/SKILL.md +0 -0
  23. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/.agents/skills/update-lock-file/SKILL.md +0 -0
  24. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/.copywrite.hcl +0 -0
  25. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  26. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  27. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/.github/PULL_REQUEST_TEMPLATE/new_nexus_package.md +0 -0
  28. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/.github/dco.yml +0 -0
  29. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/.gitignore +0 -0
  30. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/.markdownlint-cli2.yaml +0 -0
  31. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/.prettierrc.toml +0 -0
  32. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/.python-version +0 -0
  33. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/.secrets.baseline +0 -0
  34. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/.yamlfmt +0 -0
  35. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/CONTRIBUTING.md +0 -0
  36. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/LICENSE +0 -0
  37. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/MAINTAINERS.md +0 -0
  38. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/README.md +0 -0
  39. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/benchmarks/.gitkeep +0 -0
  40. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/assets/images/favicon.ico +0 -0
  41. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/assets/images/logo-ibm-dark.png +0 -0
  42. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/assets/images/logo-ibm.png +0 -0
  43. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/contributing/add_new_nexus_package.md +0 -0
  44. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/contributing/benchmarks/index.md +0 -0
  45. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/contributing/guidelines.md +0 -0
  46. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/contributing/index.md +0 -0
  47. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/contributing/owner_responsibilities.md +0 -0
  48. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/design/benchmarking/benchmark_execution.md +0 -0
  49. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/design/benchmarking/index.md +0 -0
  50. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/design/dependency-resolution.md +0 -0
  51. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/design/index.md +0 -0
  52. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/design/nexus_package.md +0 -0
  53. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/design/project_release.md +0 -0
  54. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/getting-started/index.md +0 -0
  55. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/getting-started/installation.md +0 -0
  56. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/index.md +0 -0
  57. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/requirements/benchmark.md +0 -0
  58. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/requirements/index.md +0 -0
  59. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/requirements/model_vllm.md +0 -0
  60. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/requirements/models_testing.md +0 -0
  61. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/requirements/nexus_package.md +0 -0
  62. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/requirements/packaging_and_dependency_reqs.md +0 -0
  63. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/stylesheets/extra.css +0 -0
  64. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/theme/favicon.ico +0 -0
  65. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/theme/logo-ibm-dark.png +0 -0
  66. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/docs/theme/logo-ibm.png +0 -0
  67. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/experiments/.gitkeep +0 -0
  68. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/mendUnifiedAgent.config +0 -0
  69. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/package.json +0 -0
  70. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/.gitkeep +0 -0
  71. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/biomed-multi-alignment/models/biomed.omics.bl.sm.ma-ted-458m/model.yaml +0 -0
  72. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/biomed-multi-alignment/nexus.yaml +0 -0
  73. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/bmfm-targets/models/biomed.rna.llama.32m.mlm.multitask.v1.vllm/model.yaml +0 -0
  74. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/bmfm-targets/models/biomed.rna.llama.32m.mlm.multitask.v1.vllm/usage.md +0 -0
  75. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/bmfm-targets/models/biomed.rna.llama.47m.wced.multitask.v1.vllm/model.yaml +0 -0
  76. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/bmfm-targets/models/biomed.rna.llama.47m.wced.multitask.v1.vllm/usage.md +0 -0
  77. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/bmfm-targets/nexus.yaml +0 -0
  78. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/gridfm-graphkit/nexus.yaml +0 -0
  79. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/terrakit/nexus.yaml +0 -0
  80. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/terratorch/models/prithvi/model.yaml +0 -0
  81. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/terratorch/models/prithvi/usage.md +0 -0
  82. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/terratorch/models/terramind_base_fire/model.yaml +0 -0
  83. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/terratorch/models/terramind_base_fire/usage.md +0 -0
  84. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/terratorch/models/terramind_base_flood/model.yaml +0 -0
  85. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/terratorch/models/terramind_base_flood/usage.md +0 -0
  86. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/terratorch/nexus.yaml +0 -0
  87. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/tokamind/models/tokamind-base-v2/model.yaml +0 -0
  88. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/packages/tokamind/nexus.yaml +0 -0
  89. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/renovate.json +0 -0
  90. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/ruff.toml +0 -0
  91. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/src/algorithm_nexus/__init__.py +0 -0
  92. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/src/algorithm_nexus/cli.py +0 -0
  93. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/src/algorithm_nexus/commands/__init__.py +0 -0
  94. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/src/algorithm_nexus/commands/ado_validator.py +0 -0
  95. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/src/algorithm_nexus/commands/benchmark_manager.py +0 -0
  96. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/src/algorithm_nexus/commands/list.py +0 -0
  97. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/src/algorithm_nexus/commands/run.py +0 -0
  98. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/src/algorithm_nexus/commands/utils.py +0 -0
  99. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/src/algorithm_nexus/commands/venv_manager.py +0 -0
  100. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/templates/experiment/bindings/binding-name.yaml +0 -0
  101. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/templates/experiment/experiment_package.yaml +0 -0
  102. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/templates/experiment/submissions/submission-name/space.yaml +0 -0
  103. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/templates/logical-benchmark/benchmark.yaml +0 -0
  104. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/templates/nexus-package-template/README.md +0 -0
  105. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/templates/nexus-package-template/models/your-model-name/model.yaml +0 -0
  106. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/templates/nexus-package-template/nexus.yaml +0 -0
  107. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/templates/packages/package-name/README.md +0 -0
  108. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/templates/packages/package-name/models/model-name/model.yaml +0 -0
  109. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/templates/packages/package-name/nexus.yaml +0 -0
  110. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/__init__.py +0 -0
  111. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/experiments/vllm-performance/experiment_package.yaml +0 -0
  112. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/experiments/vllm-performance/submissions/granite-guidellm/space.yaml +0 -0
  113. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/experiments/vllm-performance/submissions/granite-vllm/space.yaml +0 -0
  114. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/experiments-invalid/missing-config/README.md +0 -0
  115. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/experiments-invalid/missing-config/submissions/run1/space.yaml +0 -0
  116. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/logical_benchmarks/invalid_binding_unknown_metric.yaml +0 -0
  117. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/logical_benchmarks/invalid_binding_unknown_property.yaml +0 -0
  118. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/logical_benchmarks/invalid_instance_unknown_property.yaml +0 -0
  119. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/logical_benchmarks/invalid_missing_required_field.yaml +0 -0
  120. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/logical_benchmarks/invalid_ranking_unknown_metric.yaml +0 -0
  121. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/logical_benchmarks/invalid_static_filters_overlap_with_instance_mapping.yaml +0 -0
  122. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/logical_benchmarks/invalid_static_filters_unknown_benchmark_property.yaml +0 -0
  123. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/logical_benchmarks/valid_full.yaml +0 -0
  124. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/logical_benchmarks/valid_instance_field.yaml +0 -0
  125. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/logical_benchmarks/valid_metric_mapping_no_metrics_defined.yaml +0 -0
  126. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/logical_benchmarks/valid_no_bindings.yaml +0 -0
  127. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/logical_benchmarks/valid_ranking_desc.yaml +0 -0
  128. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/logical_benchmarks/valid_ranking_field.yaml +0 -0
  129. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/logical_benchmarks/valid_static_filters_both_directions.yaml +0 -0
  130. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/.gitignore +0 -0
  131. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/invalid-package/models/broken-model/model.yaml +0 -0
  132. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/invalid-package/models/undeclared-model/model.yaml +0 -0
  133. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/invalid-package/nexus.yaml +0 -0
  134. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/terratorch/benchmark_submissions/base-test/space.yaml +0 -0
  135. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/terratorch/models/prithvi/benchmark_submissions/fire-test/space.yaml +0 -0
  136. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/terratorch/models/prithvi/benchmark_submissions/flood-test/config.json +0 -0
  137. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/terratorch/models/prithvi/benchmark_submissions/flood-test/space.yaml +0 -0
  138. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/terratorch/models/prithvi/model.yaml +0 -0
  139. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/terratorch/nexus.yaml +0 -0
  140. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/tokamind/benchmark_submissions/base-test/space.yaml +0 -0
  141. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/tokamind/nexus.yaml +0 -0
  142. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/valid-package/AGENTS.md +0 -0
  143. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/valid-package/models/example-model/model.yaml +0 -0
  144. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/valid-package/models/example-model/usage.md +0 -0
  145. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/valid-package/models/minimal-model/model.yaml +0 -0
  146. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/valid-package/nexus.yaml +0 -0
  147. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/valid-package-with-benchmarks/models/test-model/benchmark_submissions/flood-segmentation-test/space.yaml +0 -0
  148. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/valid-package-with-benchmarks/models/test-model/benchmark_submissions/performance-baseline/space.yaml +0 -0
  149. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/valid-package-with-benchmarks/models/test-model/model.yaml +0 -0
  150. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/fixtures/packages/valid-package-with-benchmarks/nexus.yaml +0 -0
  151. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/test_cli_list.py +0 -0
  152. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/test_cli_run.py +0 -0
  153. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/test_cli_validation.py +0 -0
  154. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/test_models.py +0 -0
  155. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/test_utils.py +0 -0
  156. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tests/test_validate_benchmarks.py +0 -0
  157. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/tombi.toml +0 -0
  158. {algorithm_nexus-1.1.0 → algorithm_nexus-1.1.1}/zensical.toml +0 -0
@@ -91,6 +91,27 @@ problemPropertyValues:
91
91
  identifier: <property_id_2>
92
92
  value: <value_2>
93
93
 
94
+ # (Optional) Generative properties used to create the instance (e.g. seed).
95
+ # Not declared in benchmark.yaml; must not reuse a problem property identifier.
96
+ instancePropertyValues:
97
+ - property:
98
+ identifier: <generator_property_name>
99
+ value: <value>
100
+
101
+ # (Optional) variants: use when one instance covers several values of a problem property.
102
+ # A property that varies is omitted from problemPropertyValues and given a value in EVERY variant.
103
+ # List every combination of interest; files must exist in the artifact's artifactsLocation.
104
+ variants:
105
+ - problemPropertyValues:
106
+ - property:
107
+ identifier: <varying_property_id>
108
+ value: <value>
109
+ instanceArtifactValues:
110
+ - property:
111
+ identifier: <artifact_property_id>
112
+ values:
113
+ - <file-name>
114
+
94
115
  # (Optional) Include instanceArtifacts if the instance ships with input files
95
116
  instanceArtifacts:
96
117
  - property:
@@ -17,7 +17,7 @@ repos:
17
17
 
18
18
  # Ruff - Python linter and formatter
19
19
  - repo: https://github.com/astral-sh/ruff-pre-commit
20
- rev: v0.16.10
20
+ rev: v0.17.3
21
21
  hooks:
22
22
  - id: ruff
23
23
  args: [--fix]
@@ -25,7 +25,7 @@ repos:
25
25
 
26
26
  # Conventional commits
27
27
  - repo: https://github.com/compilerla/conventional-pre-commit
28
- rev: v4.4.0
28
+ rev: v4.5.0
29
29
  hooks:
30
30
  - id: conventional-pre-commit
31
31
  stages: [commit-msg]
@@ -43,7 +43,7 @@ repos:
43
43
 
44
44
  # UV lock check
45
45
  - repo: https://github.com/astral-sh/uv-pre-commit
46
- rev: 0.12.23
46
+ rev: 0.13.6
47
47
  hooks:
48
48
  - id: uv-lock
49
49
  - id: uv-export
@@ -64,7 +64,7 @@ repos:
64
64
 
65
65
  # Markdownlint - Markdown linting
66
66
  - repo: https://github.com/DavidAnson/markdownlint-cli2
67
- rev: v0.23.3
67
+ rev: v0.24.0
68
68
  hooks:
69
69
  - id: markdownlint-cli2
70
70
 
@@ -76,7 +76,7 @@ repos:
76
76
 
77
77
  # Tombi - TOML formatting
78
78
  - repo: https://github.com/tombi-toml/tombi-pre-commit
79
- rev: v1.7.2
79
+ rev: v1.9.8
80
80
  hooks:
81
81
  - id: tombi-format
82
82
  args: ["--offline"]
@@ -1,3 +1,27 @@
1
+ ## [1.1.0](https://github.com/ibm/algorithm-nexus/compare/995ebfa4cccd7d6237dbbeda53ec151ab7fa1743..1.1.0) - 2026-10-13
2
+ #### Features
3
+ - (**Schema**) Updated models and cli to the latest schema for logical benchmarks and experiments (#295) - ([cc441c1](https://github.com/ibm/algorithm-nexus/commit/cc441c18922327912a932d343c2e80b66d3a7d0e)) - Christian Pinto
4
+ - (**benchmarks**) validate instance benchmarkIdentifier matches parent benchmarkIdentifier (#302) - ([33be13b](https://github.com/ibm/algorithm-nexus/commit/33be13b034e34bc78074a94213bcf82b8340b706)) - Vassilis Vassiliadis
5
+ - (**benchmarks**) require exactly one value for each problem property (#305) - ([c2fbd74](https://github.com/ibm/algorithm-nexus/commit/c2fbd74ccac5a49525b38767951c582c31241524)) - Vassilis Vassiliadis
6
+ - (**dependencies**) Removed terrakit from candidate and product dependency groups (#315) - ([3b04e46](https://github.com/ibm/algorithm-nexus/commit/3b04e46b518f56d5c65b03860f6233e20057e58d)) - Christian Pinto
7
+ - (**dependencies**) Updated vllm to version 0.31.0 for candidate and product dependency groups (#313) - ([4111b9b](https://github.com/ibm/algorithm-nexus/commit/4111b9b0f12dbe9f0aa4176982e77db21dbfa7fc)) - Christian Pinto
8
+ - (**design**) support optional metadata in Nexus manifests (#310) - ([f438b6b](https://github.com/ibm/algorithm-nexus/commit/f438b6b7e8e4f20b741958ecd17e2cc18f454541)) - Vassilis Vassiliadis
9
+ - (**design**) Updated logical benchmarks, instances and bindings (#290) - ([574f009](https://github.com/ibm/algorithm-nexus/commit/574f009ecad098f6485d1002cb2a98962c5df98c)) - Christian Pinto
10
+ - (**docs**) Aligned contributing docs to latest schema (#299) - ([7693ef3](https://github.com/ibm/algorithm-nexus/commit/7693ef33764f41054d218b5a7c9773a530dbf76b)) - Christian Pinto
11
+ - (**packages**) Temporarily removing biomed-multi-alignment (#308) - ([8e435f3](https://github.com/ibm/algorithm-nexus/commit/8e435f3287fb3238964a1459007d47f02f1a7fcc)) - Christian Pinto
12
+ - (**skills**) Added skills for creation of logical-benchmark and instance (#303) - ([d488d65](https://github.com/ibm/algorithm-nexus/commit/d488d65eab10ac0f4b9b86aba3c52dc3364aa3f9)) - Christian Pinto
13
+ #### Bug Fixes
14
+ - (**cli**) Solved bug in validate logical-benchmarks that allowed any folder or file to be in a benchmark (#289) - ([c72e1c3](https://github.com/ibm/algorithm-nexus/commit/c72e1c3a49796c5fbc474d6138e040577d810ae5)) - Christian Pinto
15
+ - (**cli**) Updated cli commands to use the new benchmarks/experiments folders structure (#285) - ([daff761](https://github.com/ibm/algorithm-nexus/commit/daff761e16f504668ff45bf6f63d76d78a49a226)) - Christian Pinto
16
+ #### Documentation
17
+ - (**benchmarks**) fix typo (#281) - ([bd6f5c4](https://github.com/ibm/algorithm-nexus/commit/bd6f5c46d578a1f5c33277ccedc1450eb582ca34)) - Vassilis Vassiliadis
18
+ - (**changelog**) add release notes for 1.0.0 (#283) - ([995ebfa](https://github.com/ibm/algorithm-nexus/commit/995ebfa4cccd7d6237dbbeda53ec151ab7fa1743)) - DRL-NextGen
19
+ #### Build system
20
+ - (**deps**) update dependencies (#291) - ([2e16af8](https://github.com/ibm/algorithm-nexus/commit/2e16af88b97319d67ed61be171180fc1ffce749d)) - DRL-NextGen
21
+ - (**hooks**) update pre-commit hooks (#292) - ([5960bec](https://github.com/ibm/algorithm-nexus/commit/5960becdbceb52dcf35d305cffeda55bc34109ff)) - DRL-NextGen
22
+
23
+ - - -
24
+
1
25
  ## [1.0.0](https://github.com/ibm/algorithm-nexus/compare/f3f8054bba7a0ac14581b1d45e9c655cba984266..1.0.0) - 2026-09-29
2
26
  #### Documentation
3
27
  - (**benchmarks**) Improved benchmarks terminology and adapted schema accordingly (#250) - ([57fcfa7](https://github.com/ibm/algorithm-nexus/commit/57fcfa75960716c1adadadb5ad8ff819f839f385)) - Christian Pinto
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: algorithm-nexus
3
- Version: 1.1.0
3
+ Version: 1.1.1
4
4
  Summary: A comprehensive library for AI model delivery, testing, and benchmarking
5
5
  Project-URL: Homepage, https://github.com/IBM/algorithm-nexus
6
6
  Project-URL: Issues, https://github.com/IBM/algorithm-nexus/issues
@@ -13,7 +13,7 @@ Provides-Extra: candidate
13
13
  Requires-Dist: bmfm-targets[vllm]>=0.20.0; extra == 'candidate'
14
14
  Requires-Dist: opencv-python-headless!=5.0.0.93; extra == 'candidate'
15
15
  Requires-Dist: terratorch[vllm]==1.2.13; extra == 'candidate'
16
- Requires-Dist: vllm<0.32.0,>=0.31.0; extra == 'candidate'
16
+ Requires-Dist: vllm<0.34.0,>=0.33.0; extra == 'candidate'
17
17
  Provides-Extra: cli
18
18
  Requires-Dist: ado-core>=2.0; extra == 'cli'
19
19
  Requires-Dist: pydantic>=2.13.3; extra == 'cli'
@@ -28,8 +28,8 @@ Requires-Dist: terratorch>=1.2.7; extra == 'ecosystem'
28
28
  Requires-Dist: tokamind; extra == 'ecosystem'
29
29
  Provides-Extra: product
30
30
  Requires-Dist: opencv-python-headless!=5.0.0.93; extra == 'product'
31
- Requires-Dist: terratorch[vllm]==1.2.13; extra == 'product'
32
- Requires-Dist: vllm<0.32.0,>=0.31.0; extra == 'product'
31
+ Requires-Dist: terratorch[vllm]==1.2.14; extra == 'product'
32
+ Requires-Dist: vllm<0.34.0,>=0.33.0; extra == 'product'
33
33
  Description-Content-Type: text/markdown
34
34
 
35
35
  # Algorithm Nexus
@@ -123,10 +123,29 @@ experiment_package:
123
123
 
124
124
  Each id in the list is available to submissions under this experiment folder.
125
125
 
126
+ ### Label an experiment's compute type
127
+
128
+ To label the compute type of an experiment, add a `compute-type-<experiment>`
129
+ key to the `metadata` block of `experiment_package.yaml`. The `<experiment>`
130
+ part must be one of the ids in the `experiments` list:
131
+
132
+ ```yaml
133
+ experiment_package:
134
+ requirement_specifier: "rlx-coloring"
135
+ experiments:
136
+ - rlx_coloring
137
+
138
+ metadata:
139
+ compute-type-rlx_coloring: Classical
140
+ ```
141
+
142
+ See [Compute type metadata](../../design/benchmarking/benchmark_experiments_and_submissions.md#6-compute-type-metadata)
143
+ for suggested values.
144
+
126
145
  ### Author a new experiment package
127
146
 
128
147
  To create the Python package itself, follow the
129
- [ado custom experiment template](https://ibm.github.io/ado/actuators/creating-custom-experiments/),
148
+ [ado custom experiment template](https://ibm.github.io/ado/latest/developer-guide/creating-custom-experiments/),
130
149
  publish the package on PyPI or GitHub, then continue from
131
150
  [step 1](#1-create-the-experiment-folder).
132
151
 
@@ -196,6 +196,100 @@ benchmarks/graph_coloring/instances/erdos_renyi_50_02/
196
196
  └── graph.json
197
197
  ```
198
198
 
199
+ ### Cover several values of a property with variants
200
+
201
+ When the files of one instance differ by the value of a problem property (e.g. a
202
+ sweep over `edge_density`), define a single instance with `variants` instead of
203
+ one instance per value. A property that varies is omitted from
204
+ `problemPropertyValues` and given a value in **every** variant. Each variant
205
+ lists the artifact files, in the artifact's `artifactsLocation`, that belong to
206
+ it:
207
+
208
+ ```yaml
209
+ instanceIdentifier: erdos_renyi_50
210
+ benchmarkIdentifier: graph_coloring
211
+ description: 50-node Erdos-Renyi graphs with different edge densities
212
+ problemPropertyValues:
213
+ - property:
214
+ identifier: graph_family
215
+ value: erdos_renyi
216
+ - property:
217
+ identifier: num_vertices
218
+ value: 50
219
+ instanceArtifacts:
220
+ - property:
221
+ identifier: graph
222
+ artifactsLocation: graph_files
223
+ variants:
224
+ - problemPropertyValues:
225
+ - property:
226
+ identifier: edge_density
227
+ value: 0.2
228
+ instanceArtifactValues:
229
+ - property:
230
+ identifier: graph
231
+ values:
232
+ - graph_02.dimacs
233
+ - graph_02.json
234
+ - problemPropertyValues:
235
+ - property:
236
+ identifier: edge_density
237
+ value: 0.5
238
+ instanceArtifactValues:
239
+ - property:
240
+ identifier: graph
241
+ values:
242
+ - graph_05.dimacs
243
+ - graph_05.json
244
+ ```
245
+
246
+ The instance directory then looks like this:
247
+
248
+ ```text
249
+ benchmarks/graph_coloring/instances/erdos_renyi_50/
250
+ ├── instance.yaml
251
+ └── graph_files/
252
+ ├── graph_02.dimacs
253
+ ├── graph_02.json
254
+ ├── graph_05.dimacs
255
+ └── graph_05.json
256
+ ```
257
+
258
+ - Every value a property can take for this instance must be declared in a
259
+ variant.
260
+ - For artifacts that change with the variant, list all combinations of interest
261
+ for each property that has variants.
262
+
263
+ Validation fails if a variant is missing a value, redefines a property that has
264
+ a top-level value, duplicates another variant, or lists a file that does not
265
+ exist. Bindings need no changes; see
266
+ [Instances with variants](../../design/benchmarking/logical_benchmarks_and_instances.md#instances-with-variants).
267
+
268
+ ### Record where a benchmark comes from
269
+
270
+ To record the source of a problem that comes from a public benchmark library,
271
+ add the source keys to the `metadata` block of `benchmark.yaml`:
272
+
273
+ ```yaml
274
+ metadata:
275
+ benchmark-source-name: QOBLIB
276
+ benchmark-source-url: https://zib-aopt.github.io/QOBLIB/problem/07/
277
+ ```
278
+
279
+ To also point to the matching instance in that source, set the instance keys
280
+ in the `metadata` block of `instance.yaml`. Repeat `benchmark-source-name`,
281
+ since an instance does not inherit the metadata of its benchmark:
282
+
283
+ ```yaml
284
+ metadata:
285
+ benchmark-source-name: QOBLIB
286
+ benchmark-instance-source-name: ibm32
287
+ benchmark-instance-source-url: https://zib-aopt.github.io/QOBLIB/instance.html?problem=07&name=ibm32
288
+ ```
289
+
290
+ See [Benchmark source metadata](../../design/benchmarking/logical_benchmarks_and_instances.md#9-benchmark-source-metadata)
291
+ for the list of keys.
292
+
199
293
  ### Add an instance to an existing problem
200
294
 
201
295
  To add another instance of a problem that is already registered, create a new
@@ -225,7 +319,7 @@ propertyDomain:
225
319
  ```
226
320
 
227
321
  To leave a categorical property open, omit `propertyDomain`. See the
228
- [ado property domain documentation](https://ibm.github.io/ado/core-concepts/properties-and-domains/)
322
+ [ado property domain documentation](https://ibm.github.io/ado/latest/concepts/properties-and-domains/)
229
323
  and
230
324
  [section 2 of Logical Benchmarks and Instances](../../design/benchmarking/logical_benchmarks_and_instances.md#2-logical-benchmark-definition).
231
325
 
@@ -101,7 +101,7 @@ Here `n_nodes`, `density`, and `graph_type` carry `num_vertices`,
101
101
  target.
102
102
 
103
103
  See
104
- [Using your custom experiment in a discoveryspace](https://ibm.github.io/ado/actuators/creating-custom-experiments/#using-your-custom-experiment-in-a-discoveryspace)
104
+ [Using your custom experiment in a discoveryspace](https://ibm.github.io/ado/latest/developer-guide/creating-custom-experiments/#using-your-custom-experiment-in-a-discoveryspace)
105
105
  for the `space.yaml` syntax.
106
106
 
107
107
  You now have:
@@ -105,8 +105,17 @@ experiments/rlx_coloring/
105
105
  uv run nexus validate experiments --experiment rlx_coloring
106
106
  ```
107
107
 
108
- A successful run lists the experiment with status `success`. The binding is
109
- ready to commit.
108
+ A successful run lists the binding file with status `success`. Besides the
109
+ experiment package, the command checks that:
110
+
111
+ - the binding matches the schema and its `instanceBindingIdentifier` is unique
112
+ - `experimentIdentifier` is listed in the experiment's `experiment_package.yaml`
113
+ - `instanceReference` points to an existing benchmark and instance
114
+ - every mapped metric and problem property exists in the benchmark
115
+ - every `instanceArtifactMapping` names an artifact declared by the instance,
116
+ and each file in `validValues` exists in that artifact's `artifactsLocation`
117
+
118
+ The binding is ready to commit.
110
119
 
111
120
  ## 3. Open a pull request
112
121
 
@@ -67,7 +67,7 @@ submissions. Logical benchmarks, instances, and results are specified in
67
67
  - in this design, experiments are declared in
68
68
  `experiments/<name>/experiment_package.yaml`
69
69
  - All benchmark experiments follow the
70
- [ADO custom experiment template](https://ibm.github.io/ado/actuators/creating-custom-experiments/)
70
+ [ADO custom experiment template](https://ibm.github.io/ado/latest/developer-guide/creating-custom-experiments/)
71
71
 
72
72
  - **Benchmark submission**
73
73
  - one registered use of a benchmark experiment on a benchmark instance for a
@@ -175,6 +175,11 @@ experiment_package:
175
175
  - bubble_sort
176
176
  - merge_sort
177
177
  - quick_sort
178
+
179
+ metadata:
180
+ compute-type-bubble_sort: Classical
181
+ compute-type-merge_sort: Classical
182
+ compute-type-quick_sort: Classical
178
183
  ```
179
184
 
180
185
  GitHub URL example:
@@ -192,7 +197,8 @@ experiment_package:
192
197
  GitHub URL (local paths are rejected by schema validation)
193
198
  - `experiment_package.experiments` — required; non-empty list of experiment
194
199
  identifiers exposed by the package
195
- - `metadata` — optional; flat string-to-string dictionary for arbitrary key-value annotations (keys and values up to 4,096 characters)
200
+ - `metadata` — optional; flat string-to-string dictionary for arbitrary
201
+ key-value annotations (keys and values up to 4,096 characters).
196
202
 
197
203
  ### 3.2 Benchmark Submissions in `submissions/`
198
204
 
@@ -235,7 +241,7 @@ experiments:
235
241
  identifiers declared in the sibling `experiment_package.yaml`
236
242
 
237
243
  For reference on the expected discoveryspace structure, see
238
- [Using your custom experiment in a discoveryspace](https://ibm.github.io/ado/actuators/creating-custom-experiments/#using-your-custom-experiment-in-a-discoveryspace).
244
+ [Using your custom experiment in a discoveryspace](https://ibm.github.io/ado/latest/developer-guide/creating-custom-experiments/#using-your-custom-experiment-in-a-discoveryspace).
239
245
 
240
246
  ---
241
247
 
@@ -286,3 +292,38 @@ Fetching details on experiments and submissions — such as expected input,
286
292
  metrics exported, etc. — can be obtained with a combination of the `nexus` CLI
287
293
  for listing and the `ado` CLI for full experiment details after installing the
288
294
  relevant experiment package.
295
+
296
+ ### 5.4 Leaderboard and Discovery Filtering by Compute Type
297
+
298
+ Leaderboards and experiment discovery interfaces can use the optional `metadata` in `experiment_package.yaml` to
299
+ filter and categorize experiments. For example, a user might want to search for, or filter a leaderboard by,
300
+ experiments of a specific compute type (e.g. classical algorithms, AI-based approaches, or hybrid quantum workflows).
301
+
302
+ Using the metadata conventions, a discovery interface or leaderboard can parse labels like the following to
303
+ automatically tag and filter results:
304
+
305
+ ```yaml
306
+ metadata:
307
+ compute-type-bubble_sort: Classical
308
+ compute-type-neural_sort: AI
309
+ compute-type-merge_sort: AI-Classical
310
+ ```
311
+
312
+ ---
313
+
314
+ ## 6. Compute Type Metadata
315
+
316
+ The optional `metadata` block of `experiment_package.yaml` can label the compute type of each experiment the package
317
+ lists. Nexus does not interpret these keys directly. They are conventions that tools reading Nexus manifests can rely
318
+ on.
319
+
320
+ <!-- markdownlint-disable line-length -->
321
+
322
+ | Key | Description |
323
+ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
324
+ | `compute-type-<experiment>` | Compute type of `<experiment>`, which is one of the identifiers listed under `experiment_package.experiments` in the same file. |
325
+
326
+ <!-- markdownlint-enable line-length -->
327
+
328
+ The value is a free-form string. Suggested values are `Quantum`, `AI`, and `Classical`. For a hybrid, join two of them
329
+ with a hyphen, for example `Quantum-Classical`, `Quantum-AI`, or `AI-Classical`.