Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: Green-Software-Foundation/if
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.6.0
Choose a base ref
...
head repository: Green-Software-Foundation/if
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.7.1
Choose a head ref

Commits on Jul 26, 2024

  1. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    80ccf37 View commit details
  2. Copy the full SHA
    e9390c2 View commit details
  3. Copy the full SHA
    335c267 View commit details
  4. Copy the full SHA
    8ac1053 View commit details
  5. Copy the full SHA
    e492532 View commit details
  6. Copy the full SHA
    322caff View commit details
  7. Copy the full SHA
    a7c5c47 View commit details
  8. Copy the full SHA
    e0f9d4b View commit details
  9. Copy the full SHA
    954c5c0 View commit details
  10. Copy the full SHA
    6904da5 View commit details

Commits on Jul 29, 2024

  1. Copy the full SHA
    a63af71 View commit details

Commits on Aug 2, 2024

  1. Copy the full SHA
    f5f8b9b View commit details
  2. Copy the full SHA
    d6d16d7 View commit details
  3. Copy the full SHA
    4dbd1cd View commit details
  4. Copy the full SHA
    9f6f8d2 View commit details
  5. Copy the full SHA
    83bbe68 View commit details

Commits on Aug 5, 2024

  1. Copy the full SHA
    b8bc3c4 View commit details

Commits on Aug 6, 2024

  1. Copy the full SHA
    9fcdcbf View commit details
  2. Copy the full SHA
    fb56229 View commit details
  3. Copy the full SHA
    d1fb8d7 View commit details
  4. Copy the full SHA
    0c34bcc View commit details
  5. Copy the full SHA
    7333191 View commit details
  6. Copy the full SHA
    1e4f86f View commit details
  7. Copy the full SHA
    d64182f View commit details
  8. Copy the full SHA
    d5d66ae View commit details
  9. Copy the full SHA
    abf2214 View commit details

Commits on Aug 8, 2024

  1. Copy the full SHA
    fb44137 View commit details

Commits on Aug 9, 2024

  1. Copy the full SHA
    c102ad7 View commit details
  2. Copy the full SHA
    dbfdaaf View commit details
  3. Merge branch 'main' into release

    Signed-off-by: Narek Hovhannisyan <narekgilmour@gmail.com>
    narekhovhannisyan authored Aug 9, 2024
    Copy the full SHA
    57ed30e View commit details
  4. Merge pull request #958 from Green-Software-Foundation/release

    Sync release with main
    narekhovhannisyan authored Aug 9, 2024
    Copy the full SHA
    577fa28 View commit details

Commits on Aug 12, 2024

  1. fix(util): remove mapOutput function and add mapConfigIfNeeded an…

    …d `mapInputIfNeeded` functions
    manushak committed Aug 12, 2024
    Copy the full SHA
    fa379a5 View commit details
  2. Copy the full SHA
    b4e62c2 View commit details
  3. Copy the full SHA
    fd73d1e View commit details
  4. docs(builtins): update docs

    manushak committed Aug 12, 2024
    Copy the full SHA
    783e966 View commit details
  5. test(util): add unit tests for mapConfigIfNeeded and `mapInputIfNee…

    …ded` helpers function
    manushak committed Aug 12, 2024
    Copy the full SHA
    e3bf7c6 View commit details
  6. Copy the full SHA
    8dc3c76 View commit details
  7. Copy the full SHA
    ee0806c View commit details
  8. Copy the full SHA
    86083c1 View commit details
  9. Copy the full SHA
    7e59caf View commit details
  10. Copy the full SHA
    3566ab1 View commit details
  11. Copy the full SHA
    09c855e View commit details
  12. Copy the full SHA
    7bdc885 View commit details
  13. Copy the full SHA
    cea711a View commit details
  14. Copy the full SHA
    37ce72b View commit details
  15. Copy the full SHA
    3f0d624 View commit details
  16. Copy the full SHA
    c198e65 View commit details
  17. docs(builtins): update docs

    manushak committed Aug 12, 2024
    Copy the full SHA
    d60817c View commit details

Commits on Aug 13, 2024

  1. Merge pull request #962 from Green-Software-Foundation/node-config

    Emit warning about node-level config
    jmcook1186 authored Aug 13, 2024
    Copy the full SHA
    30ea6d5 View commit details
  2. Copy the full SHA
    9279ec0 View commit details
Showing with 9,099 additions and 7,038 deletions.
  1. +1 −1 .github/workflows/release-commit.yml
  2. +1 −1 .github/workflows/release-publish.yml
  3. +0 −3 .gitmodules
  4. +68 −82 Refactor-migration-guide.md
  5. +3 −9 github-processes.md
  6. +0 −71 grafana/IF_GRAFANA_SETUP.md
  7. +0 −370 grafana/if_grafana_config.json
  8. +2 −4 manifests/examples/builtins/coefficient/failure-invalid-config-input-param.yml
  9. +1 −3 manifests/examples/builtins/coefficient/failure-output-param-is-null.yaml
  10. +1 −3 manifests/examples/builtins/coefficient/success.yml
  11. +1 −2 manifests/examples/builtins/csv-lookup/cloud-metadata/failure-invalid-instance-type.yaml
  12. +3 −4 manifests/examples/builtins/csv-lookup/cloud-metadata/failure-invalid-vendor.yaml
  13. +2 −3 manifests/examples/builtins/csv-lookup/cloud-metadata/failure-missing-cloud-vendor.yml
  14. +1 −2 manifests/examples/builtins/csv-lookup/cloud-metadata/success.yml
  15. +1 −1 manifests/examples/builtins/csv-lookup/region-metadata/failure-missing-column.yml
  16. +2 −2 manifests/examples/builtins/csv-lookup/region-metadata/failure-missing-output.yml
  17. +1 −1 manifests/examples/builtins/csv-lookup/region-metadata/success-renaming.yml
  18. +1 −1 manifests/examples/builtins/csv-lookup/region-metadata/success.yml
  19. +1 −2 manifests/examples/builtins/csv-lookup/tdp-finder/failure-missing-input-param.yml
  20. +1 −2 manifests/examples/builtins/csv-lookup/tdp-finder/failure-unsupported-physical-processor.yml
  21. +1 −2 manifests/examples/builtins/csv-lookup/tdp-finder/success.yml
  22. +0 −38 manifests/examples/builtins/divide/failure-denominator-equal-zero.yml
  23. +3 −5 manifests/examples/builtins/divide/failure-invalid-config-denominator.yml
  24. +2 −4 manifests/examples/builtins/divide/failure-missing-numerator.yml
  25. +2 −2 manifests/examples/builtins/divide/success.yml
  26. +1 −1 manifests/examples/builtins/exponent/success.yml
  27. +0 −24 manifests/examples/builtins/interpolation/interpolation.yml
  28. +1 −1 manifests/examples/builtins/interpolation/success.yml
  29. +2 −2 manifests/examples/builtins/mock-observations/failure-invalid-config-cpu-range.yml
  30. +1 −1 manifests/examples/builtins/mock-observations/failure-invalid-memory-utilization-range.yml
  31. +1 −1 manifests/examples/builtins/mock-observations/failure-missing-timestamp-from-param.yml
  32. +1 −1 manifests/examples/builtins/mock-observations/success.yml
  33. +1 −1 manifests/examples/builtins/multiply/failure-input-parameter-is-missing.yml
  34. +1 −1 manifests/examples/builtins/multiply/success-with-multiple-inputs.yml
  35. +1 −1 manifests/examples/builtins/multiply/success.yml
  36. +1 −1 manifests/examples/builtins/regex/failure-missing-input-param.yml
  37. +2 −2 manifests/examples/builtins/regex/failure-not-matching-with-regex.yml
  38. +1 −1 manifests/examples/builtins/regex/success.yml
  39. +0 −23 manifests/examples/builtins/sci-embodied/failure-invalid-default-emission-value.yml
  40. +0 −23 manifests/examples/builtins/sci-embodied/failure-missing-expected-lifespan.yml
  41. +27 −0 manifests/examples/builtins/sci-embodied/scenario-1.yml
  42. +37 −0 manifests/examples/builtins/sci-embodied/scenario-2.yml
  43. +13 −0 manifests/examples/builtins/sci-embodied/success.yml
  44. +3 −4 manifests/examples/builtins/sci/failure-invalid-config-value.yml
  45. +1 −1 manifests/examples/builtins/sci/failure-missing-input-param.yml
  46. +1 −1 manifests/examples/builtins/sci/success.yml
  47. +2 −2 manifests/examples/builtins/shell/failure-invalid-command.yml
  48. +2 −2 manifests/examples/builtins/shell/success.yml
  49. +1 −1 manifests/examples/builtins/subtract/success.yml
  50. +2 −2 manifests/examples/builtins/sum/failure-missing-input-param.yml
  51. +2 −2 manifests/examples/builtins/sum/failure-missing-output-param.yml
  52. +1 −1 manifests/examples/builtins/sum/success.yml
  53. +3 −3 manifests/examples/builtins/time-converter/success.yaml
  54. +10 −12 manifests/examples/builtins/time-sync/failure-config-start-later-end.yml
  55. +3 −8 ...ests/examples/builtins/time-sync/{failure-missing-global-config.yml → failure-missing-config.yml}
  56. +2 −2 manifests/examples/builtins/time-sync/success.yml
  57. +1 −1 manifests/examples/features/regroup/failure-missing-cloud-instance-type.yml
  58. +1 −1 manifests/examples/features/regroup/success.yml
  59. +8 −8 manifests/examples/pipelines/generics.yml
  60. +2 −2 manifests/examples/pipelines/instance-metadata.yml
  61. +75 −33 manifests/examples/pipelines/nesting.yml
  62. +166 −122 manifests/examples/pipelines/outputs-if-diff/pipeline-with-aggregate.yaml
  63. +130 −70 manifests/examples/pipelines/outputs-if-diff/pipeline-with-mocks.yaml
  64. +15 −15 manifests/examples/pipelines/pipeline-teads-sci.yml
  65. +57 −27 manifests/examples/pipelines/pipeline-with-aggregate.yml
  66. +99 −41 manifests/examples/pipelines/pipeline-with-mocks.yml
  67. +0 −34 manifests/examples/pipelines/scenario-1.yml
  68. +0 −52 manifests/examples/pipelines/scenario-2.yml
  69. +1 −1 manifests/examples/pipelines/scenario-3.yml
  70. +5 −5 manifests/examples/pipelines/scenario-4.yml
  71. +3 −3 manifests/examples/pipelines/scenario-5.yml
  72. +12 −12 manifests/examples/pipelines/sci.yml
  73. +10 −10 manifests/examples/pipelines/teads-curve.yml
  74. +23 −23 manifests/examples/pipelines/zeros.yml
  75. +40 −40 manifests/outputs/bugs/aggregation-error-wrong-metric.yaml
  76. +1 −1 manifests/outputs/bugs/input-error-missing-duration.yaml
  77. +2 −2 manifests/outputs/bugs/mock-observations-failure-duration-is-zero.yaml
  78. +1 −1 manifests/outputs/bugs/pipeline-error-naming-mismatch.yaml
  79. +1 −1 manifests/outputs/bugs/pipeline-error-uninitialized-plugin.yaml
  80. +6 −6 manifests/outputs/bugs/pipeline-ordering-error.yaml
  81. +0 −72 manifests/outputs/bugs/sci-embodied-missing-resources-total.yaml
  82. +2 −2 manifests/outputs/builtins/coefficient/failure-invalid-config-input-param.yaml
  83. +1 −1 manifests/outputs/builtins/coefficient/failure-output-param-is-null.yaml
  84. +23 −22 manifests/outputs/builtins/coefficient/success.yaml
  85. +1 −1 manifests/outputs/builtins/csv-lookup/cloud-metadata/failure-invalid-instance-type.yaml
  86. +76 −0 manifests/outputs/builtins/csv-lookup/cloud-metadata/failure-invalid-vendor.yaml
  87. +22 −21 manifests/outputs/builtins/csv-lookup/cloud-metadata/failure-missing-cloud-vendor.yaml
  88. +1 −1 manifests/outputs/builtins/csv-lookup/cloud-metadata/success.yaml
  89. +1 −1 manifests/outputs/builtins/csv-lookup/region-metadata/failure-missing-column.yaml
  90. +21 −20 manifests/outputs/builtins/csv-lookup/region-metadata/failure-missing-output.yaml
  91. +1 −1 manifests/outputs/builtins/csv-lookup/region-metadata/success-renaming.yaml
  92. +1 −1 manifests/outputs/builtins/csv-lookup/region-metadata/success.yaml
  93. +1 −1 manifests/outputs/builtins/csv-lookup/tdp-finder/failure-missing-input-param.yaml
  94. +1 −1 manifests/outputs/builtins/csv-lookup/tdp-finder/failure-unsupported-physical-processor.yaml
  95. +1 −1 manifests/outputs/builtins/csv-lookup/tdp-finder/success.yaml
  96. +41 −25 manifests/outputs/builtins/divide/failure-invalid-config-denominator.yaml
  97. +32 −23 manifests/outputs/builtins/divide/failure-missing-numerator.yaml
  98. +2 −2 manifests/outputs/builtins/divide/success-denominator-equal-zero.yaml
  99. +2 −2 manifests/outputs/builtins/divide/success.yaml
  100. +1 −1 manifests/outputs/builtins/exponent/success.yaml
  101. +1 −1 manifests/outputs/builtins/interpolation/interpolation.yaml
  102. +1 −1 manifests/outputs/builtins/interpolation/success.yaml
  103. +3 −3 manifests/outputs/builtins/mock-observations/failure-invalid-config-cpu-range.yaml
  104. +2 −2 manifests/outputs/builtins/mock-observations/failure-invalid-memory-utilization-range.yaml
  105. +1 −1 manifests/outputs/builtins/mock-observations/failure-missing-timestamp-from-param.yaml
  106. +49 −190 manifests/outputs/builtins/mock-observations/success.yaml
  107. +1 −1 manifests/outputs/builtins/multiply/failure-input-parameter-is-missing.yaml
  108. +1 −1 manifests/outputs/builtins/multiply/success-with-multiple-inputs.yaml
  109. +1 −1 manifests/outputs/builtins/multiply/success.yaml
  110. +1 −1 manifests/outputs/builtins/regex/failure-missing-input-param.yaml
  111. +72 −0 manifests/outputs/builtins/regex/failure-not-matching-with-regex.yaml
  112. +1 −1 manifests/outputs/builtins/regex/success.yaml
  113. +22 −26 manifests/outputs/builtins/sci-embodied/failure-invalid-default-emission-value.yaml
  114. +0 −69 manifests/outputs/builtins/sci-embodied/failure-missing-expected-lifespan.yaml
  115. +100 −0 manifests/outputs/builtins/sci-embodied/scenario-1.yaml
  116. +101 −0 manifests/outputs/builtins/sci-embodied/scenario-2.yaml
  117. +44 −20 manifests/outputs/builtins/sci-embodied/success.yaml
  118. +22 −23 manifests/outputs/builtins/sci/failure-invalid-config-value.yaml
  119. +1 −1 manifests/outputs/builtins/sci/failure-missing-input-param.yaml
  120. +1 −1 manifests/outputs/builtins/sci/success.yaml
  121. +2 −2 manifests/outputs/builtins/shell/failure-invalid-command.yaml
  122. +1 −1 manifests/outputs/builtins/shell/success.yaml
  123. +1 −1 manifests/outputs/builtins/subtract/success.yaml
  124. +2 −2 manifests/outputs/builtins/sum/failure-missing-input-param.yaml
  125. +2 −2 manifests/outputs/builtins/sum/failure-missing-output-param.yaml
  126. +1 −1 manifests/outputs/builtins/sum/success.yaml
  127. +73 −0 manifests/outputs/builtins/time-converter/success.yaml
  128. +3 −3 manifests/outputs/builtins/time-sync/failure-config-start-later-end.yaml
  129. +74 −0 manifests/outputs/builtins/time-sync/failure-missing-config.yaml
  130. +50 −59 manifests/outputs/builtins/time-sync/success.yaml
  131. +1 −1 manifests/outputs/features/aggregate-failure-invalid-metrics.yaml
  132. +1 −1 manifests/outputs/features/aggregate-failure-missing-metric-in-inputs.yaml
  133. +4 −2 manifests/outputs/features/aggregate-horizontal.yaml
  134. +4 −2 manifests/outputs/features/aggregate-vertical.yaml
  135. +4 −2 manifests/outputs/features/aggregate.yaml
  136. +87 −0 manifests/outputs/features/regroup/failure-invalid-regroup.yaml
  137. +87 −0 manifests/outputs/features/regroup/failure-missing-cloud-instance-type.yaml
  138. +2 −2 manifests/outputs/pipelines/cloud-metadata-divide.yaml
  139. +28 −28 manifests/outputs/pipelines/generics.yaml
  140. +14 −14 manifests/outputs/pipelines/instance-metadata.yaml
  141. +0 −449 manifests/outputs/pipelines/mock-obs-time-sync.yaml
  142. +713 −486 manifests/outputs/pipelines/nesting.yaml
  143. +63 −32 manifests/outputs/pipelines/pipeline-teads-sci.yaml
  144. +105 −0 manifests/outputs/pipelines/scenario-4.yaml
  145. +56 −32 manifests/outputs/pipelines/sci.yaml
  146. +18 −18 manifests/outputs/pipelines/teads-curve.yaml
  147. +27 −27 manifests/outputs/pipelines/zeros.yaml
  148. +175 −98 package-lock.json
  149. +4 −3 package.json
  150. +0 −12 scripts/impact-test.sh
  151. +0 −8 scripts/run-yamls.sh
  152. +0 −73 scripts/yaml-to-csv/yaml-to-csv.md
  153. +0 −102 scripts/yaml-to-csv/yaml-to-csv.py
  154. +6 −8 src/__mocks__/builtins/export-yaml.ts
  155. +3 −4 src/__mocks__/fs/index.ts
  156. +1 −2 src/__mocks__/mock-manifest.yaml
  157. +1 −1 src/__tests__/common/util/helpers.test.ts
  158. +5 −5 src/__tests__/if-merge/util/helpers.test.ts
  159. +3 −3 src/__tests__/if-run/builtins/CommonGenerator.test.ts
  160. +5 −5 src/__tests__/if-run/builtins/RandIntGenerator.test.ts
  161. +143 −18 src/__tests__/if-run/builtins/coefficient.test.ts
  162. +106 −21 src/__tests__/if-run/builtins/copy-param.test.ts
  163. +119 −42 src/__tests__/if-run/builtins/csv-lookup.test.ts
  164. +134 −21 src/__tests__/if-run/builtins/divide.test.ts
  165. +162 −8 src/__tests__/if-run/builtins/exponent.test.ts
  166. +185 −47 src/__tests__/if-run/builtins/interpolation.test.ts
  167. +147 −76 src/__tests__/if-run/builtins/mock-observations.test.ts
  168. +162 −4 src/__tests__/if-run/builtins/multiply.test.ts
  169. +78 −18 src/__tests__/if-run/builtins/regex.test.ts
  170. +141 −164 src/__tests__/if-run/builtins/sci-embodied.test.ts
  171. +158 −34 src/__tests__/if-run/builtins/sci.test.ts
  172. +12 −16 src/__tests__/if-run/builtins/shell.test.ts
  173. +161 −4 src/__tests__/if-run/builtins/subtract.test.ts
  174. +154 −17 src/__tests__/if-run/builtins/sum.test.ts
  175. +137 −17 src/__tests__/if-run/builtins/time-converter.test.ts
  176. +992 −700 src/__tests__/if-run/builtins/time-sync.test.ts
  177. +14 −2 src/__tests__/if-run/lib/aggregate.test.ts
  178. +147 −35 src/__tests__/if-run/lib/compute.test.ts
  179. +1 −1 src/__tests__/if-run/lib/environment.test.ts
  180. +184 −21 src/__tests__/if-run/lib/explain.test.ts
  181. +7 −7 src/__tests__/if-run/lib/initialize.test.ts
  182. +73 −5 src/__tests__/if-run/lib/regroup.test.ts
  183. +37 −17 src/__tests__/if-run/util/aggregation-helper.test.ts
  184. +1 −101 src/__tests__/if-run/util/helpers.test.ts
  185. +1 −1 src/__tests__/if-run/util/plugin-storage.test.ts
  186. +4 −0 src/common/config/strings.ts
  187. +2 −3 src/common/types/manifest.ts
  188. +16 −4 src/common/util/debug-logger.ts
  189. +30 −24 src/common/util/validations.ts
  190. +1 −2 src/if-env/config/env-template.yml
  191. +41 −17 src/if-run/builtins/coefficient/README.md
  192. +50 −75 src/if-run/builtins/coefficient/index.ts
  193. +28 −8 src/if-run/builtins/copy-param/README.md
  194. +47 −74 src/if-run/builtins/copy-param/index.ts
  195. +31 −11 src/if-run/builtins/csv-lookup/README.md
  196. +167 −196 src/if-run/builtins/csv-lookup/index.ts
  197. +34 −12 src/if-run/builtins/divide/README.md
  198. +55 −85 src/if-run/builtins/divide/index.ts
  199. +29 −11 src/if-run/builtins/exponent/README.md
  200. +53 −59 src/if-run/builtins/exponent/index.ts
  201. +37 −22 src/if-run/builtins/interpolation/README.md
  202. +128 −158 src/if-run/builtins/interpolation/index.ts
  203. +27 −7 src/if-run/builtins/mock-observations/README.md
  204. +4 −4 src/if-run/builtins/mock-observations/helpers/common-generator.ts
  205. +6 −6 src/if-run/builtins/mock-observations/helpers/rand-int-generator.ts
  206. +124 −134 src/if-run/builtins/mock-observations/index.ts
  207. +27 −9 src/if-run/builtins/multiply/README.md
  208. +40 −62 src/if-run/builtins/multiply/index.ts
  209. +31 −11 src/if-run/builtins/regex/README.md
  210. +48 −83 src/if-run/builtins/regex/index.ts
  211. +76 −75 src/if-run/builtins/sci-embodied/README.md
  212. +175 −162 src/if-run/builtins/sci-embodied/index.ts
  213. +29 −8 src/if-run/builtins/sci/README.md
  214. +65 −77 src/if-run/builtins/sci/index.ts
  215. +15 −7 src/if-run/builtins/shell/README.md
  216. +39 −57 src/if-run/builtins/shell/index.ts
  217. +28 −11 src/if-run/builtins/subtract/README.md
  218. +38 −61 src/if-run/builtins/subtract/index.ts
  219. +47 −14 src/if-run/builtins/sum/README.md
  220. +37 −84 src/if-run/builtins/sum/index.ts
  221. +8 −8 src/if-run/builtins/time-converter/README.md
  222. +57 −79 src/if-run/builtins/time-converter/index.ts
  223. +44 −22 src/if-run/builtins/time-sync/README.md
  224. +448 −380 src/if-run/builtins/time-sync/index.ts
  225. +7 −1 src/if-run/config/config.ts
  226. +32 −21 src/if-run/config/strings.ts
  227. +4 −13 src/if-run/index.ts
  228. +24 −21 src/if-run/lib/aggregate.ts
  229. +76 −28 src/if-run/lib/compute.ts
  230. +1 −1 src/if-run/lib/exhaust.ts
  231. +58 −20 src/if-run/lib/explain.ts
  232. +16 −11 src/if-run/lib/initialize.ts
  233. +40 −21 src/if-run/lib/regroup.ts
  234. +7 −5 src/if-run/types/aggregation.ts
  235. +4 −0 src/if-run/types/compute.ts
  236. +0 −8 src/if-run/types/exhaust-plugin-interface.ts
  237. +11 −1 src/if-run/types/explain.ts
  238. +0 −6 src/if-run/types/interface.ts
  239. +1 −1 src/if-run/types/plugin-storage.ts
  240. +2 −0 src/if-run/types/process-args.ts
  241. +0 −20 src/if-run/types/time-sync.ts
  242. +27 −21 src/if-run/util/aggregation-helper.ts
  243. +2 −0 src/if-run/util/args.ts
  244. +0 −32 src/if-run/util/helpers.ts
  245. +1 −1 src/if-run/util/plugin-storage.ts
2 changes: 1 addition & 1 deletion .github/workflows/release-commit.yml
Original file line number Diff line number Diff line change
@@ -94,4 +94,4 @@ jobs:
- name: Create pull request
run: gh pr create -B ${{ vars.RELEASE_BRANCH_NAME }} -H $PR_BRANCH_NAME --title "Release ${{github.event.release.tag_name}}" --body "${{github.event.release.body}}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2 changes: 1 addition & 1 deletion .github/workflows/release-publish.yml
Original file line number Diff line number Diff line change
@@ -70,4 +70,4 @@ jobs:
run: npm publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
3 changes: 0 additions & 3 deletions .gitmodules

This file was deleted.

150 changes: 68 additions & 82 deletions Refactor-migration-guide.md
Original file line number Diff line number Diff line change
@@ -105,45 +105,24 @@ There have also been some changes to the structure of manifest files. Some of th
method: SciEmbodied
```
- **Global config**
We have introduced the concept of global config to the plugins. This is truly global configuration data that should be kept constant regardless of where the plugin is invoked across the manifest file.
- **Config**
We have introduced the concept of config to the plugins. This is truly configuration data that should be kept constant regardless of where the plugin is invoked across the manifest file.
A good example is the `interpolation` method to use in the Teads curve plugin - this is not expected to vary from component to component and can therefore be defined in global config. The plugin code itself must expect the global config. Then, the config can be passed in the `Initialize` block, for example:
A good example is the `interpolation` method to use in the Teads curve plugin - this is not expected to vary from component to component and can therefore be defined in config. The plugin code itself must expect the config. Then, the config can be passed in the `Initialize` block, for example:
```yaml
initialize:
plugins:
'time-sync':
method: TimeSync
path: 'builtin'
global-config:
config:
start-time: '2023-12-12T00:00:00.000Z'
end-time: '2023-12-12T00:01:00.000Z'
interval: 5
allow-padding: true
```
- **Node level config**
We have also introduced the concept of node-level config. This is designed for pluin configuration that might vary between components in the tree. For example, for each child in the tree you might wish to use the `regroup` feature to group the outputs according to a different set of keys.
```yaml
tree:
children:
child-1:
pipeline:
compute:
- teads-curve
- sci-e
- sci-embodied
- sci-o
- time-sync
- sci
regroup:
- region
- cloud/instance-type
```
- **Defaults**
We have also introduced the concept of `defaults`. This is a section in each component's definition that can be used to provide fallbacks for missing input data. For example, perhaps you have a value arriving from an external API that should be present in every observation in your inputs array, but for soem reason the API fails to deliver a value for some timestamps. In this case, IF would fallback to the value provided for that metric in the `defaults` section of the manifest for that component.
@@ -178,15 +157,15 @@ There have also been some changes to the structure of manifest files. Some of th
Technically time-sync is not a new feature as it was present in IF before the refactor, but there are some tweaks to how the plugin is configured that are worth explaining here. Time sync snaps all input arrays across an entire graph to a common time grid.
This means you have to define a global start time, end time and interval to use everywhere. There is also a boolean to toggle whether you should allow the time sync model to pad the start and end of your time series with zeroes. You should default to `true` unless you have a specific reason not to. In the refactored IF we expect this information to be provided in global config, as follows:
This means you have to define a start time, end time and interval to use everywhere. There is also a boolean to toggle whether you should allow the time sync model to pad the start and end of your time series with zeroes. You should default to `true` unless you have a specific reason not to. In the refactored IF we expect this information to be provided in config, as follows:
```yaml
initialize:
plugins:
'time-sync':
method: TimeSync
path: 'builtin'
global-config:
config:
start-time: '2023-12-12T00:00:00.000Z'
end-time: '2023-12-12T00:01:00.000Z'
interval: 5
@@ -220,68 +199,75 @@ Details tbc...
## Plugins
The plugins themselves require some changes to keep them compatible with the refactored IF.
Plugins require some modifications to remain compatible with the refactored IF interface.
Instead of the old class-based model, plugins are now functions. They conform to the following interface:
Each plugin follows the `PluginFactory` interface, which is a higher-order function that accepts a `params` object of type `PluginFactoryParams`. This function returns another function (the inner function), which handles the plugin’s `config`, `parametersMetadata`, and `mapping`.
```ts
export type PluginInterface = {
execute: (
inputs: PluginParams[],
config?: Record<string, any>
) => PluginParams[];
metadata: {
kind: string;
};
[key: string]: any;
};
export const PluginFactory =
(params: PluginFactoryParams) =>
(
config: ConfigParams = {},
parametersMetadata: PluginParametersMetadata,
mapping: MappingParams
) => ({
metadata: {
inputs: {...params.metadata.inputs, ...parametersMetadata?.inputs},
outputs: parametersMetadata?.outputs || params.metadata.outputs,
},
execute: async (inputs: PluginParams[]) => {
// Generic plugin functionality goes here
// E.g., mapping, arithmetic operations, validation
// Process inputs and mapping logic
});
})
```
The plugin still requires an execute function. This is where you implement the plugin logic.
Inner Function Parameters:
- `config`: This is of type `ConfigParams` and has a default value of an empty object ({}). This might hold configuration settings for the plugin.
- `parametersMetadata`: A `PluginParametersMetadata` object that describes the metadata for the plugin’s parameters.
- `mapping`: A `MappingParams` object, describing parameters are mapped.
Implementation Function:
Here's a minimal example for a plugin that sums some inputs defined in global config - see inline comments for some important notes:
The plugin requires an `implementation` function, where the actual plugin logic is defined.
Here’s a minimal example of a plugin that sums inputs as defined in the config. See the inline comments for further clarification.
```ts
// Here's the function definition - notice that global config is passed in here!
export const Sum = (globalConfig: SumConfig): PluginInterface => {
const inputParameters = globalConfig['input-parameters'] || [];
const outputParameter = globalConfig['output-parameter'];
// we also return metadata now too - you can add more or just use this default
const metadata = {
kind: 'execute',
};
/**
* Calculate the sum of the input metrics for each timestamp.
*/
const execute = async (inputs: PluginParams[]): Promise<PluginParams[]> => {
inputs.map(input => {
return calculateSum(input, inputParameters, outputParameter);
// Here's the function definition!
export const Sum = PluginFactory({
configValidation: z.object({
'input-parameters': z.array(z.string()),
'output-parameter': z.string().min(1),
}),
inputValidation: (input: PluginParams, config: ConfigParams) => {
return validate(validationSchema, inputData);
},
implementation: async (inputs: PluginParams[], config: ConfigParams) => {
const {
'input-parameters': inputParameters,
'output-parameter': outputParameter,
} = config;
return inputs.map(input => {
const calculatedResult = calculateSum(input, inputParameters);
return {
...input,
[outputParameter]: calculatedResult,
};
});
return inputs;
};
/**
* Calculates the sum of the energy components.
*/
const calculateSum = (
input: PluginParams,
inputParameters: string[],
outputParameter: string
) => {
input[outputParameter] = inputParameters.reduce(
(accumulator, metricToSum) => {
return accumulator + input[metricToSum];
},
0
);
};
// return the metadata and the execute function
return {
metadata,
execute,
};
};
},
allowArithmeticExpressions: [],
});
/**
* Calculates the sum of the energy components.
*/
const calculateSum = (input: PluginParams, inputParameters: string[]) =>
inputParameters.reduce(
(accumulator, metricToSum) => accumulator + input[metricToSum],
0
);
```
12 changes: 3 additions & 9 deletions github-processes.md
Original file line number Diff line number Diff line change
@@ -3,24 +3,18 @@

- [`if`](https://github.com/Green-Software-Foundation/if)
- source code for the IF
- [`if-core`](https://github.com/Green-Software-Foundation/if-core)
- helper types, interfaces and utilities for IF and plugin development
- [`if-plugins`](https://github.com/Green-Software-Foundation/if-plugins) **DEPRECATED**
- source code for standard library of plugins
- IF core team commit to maintaining these plugins
- [`if-unofficial-plugins`](https://github.com/Green-Software-Foundation/if-unofficial-plugins)
- [`if-unofficial-plugins`](https://github.com/Green-Software-Foundation/if-unofficial-plugins) **DEPRECATED**
- source code for plugins relying on third-party data/APIs
- intended to be deprecated and removed in mid-term future
- plugins in this repo should be handed over to relevant organizations to maintain
- [`if-plugin-template`](https://github.com/Green-Software-Foundation/if-plugin-template)
- template for new plugins
- intended for builders to bootstrap IF-compatible plugin development
- [`if-standards`](https://github.com/Green-Software-Foundation/if-standards)
- not currently used, but intended to be the home of params.ts
- will have a dedicated discussion board and governance to set IF standards
- [`if-exhaust plugins`](https://github.com/Green-Software-Foundation/if-exhaust-plugins)
- not currently used
- intended to become a separate repo just for exhaust plugins
- requires strict rules from if


## Branch names and purposes

71 changes: 0 additions & 71 deletions grafana/IF_GRAFANA_SETUP.md

This file was deleted.

Loading