Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v0.7.0-beta.0 #1038

Merged
merged 282 commits into from
Oct 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
282 commits
Select commit Hold shift + click to select a range
783e966
docs(builtins): update docs
manushak Aug 12, 2024
e3bf7c6
test(util): add unit tests for `mapConfigIfNeeded` and `mapInputIfNee…
manushak Aug 12, 2024
8dc3c76
test(builtins): update test accorgind to changes
manushak Aug 12, 2024
ee0806c
Merge branch 'main' into mapping-feature
manushak Aug 12, 2024
86083c1
fix(src): get back config and add todo comment to remove after some time
manushak Aug 12, 2024
7e59caf
Merge branch 'main' into node-config
manushak Aug 12, 2024
3566ab1
fix(util): rename `global-config` to config in the manifest schema
manushak Aug 12, 2024
09c855e
fix(config): rename MISSING_GLOBAL_CONFIG to MISSING_CONFIG
manushak Aug 12, 2024
7bdc885
fix(lib): rename `global-config` to config
manushak Aug 12, 2024
cea711a
fix(builtins): rename `global-config` to config in plugins
manushak Aug 12, 2024
37ce72b
fix(manifests): rename global-config to config
manushak Aug 12, 2024
3f0d624
fix(config): rename global-config to config in the if-env template
manushak Aug 12, 2024
c198e65
test(builtins): renam global-config to config
manushak Aug 12, 2024
d60817c
docs(builtins): update docs
manushak Aug 12, 2024
30ea6d5
Merge pull request #962 from Green-Software-Foundation/node-config
jmcook1186 Aug 13, 2024
9279ec0
feat(package): update if-core version
manushak Aug 13, 2024
1040032
test(builtins): rename `GlobalConfigError` to `ConfigError`
manushak Aug 13, 2024
78298c8
fix(builtins): rename `GlobalConfigError` to `ConfigError`
manushak Aug 13, 2024
8b35049
docs(builtins): rename `GlobalConfigError` to `ConfigError`
manushak Aug 13, 2024
8193156
fix(manifests): rename `GlobalConfigError` to `ConfigError`
manushak Aug 13, 2024
fc67470
fix(builtins): add support string and number types for `from` of copy…
manushak Aug 13, 2024
8f1b2f6
test(builtins): update copy-param test error message
manushak Aug 13, 2024
5da96dd
Merge pull request #967 from Green-Software-Foundation/fix-copy-param
narekhovhannisyan Aug 13, 2024
10ed069
feat(config): add debug strings
manushak Aug 14, 2024
f6dcc3d
feat(util): add emoty row support and add new strings
manushak Aug 14, 2024
7226fe5
fix(lib): add debug logs for observe and regroup phases, change the p…
manushak Aug 14, 2024
fe5cb1a
test(src): update tests
manushak Aug 14, 2024
18bcefe
fix(builtins): add a check for the config in missing plugins
manushak Aug 14, 2024
335cfe7
test(util): fix typo
manushak Aug 14, 2024
30acccd
fix(lib): change console.log to console.debug for empty row
manushak Aug 14, 2024
8019d8f
test(src): revert tests
manushak Aug 14, 2024
88e82c8
fix(config): change `OBSERVING` type
manushak Aug 14, 2024
4bc8a98
fix(lib): add missing debug logs
manushak Aug 14, 2024
45e8077
fix(config): update strings
manushak Aug 14, 2024
c7f89f7
fix(lib): fix logs positions
manushak Aug 14, 2024
cd22343
feat(src): add support for appending to existing outputs
jamescrowley Aug 4, 2024
65e3fd4
fix(config): update strings of debug mode
manushak Aug 18, 2024
7040757
feat(lib): add empty rows to seperate debug logs by sections
manushak Aug 18, 2024
f3f0bd5
Merge pull request #963 from Green-Software-Foundation/rename-global-…
manushak Aug 19, 2024
c064981
Merge branch 'main' into mapping-feature
manushak Aug 19, 2024
c4c345a
Merge pull request #923 from Green-Software-Foundation/mapping-feature
jmcook1186 Aug 19, 2024
aeddbed
feat(util): add map output functionality
manushak Aug 20, 2024
b45a63b
feat(builtins): add map output logic into plugins
manushak Aug 20, 2024
8b2f89b
fix(src): fix node-level config warning
manushak Aug 20, 2024
ac83622
fix(builtins): update mapping descritption in Readme files
manushak Aug 20, 2024
3f63a32
test(util): add tests for mapOutputIfNeeded function
manushak Aug 20, 2024
9bfadcc
fix(config): fix lint warnring
manushak Aug 20, 2024
eb3fb68
test(builtins): add tests for mapping output
manushak Aug 20, 2024
3ac531b
Merge pull request #969 from Green-Software-Foundation/fix-debug
jmcook1186 Aug 20, 2024
b68b852
feat(config): add string for debug log
manushak Aug 20, 2024
16c956d
feat(util): update debug logic to accept exeption in formating message
manushak Aug 20, 2024
0bcc163
feat(lib): add debug log for tree components
manushak Aug 20, 2024
658afa9
test(lib): make the regroup intended behaviour clearer
jamescrowley Aug 16, 2024
d5e2fda
test(lib): fix typos in test names
jamescrowley Aug 17, 2024
d7a145a
refactor(lib): refactor regroup so we can then include outputs
jamescrowley Aug 19, 2024
4b48f87
refactor(lib): extract function for looking up group key value
jamescrowley Aug 19, 2024
58697a1
refactor(lib): remove unnecessary spread
jamescrowley Aug 19, 2024
bf664a6
feat(lib): apply regroup to outputs not just inputs
jamescrowley Aug 20, 2024
cc0968c
Merge pull request #974 from Green-Software-Foundation/improve-debug
narekhovhannisyan Aug 21, 2024
a8c2c12
Merge pull request #973 from Green-Software-Foundation/map-output
narekhovhannisyan Aug 21, 2024
24b585d
feat(package): update if-core version
manushak Aug 21, 2024
f5d7043
feat(util): remove mapping functions
manushak Aug 21, 2024
a781b0f
test(util): remove mapping functions tests
manushak Aug 21, 2024
d908767
feat(builtins): update mapping functions path
manushak Aug 21, 2024
8222e47
Merge pull request #978 from Green-Software-Foundation/move-mapping-f…
jmcook1186 Aug 22, 2024
cc5c093
feat(package): update if-core version
narekhovhannisyan Aug 27, 2024
8b7014c
feat(types): use aggregation from if core
narekhovhannisyan Aug 27, 2024
7031c76
feat(util): introduce copy and none methods to aggregation helper
narekhovhannisyan Aug 27, 2024
d04de7e
feat(lib): return none aggregation method
narekhovhannisyan Aug 27, 2024
f742a0b
revert(config): drop sci embodied message from strings
narekhovhannisyan Aug 27, 2024
7186365
feat(builtins): introduce none and copy aggregation methods
narekhovhannisyan Aug 27, 2024
115c813
doc(builtins): introduce documentation for sci embodied
narekhovhannisyan Aug 27, 2024
3697ae3
feat(builtins): implement upgraded version of sci embodied
narekhovhannisyan Aug 27, 2024
06d4045
feat(src): use aggregation methods from if core
narekhovhannisyan Aug 27, 2024
5dd9f00
fix(util): fix console log issue in debug logger
narekhovhannisyan Aug 27, 2024
5cd992b
feat(types): use aggregation methods from if core
narekhovhannisyan Aug 27, 2024
6a31dbf
test(util): update aggregation usage in aggregation helper
narekhovhannisyan Aug 27, 2024
c96a03d
tesst(lib): remove skip from environment, fix typo
narekhovhannisyan Aug 27, 2024
f557eb7
test(lib): update aggregation usage in aggregation
narekhovhannisyan Aug 27, 2024
387801c
test(builtins): update time sync units
narekhovhannisyan Aug 27, 2024
2365c4c
test(builtins): implement units for sci embodied
narekhovhannisyan Aug 27, 2024
c43c5eb
revert(util): remove conole.log from aggregation helper
narekhovhannisyan Aug 27, 2024
9386f38
feat(lib): update sci-embodied touse usage-ratio instea of total-vcpus
jmcook1186 Aug 28, 2024
cf2b053
feat(lib): update sci-embodied unit tests
jmcook1186 Aug 28, 2024
cc17428
feat(lib): update sci-embodied readme
jmcook1186 Aug 28, 2024
b2c4f22
feat(manifets): init updated sci embodied samples
narekhovhannisyan Aug 28, 2024
a60a34c
chore(src): fetch changes from remote
narekhovhannisyan Aug 28, 2024
8f3d5ea
feat(config): add strings for explain feature
manushak Aug 28, 2024
428196f
feat(lib): update explain feature logic
manushak Aug 28, 2024
2a286a2
feat(types): add `ExplainStorageType` type
manushak Aug 28, 2024
ee33f3e
test(lib): update tests and add new ones
manushak Aug 28, 2024
314e24a
Update src/if-run/builtins/sci-embodied/README.md
narekhovhannisyan Aug 28, 2024
bfc001c
Update src/if-run/builtins/sci-embodied/README.md
narekhovhannisyan Aug 28, 2024
23b0b31
fix(manifests): update sci embodied configs
narekhovhannisyan Aug 28, 2024
cd3d4ba
Merge branch 'sci-redesign' of github.com:Green-Software-Foundation/i…
narekhovhannisyan Aug 28, 2024
df91712
revert(builtins): remove comment from sci embodied
narekhovhannisyan Aug 28, 2024
1e89d1c
fix(manifests): fix broken manifests
manushak Aug 28, 2024
2e05ea6
fix(manifests): fix indentation of default in sci embodied
narekhovhannisyan Aug 28, 2024
cb57527
Merge pull request #995 from Green-Software-Foundation/sci-redesign
jmcook1186 Aug 28, 2024
8dfcd90
Merge pull request #998 from Green-Software-Foundation/fix-manifests
jmcook1186 Aug 28, 2024
79aad35
Merge pull request #996 from Green-Software-Foundation/explain-rework
jmcook1186 Aug 29, 2024
5b3e810
fix(lib): change default aggregation method
narekhovhannisyan Sep 4, 2024
18dd4c1
fix(builtins): add a bit of doc, remove additional 1 second
narekhovhannisyan Sep 4, 2024
359e600
test(builtins): update time sync
narekhovhannisyan Sep 4, 2024
490f283
Merge pull request #1003 from Green-Software-Foundation/time-sync-fix
manushak Sep 9, 2024
098a23e
feat(util): enable granular aggregation in helper
narekhovhannisyan Sep 9, 2024
5f6b055
feat(types): use aggregation options as method
narekhovhannisyan Sep 9, 2024
ea5270f
feat(types): enable time and component aggregations
narekhovhannisyan Sep 9, 2024
e4e01e2
fix(lib): update docs, improve readablity in initialize
narekhovhannisyan Sep 9, 2024
bca7629
feat(lib): use granular aggregation in explain
narekhovhannisyan Sep 9, 2024
d456789
feat(lib): introduce granular aggregation to aggregate
narekhovhannisyan Sep 9, 2024
668dfba
feat(config): rename additional params to time metrics
narekhovhannisyan Sep 9, 2024
dc840e6
feat(builtins): use granular aggregation in time sync
narekhovhannisyan Sep 9, 2024
2930d43
feat(builtins): use granular aggregation methods in sci embodied
narekhovhannisyan Sep 9, 2024
3a9c12f
feat(builtins): use granular aggregation methods in sci
narekhovhannisyan Sep 9, 2024
1fa4dec
feat(src): simplify if-run index
narekhovhannisyan Sep 9, 2024
6938764
feat(util): introduce granular aggregation to validation
narekhovhannisyan Sep 9, 2024
2d53237
feat(types): enable time and component aggregations in manifest
narekhovhannisyan Sep 9, 2024
c9aeaf9
test(util): tune aggregation helper units
narekhovhannisyan Sep 9, 2024
a650544
test(lib): tune explain units
narekhovhannisyan Sep 9, 2024
0113ed5
test(lib): tune aggregate units
narekhovhannisyan Sep 9, 2024
79ead4c
test(builtins): tune time-sync units
narekhovhannisyan Sep 9, 2024
bfb7b29
feat(package): update if-core version
narekhovhannisyan Sep 10, 2024
922cbc4
fix(builtins): fix output param of sci embodied
narekhovhannisyan Sep 10, 2024
a6b518f
Merge pull request #1008 from Green-Software-Foundation/granular-aggr…
narekhovhannisyan Sep 10, 2024
22ed978
Merge pull request #932 from jamescrowley/append
jmcook1186 Sep 10, 2024
b800ad9
fix(manifests): rename `carbon-embodied` to `embodied-carbon`
manushak Sep 11, 2024
5d5311c
fix(manifests): fix sci-embodied success manifest
manushak Sep 11, 2024
fb1c73b
fix(mocks): rename `carbon-embodied` to `embodied-carbon`
manushak Sep 11, 2024
ed44b19
docs(builtins): rename `carbon-embodied` to `embodied-carbon`
manushak Sep 11, 2024
d0d982b
fix(manifests): fix `aggregation-method` of manifests
manushak Sep 12, 2024
a9b60a8
fix(manifests): fix failure manifests
manushak Sep 12, 2024
1f60948
fix(manifests): remove unnecessary manifests
manushak Sep 12, 2024
f368a1f
fix(manifests): update outdated output manifests
manushak Sep 12, 2024
cec3813
fix(manifests): add missed output manifests
manushak Sep 12, 2024
7251ade
fix(manifests): remove unnecessary manifests
manushak Sep 12, 2024
f967f3b
fix(scripts): fix script to create output manifests
manushak Sep 12, 2024
02447e5
fix(doc): fix aggregation-method in readme files of plugins
manushak Sep 12, 2024
2cd92a8
docs(builtins): fix `aggregation-method` description in the plugins r…
manushak Sep 12, 2024
ca6b523
feat(builtins): add inline arithmetic logic into plugins
manushak Sep 6, 2024
796cf7e
test(builtins): add tests related to inline arithmetic feature
manushak Sep 6, 2024
27f6e27
feat(package): update if-core version
manushak Sep 9, 2024
3e198bf
feat(config): add strings for explain feature
manushak Aug 28, 2024
ccec981
feat(lib): update explain feature logic
manushak Aug 28, 2024
cd877b1
feat(types): add `ExplainStorageType` type
manushak Aug 28, 2024
c4574a5
test(lib): update tests and add new ones
manushak Aug 28, 2024
7d07ada
fix(lib): change default aggregation method
narekhovhannisyan Sep 4, 2024
5a86cf3
fix(builtins): add a bit of doc, remove additional 1 second
narekhovhannisyan Sep 4, 2024
20e56ee
test(builtins): update time sync
narekhovhannisyan Sep 4, 2024
943921e
feat(util): enable granular aggregation in helper
narekhovhannisyan Sep 9, 2024
4f01a8e
feat(types): use aggregation options as method
narekhovhannisyan Sep 9, 2024
35f8142
feat(types): enable time and component aggregations
narekhovhannisyan Sep 9, 2024
b58cbbf
fix(lib): update docs, improve readablity in initialize
narekhovhannisyan Sep 9, 2024
23bc5f9
feat(lib): use granular aggregation in explain
narekhovhannisyan Sep 9, 2024
5832a24
feat(lib): introduce granular aggregation to aggregate
narekhovhannisyan Sep 9, 2024
ee6c2ab
feat(config): rename additional params to time metrics
narekhovhannisyan Sep 9, 2024
3c07a4a
feat(builtins): use granular aggregation in time sync
narekhovhannisyan Sep 9, 2024
1f278ec
feat(builtins): use granular aggregation methods in sci embodied
narekhovhannisyan Sep 9, 2024
f76ab33
feat(builtins): use granular aggregation methods in sci
narekhovhannisyan Sep 9, 2024
ae24412
feat(src): simplify if-run index
narekhovhannisyan Sep 9, 2024
78de556
feat(util): introduce granular aggregation to validation
narekhovhannisyan Sep 9, 2024
dc1ccc7
feat(types): enable time and component aggregations in manifest
narekhovhannisyan Sep 9, 2024
39367ac
test(util): tune aggregation helper units
narekhovhannisyan Sep 9, 2024
e9999d7
test(lib): tune explain units
narekhovhannisyan Sep 9, 2024
dd88ca8
test(lib): tune aggregate units
narekhovhannisyan Sep 9, 2024
91180e0
test(builtins): tune time-sync units
narekhovhannisyan Sep 9, 2024
921f461
feat(package): update if-core version
narekhovhannisyan Sep 10, 2024
116e48f
fix(builtins): fix output param of sci embodied
narekhovhannisyan Sep 10, 2024
cda5681
feat(src): add support for appending to existing outputs
jamescrowley Aug 4, 2024
4e8c5e1
test(lib): make the regroup intended behaviour clearer
jamescrowley Aug 16, 2024
a9ab295
test(lib): fix typos in test names
jamescrowley Aug 17, 2024
3d51191
refactor(lib): refactor regroup so we can then include outputs
jamescrowley Aug 19, 2024
c860286
refactor(lib): extract function for looking up group key value
jamescrowley Aug 19, 2024
fa06cfa
refactor(lib): remove unnecessary spread
jamescrowley Aug 19, 2024
4aa79e1
feat(lib): apply regroup to outputs not just inputs
jamescrowley Aug 20, 2024
7279f92
fix(builtins): minor fix
manushak Sep 17, 2024
af3c600
fix(builtins): minor fix
manushak Sep 17, 2024
e3fd10f
fix(builtins): minor fix
manushak Sep 17, 2024
982cfca
feat(src): add support for appending to existing outputs
jamescrowley Aug 4, 2024
7618d8b
feat(lib): apply regroup to outputs not just inputs
jamescrowley Aug 20, 2024
f381e56
fix(builtins): fix linter error
manushak Sep 17, 2024
13761ed
Merge branch 'main' into inline-arithmetic
manushak Sep 17, 2024
79a0ec4
Merge pull request #1004 from Green-Software-Foundation/inline-arithm…
manushak Sep 17, 2024
8cea46c
Merge pull request #1012 from Green-Software-Foundation/fix-manifests…
jmcook1186 Sep 17, 2024
3d37db2
Merge pull request #1014 from Green-Software-Foundation/add-fix-manif…
jmcook1186 Sep 17, 2024
270b3fa
feat(types): add upsampling-resolution to time-sync related types
mouhamadalmounayar Aug 21, 2024
e22feb8
feat(builtins): add upsampling-resolution to time-sync
mouhamadalmounayar Aug 21, 2024
9dddd5d
feat(builtins): refactor , and plugins
manushak Sep 19, 2024
7e5d867
feat(builtins): refactor plugins
manushak Sep 20, 2024
4ff5d3f
test(builtins): temporary skip refcatored plugins' tests
manushak Sep 20, 2024
a9e3fec
feat(builtins): refactor sci-embodied plugin
manushak Sep 21, 2024
f57fd97
test(builtins): temporary skip sci-embodeied tests
manushak Sep 21, 2024
17f823b
fix(util): fix ts complainig related to unnecessary assigning plugin…
manushak Sep 21, 2024
621423d
refactor(builtins): add more granular error messages for invalid upsa…
mouhamadalmounayar Sep 21, 2024
9e08d52
Merge pull request #990 from mouhamadalmounayar/custom-upsampling-res…
narekhovhannisyan Sep 23, 2024
ba6b1c8
feat(builtins): refactor sum plugin
manushak Sep 23, 2024
c0f5572
test(builtins): temporary skip sum plugin tests
manushak Sep 23, 2024
d11400f
chore(src): merge branch 'main' refactor-plugins
narekhovhannisyan Sep 23, 2024
8bff085
fix(builtins): fix plugins config validation issue
manushak Sep 25, 2024
2f8eaec
docs(builtins): update readme files of plugins
manushak Sep 25, 2024
4fee1ac
docs(builtins): update time-converter readme file
manushak Sep 25, 2024
3cee69c
docs(src): update migration guide
manushak Sep 25, 2024
577f76f
test(builtins): update plugins' tests
manushak Sep 25, 2024
cb7cde7
chore(src): fetch latest changes from refactor-plugins
narekhovhannisyan Sep 26, 2024
04aa551
test(builtins): remove skip from mock observation
narekhovhannisyan Sep 28, 2024
7bce20d
test(builtins): tune unit tests for time sync
narekhovhannisyan Sep 29, 2024
7963d25
feat(builtins): rewrite regex with plugin factory
narekhovhannisyan Sep 29, 2024
c1e019e
feat(builtins): rewrite shell with plugin factory
narekhovhannisyan Sep 29, 2024
5f903fc
feat(builtins): rewrite time-sync with plugin factory
narekhovhannisyan Sep 29, 2024
23e0742
test(builtins): fix tests for `time-sync` and `sci-embodied` plugins
manushak Sep 30, 2024
93f6b5f
fix(builtins): fix arithmetic feature logic in the coeffient and sci-…
manushak Sep 30, 2024
01646f1
revert(types): remove time sync
narekhovhannisyan Sep 30, 2024
4f7361e
fix(builtins): minor issues in time sync, import types from if-core
narekhovhannisyan Sep 30, 2024
3cc0472
feat(builtins): drop empty metadata objects
narekhovhannisyan Sep 30, 2024
bea643b
feat(package): update if-core dependency version
narekhovhannisyan Sep 30, 2024
b889285
feat(doc): drop empty metadata from example
narekhovhannisyan Sep 30, 2024
cf83951
Merge pull request #1032 from Green-Software-Foundation/refactor-plugins
narekhovhannisyan Oct 1, 2024
ef18aaa
revert(types): drop interface
narekhovhannisyan Oct 2, 2024
72245f2
feat(doc): update github processes
narekhovhannisyan Oct 2, 2024
8b4a7eb
revert(types): drop exhaust plugin interface
narekhovhannisyan Oct 2, 2024
1d3b7d0
feat(util): use plugin interface from if core
narekhovhannisyan Oct 2, 2024
83c0263
revert(util): drop unused store aggregation methods
narekhovhannisyan Oct 2, 2024
19cb96d
refactor(util): rename inputs to outputs in aggregation helper
narekhovhannisyan Oct 2, 2024
0607f3e
refactor(types): use plugin interface from if core in plugin storage
narekhovhannisyan Oct 2, 2024
b4aa9de
refactor(lib): use plugin interface from if core in initalize
narekhovhannisyan Oct 2, 2024
19e480f
refactor(lib): drop isExecute type guard from compute
narekhovhannisyan Oct 2, 2024
8e9b1c3
refactor(lib): rename aggregate inputs into one function in aggregate
narekhovhannisyan Oct 2, 2024
d3a4463
fix(util): check args before usage in debug logger
narekhovhannisyan Oct 2, 2024
71d97e2
revert(scripts): drop run yamls, impact test
narekhovhannisyan Oct 2, 2024
08f179d
revert(src): drop grafana
narekhovhannisyan Oct 2, 2024
cbbb67d
test(lib): drop kind field
narekhovhannisyan Oct 3, 2024
af17b40
test(util): rename aggregate inputs into one
narekhovhannisyan Oct 3, 2024
d05744d
test(util): drop storeAggregationMethods
narekhovhannisyan Oct 3, 2024
d3c83cc
test(util): drop metadata kind from plugin storage
narekhovhannisyan Oct 3, 2024
682bdbe
feat(builtins): drop evaluate input from time sync
narekhovhannisyan Oct 3, 2024
73ddaf7
chore(package): update if-core version
narekhovhannisyan Oct 3, 2024
a053838
fix(builtins): fix typo in sci embodied outputs.unit
narekhovhannisyan Oct 3, 2024
02635c9
fix(doc): drop kind execute from migration guide
narekhovhannisyan Oct 3, 2024
5982794
Merge pull request #1034 from Green-Software-Foundation/cleanup
narekhovhannisyan Oct 4, 2024
2c62619
fix(manifests): fix failed manifests
manushak Oct 4, 2024
fc357df
fix(builtins): fix config missing error in time-sync
manushak Oct 4, 2024
8a4c379
test(builtins): fix test related to config missing error
manushak Oct 4, 2024
ee814c0
fix(config): clean up not used strings
manushak Oct 4, 2024
e07f40b
fix(manifests): fix time-sync manifests
manushak Oct 4, 2024
39a056a
revert(src): drop .gitmodules
narekhovhannisyan Oct 4, 2024
d0894b6
chore(package): update keywords
narekhovhannisyan Oct 4, 2024
dd172d5
Merge pull request #1036 from Green-Software-Foundation/fix-manifests
narekhovhannisyan Oct 4, 2024
1bf698e
fix(manifests): drop manifests that contains regroup
manushak Oct 4, 2024
a97a99e
Merge pull request #1037 from Green-Software-Foundation/drop-outputs
narekhovhannisyan Oct 4, 2024
44ce841
chore(release): v0.7.0-beta.0 ✨
narekhovhannisyan Oct 4, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Expand Up @@ -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.
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Up @@ -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

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

This file was deleted.

Loading