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

Allow Variable Steps in the Dataflow Processor #509

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
26231d7
wip, feat: outsourcing the default steps to allow a more sophisticate…
EagleoutIce Nov 22, 2023
dbf6613
feat, wip: basic pipeline verification
EagleoutIce Nov 22, 2023
c664b07
feat: basic pipeline dependency checking
EagleoutIce Nov 22, 2023
8a8ef0b
test: test error cases of topo-sort
EagleoutIce Nov 22, 2023
591396e
test: simple dependency ordering in pipeline
EagleoutIce Nov 22, 2023
4c79024
test: improve checking of all permutations with toposort
EagleoutIce Nov 22, 2023
0717aad
test: add default pipline to the permutation tests
EagleoutIce Nov 22, 2023
970abdf
lint-fix: remove unnecessary input
EagleoutIce Nov 22, 2023
ba242df
refactor: improve names involved in the pipeline construction
EagleoutIce Nov 24, 2023
5837668
doc: document the pipeline interface and friends
EagleoutIce Nov 24, 2023
5306718
Allow scope declarations in structured commit messages (#512)
EagleoutIce Nov 24, 2023
a08fdf5
Merge branch 'main' into 508-allow-multiple-functions-to-be-used-as-d…
EagleoutIce Nov 24, 2023
fc9d0ca
feat, wip(pipeline): working on `decoration` for dependencies in step…
EagleoutIce Nov 24, 2023
4134d8f
refactor(pipeline): optional decorates step, and name as part of the …
EagleoutIce Nov 24, 2023
e22fca1
refactor(pipeline-dep): add rule invalidation numbers to the dependen…
EagleoutIce Nov 24, 2023
6689b40
feat(pipeline): topo-sort now has borderline support for decoration step
EagleoutIce Nov 24, 2023
9ca0102
refactor(pipeline): hoist loop invariant `last`
EagleoutIce Nov 24, 2023
1e89a99
feat(pipeline): toposort support for decoratorse elements
EagleoutIce Nov 24, 2023
3f1afc6
refactor, fix(pipeline): improve init handling of decorator steps and…
EagleoutIce Nov 24, 2023
57b0e74
test-fix(pipeline): check invalid pipeline before starting to run the…
EagleoutIce Nov 24, 2023
4afcaee
refactor(pipeline): clean up handling of visited elements
EagleoutIce Nov 24, 2023
ce8b79a
refactor, test-fix(pipeline): decorating steps can never be inits
EagleoutIce Nov 24, 2023
c07efbe
refactor, test-fix(pipeline): support multiple decorators and further…
EagleoutIce Nov 24, 2023
372d53a
refactor, test(pipeline): clarify that we test all permutations
EagleoutIce Nov 24, 2023
2149b0f
test(pipeline): add a test case to specifically guard againts missing…
EagleoutIce Nov 24, 2023
fa891aa
refactor(pipeline): remove initial step guards
EagleoutIce Nov 24, 2023
5918e5d
Robustify Git-Hooks for use with GitHub Desktop (#499)
EagleoutIce Nov 24, 2023
b0d17cc
refactor(pipeline): remove redundant generic type
EagleoutIce Nov 24, 2023
f86a20d
Improve pre-push hook with GitHub Desktop by detecting windows (#515)
EagleoutIce Nov 24, 2023
42f8b83
refactor, fix(test-coverage): hopefully source maps work now
EagleoutIce Nov 24, 2023
4b30aa2
refactor(test-coverage): remove inline source map from the tsconfig
EagleoutIce Nov 24, 2023
7f20772
test(pipeline): test decoration cycles
EagleoutIce Nov 24, 2023
bfe9859
Merge branch 'main' into 508-allow-multiple-functions-to-be-used-as-d…
EagleoutIce Nov 24, 2023
6f246e5
test(pipeline): test errors for non-existing decoration steps
EagleoutIce Nov 24, 2023
941c7ea
refactor(pipeline): minor complexity reduction for the toposort
EagleoutIce Nov 24, 2023
616413b
refactor(pipeline): elevate step names in a pipeline
EagleoutIce Nov 24, 2023
338dbb2
refactor(pipeline): allow to acess step types
EagleoutIce Nov 24, 2023
c467a64
feat(pipeline): migrate type helpers
EagleoutIce Nov 24, 2023
9b30402
refactor(pipeline): improve the pipeline printer
EagleoutIce Nov 24, 2023
03480c5
wip(pipeline): takeover to port in- and output
EagleoutIce Nov 24, 2023
b3b5d25
test-fix(pipeline): remove example
EagleoutIce Nov 24, 2023
b688982
feat(steps): add required input per step
EagleoutIce Nov 24, 2023
024aebc
feat(pipeline): collect pipeline output
EagleoutIce Nov 24, 2023
f03acfe
refactor(pipeline): propose pipeline output
EagleoutIce Nov 24, 2023
beaa75b
refactor(phases): now talk about when a step is to be executed
EagleoutIce Nov 24, 2023
96d58de
refactor(pipeline): rename pipeline creation file from dependency che…
EagleoutIce Nov 24, 2023
0e8f2cc
refactor, wip(pipeline): working on execution-state aware pipeline cr…
EagleoutIce Nov 24, 2023
195077e
feat(pipeline-create): rudimentary support for execution stages
EagleoutIce Nov 24, 2023
bb36ae9
refactor(pipeline-creation): minor optimizing touches to pipeline opt…
EagleoutIce Nov 24, 2023
a7908ea
refactor, wip(pipeline-executor): working on migrating the slicer sem…
EagleoutIce Nov 24, 2023
d10f614
refactor, wip(pipeline-executor): migrate `nextStep`
EagleoutIce Nov 24, 2023
49064cc
refactor, wip(pipeline): we need to unify the design of a pipeline step
EagleoutIce Nov 24, 2023
44c0347
refactor(pipeline-print): move the pipeline print function to the cor…
EagleoutIce Nov 24, 2023
246e95e
refactor, wip(pipeline-steps): start to port new common processor style
EagleoutIce Nov 24, 2023
cff01af
refactor, wip(pipeline-steps): basic type unidifications for step types
EagleoutIce Nov 24, 2023
511e255
refactor(steps): reuse step definitions in legacy const step structure
EagleoutIce Nov 24, 2023
73ab0da
refactor(stepping-slicer): migrate the stepping slicer glue to our ne…
EagleoutIce Nov 24, 2023
8673956
test-fix: update the stepping slicer to work with the new step passin…
EagleoutIce Nov 24, 2023
c2a30f7
refactor(steps): defer guards for step processors -> if we are wired …
EagleoutIce Nov 24, 2023
78809c1
refactor(pipeline-executor): a little bit of unsafe magic behind `doN…
EagleoutIce Nov 24, 2023
bd5a551
feat(pipeline-executor): at least the syntax is no longer a problem :D
EagleoutIce Nov 24, 2023
4393f42
test-fix(pipeline-create): fix correct index for start of per-request…
EagleoutIce Nov 24, 2023
f1e97f7
refactor(static-slicing): move static slicing steps accordingly
EagleoutIce Nov 24, 2023
c48a132
refactor(pipeline-core): relocate core steps as well
EagleoutIce Nov 24, 2023
6846048
refactor(stepping-slicer): update filename from `slicer` to `stepping…
EagleoutIce Nov 24, 2023
dda10a7
refactor, wip(stepping-slicer): migrate stepping slicer to use the pi…
EagleoutIce Nov 24, 2023
87bf0f3
test-fix(stepping-slicer): use intermediate results if not skipping s…
EagleoutIce Nov 25, 2023
4b906f2
feat-fix(pipeline-executor): do per-request steps not relying on the …
EagleoutIce Nov 25, 2023
0de5024
refactor, test: remove console-log
EagleoutIce Nov 25, 2023
fb4e077
refactor(stepping-slicer): clean up legacy pipeline structure
EagleoutIce Nov 25, 2023
f26b530
lint-fix: deal with unused imports and functions linter errors
EagleoutIce Nov 25, 2023
53e7e78
doc(pipeline): improve documentation of `createPipeline` and friends
EagleoutIce Nov 29, 2023
07a7b38
refactor(pipeline): a pipeline is no (deep) readonly
EagleoutIce Nov 29, 2023
01495c5
refactor(pipeline-executor): improve and reduce some unnecessary checks
EagleoutIce Nov 29, 2023
e637c00
refactor, wip(pipeline-executor): inline guard
EagleoutIce Nov 29, 2023
6409702
refactor(stepping-slicer): clean up doNextStep
EagleoutIce Nov 29, 2023
2f927d7
doc(stepping-slicer): remove old todo
EagleoutIce Nov 29, 2023
e3a3fe9
refactor(pipeline-executor): remove another unnecessary step
EagleoutIce Nov 29, 2023
8b5ca6c
refactor(pipeline-executor): one-step unwrap of async in pipeline-exe…
EagleoutIce Nov 29, 2023
5374d87
refactor(static-slice): hoist empty env when initializing visiting qu…
EagleoutIce Nov 29, 2023
7f98544
refactor(static-slicer): clean up redundant checks and access-operations
EagleoutIce Nov 29, 2023
8bf74eb
refactor(static-slicer): do not use default map but directly embed se…
EagleoutIce Nov 29, 2023
6aeeda0
refactor(static-slicer): collect `baseEnvironment`
EagleoutIce Nov 29, 2023
5f9b190
refactor(benchmark-slicer): rename the hosting file to better reflect…
EagleoutIce Nov 29, 2023
a92674c
refactor(pipeline): update the index file to include the default pipe…
EagleoutIce Nov 29, 2023
8bcec1f
refactor(shell): options will now no longer use a deep merge as it se…
EagleoutIce Nov 29, 2023
6a5037b
refactor: RShells now use a const enum for revive options
EagleoutIce Nov 29, 2023
6f814b0
refactor(shell): try to speedup R-Session startup time
EagleoutIce Nov 29, 2023
952019f
refactor(test): shell pkg loading scheme for packages
EagleoutIce Nov 29, 2023
9d919da
refactor(shell, test): tryyyy to host shell
EagleoutIce Nov 29, 2023
cc36f19
Revert "refactor(shell, test): tryyyy to host shell"
EagleoutIce Nov 29, 2023
d153b32
refactor(pipeline-executor): clean up pipeline executor
EagleoutIce Nov 29, 2023
d24bfea
refactor(meta): allow nyc to cache again
EagleoutIce Nov 29, 2023
c8e7eb3
refactor(meta): clean up nyc reporters
EagleoutIce Nov 29, 2023
81cc254
refactor(nyc): skip fully covered
EagleoutIce Nov 29, 2023
a21502e
refactor(test): remove unnecessary parenthesis
EagleoutIce Nov 29, 2023
a1b07d1
refactor, wip(pipeline): improve slicing input handler
EagleoutIce Nov 29, 2023
bbf882a
doc(pipeline-executor): rewrite the main doc for the pipline executor…
EagleoutIce Nov 29, 2023
3459f17
refactor(pipeline-executor): make guard message a supplier to avoid t…
EagleoutIce Nov 29, 2023
ee6211c
doc(wiki, interface): deprecation information for SteppingSlicer
EagleoutIce Nov 29, 2023
15c1c12
refactor(test): remove dummy test/tests
EagleoutIce Nov 29, 2023
8bf1f67
doc(wiki, interface): rudimentary pipeline-executor explanation
EagleoutIce Nov 29, 2023
48e4747
refactor(steps): clean up processor types
EagleoutIce Nov 29, 2023
f92353c
lint-fix(pipeline): remove unused type helper i used to experiment
EagleoutIce Nov 29, 2023
4c46edb
lint-fix: remove some of the i-won't do them now todos
EagleoutIce Nov 29, 2023
63e7595
refactor: rename `NameOfStep` to `PipelineStepName`
EagleoutIce Nov 29, 2023
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
14 changes: 12 additions & 2 deletions .githooks/commit-msg
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,19 @@ message_file="$1"
message=$(cat "$message_file")

# Define the regular expression pattern
regex="^((\[(no|skip) ci\] )?(((feat|tests?|lint|refactor|ci|git|special|doc|typo|log|ts|fix|wip|docker|dep)(-fix|-fail)?(, ?)?)+: |Merge (remote-tracking )?branch|Auto-merging).+|\[release:(patch|minor|major)\] .+)"
regex="^((\[(no|skip) ci\] )?" # allow to skip ci steps if required
regex="$regex(Merge (remote-tracking )?branch|Auto-merging|" # allow merge commit messages
regex="$regex(" # allow multiple types
regex="$regex(feat|tests?|lint|refactor|ci|git|special|doc|typo|ts|fix|wip|docker|dep)" # all valid types
regex="$regex(-fix|-fail)?" # optional fail suffix
regex="$regex(\([^)]+\))?" # optional scope
regex="$regex(, ?)?" # optional comma between types
regex="$regex)+: " # at least one type is required
regex="$regex)" # allow arbitrary message (no end marker)
regex="$regex|\[release:(patch|minor|major)\] .+)" # alternatively, allow release commits (only to be done on main)

if ! echo "$message" | grep -qE "$regex"; then
echo "[POLICY] Your message is not formatted correctly. Respect the regex: '$regex'!"
echo "[POLICY] Your message is not formatted correctly. Please respect the style defined in '.github/CONTRIBUTING.md'."
printf "[POLICY] Your message was (ignoring git comments):\n\n%s\n" "$(echo "$message" | grep -vE "^#")"
exit 1
fi
41 changes: 37 additions & 4 deletions .githooks/pre-push
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,42 @@

set -eu

if ! [ -x "$(command -v npm)" ]; then
echo 'Error: npm not found. Make it available to the host shell (e.g., with "nvm use --lts").'
exit 2

find_npm_linux() {
export NPM_CMD="npm"

if ! (type $NPM_CMD >> /dev/null); then
echo "npm not found, trying to make it available using nvm..."
if type nvm >> /dev/null; then
echo "nvm found, using it to install the latest lts node"
nvm use --lts
else
echo "nvm not found, trying to make it available using the nvm.sh"
# try to make it available based on https://github.com/typicode/husky/issues/912#issuecomment-817522060
export NVM_DIR="$HOME/.nvm/nvm.sh"
. "$(dirname $NVM_DIR)/nvm.sh"

export NVM_DIR="$HOME/.nvm"
a=$(nvm ls --no-colors | grep 'node')
v=$(echo "$a" | sed -E 's/.*\(-> ([^ ]+).*/\1/')

export PATH="$NVM_DIR/versions/node/$v/bin:$PATH"

if ! (type $NPM_CMD >> /dev/null); then
echo "no variant of npm or nvm found, trying to use the npm.cmd"
export NPM_CMD="npm.cmd"
fi
fi
fi
}

if [ -z "${OSTYPE+x}" ]; then
find_npm_linux
else
case "$OSTYPE" in
msys*) export NPM_CMD="npm.cmd";;
*) find_npm_linux ;;
esac
fi


Expand Down Expand Up @@ -37,7 +70,7 @@ if [ -n "$(git status --porcelain)" ]; then
fi

echo "Linting project (local mode)..."
npm run lint-local
$NPM_CMD run lint-local


# shellcheck disable=SC2124 # we want the argument splitting
Expand Down
10 changes: 6 additions & 4 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ If you have any questions, refer to the [wiki](https://github.com/Code-Inspect/f

## Commit Messages

We structure our commit messages (enforced by our git-hooks) using the format `<type(s)>: <description>`.
Currently, the following types are at your disposal (more may have been or are still available, but please restrict yourself to the following):
We structure our commit messages (enforced by our git-hooks) using the format `<type(s)>(<scope>): <description>` (with `(<scope>)` being optional).
Currently, the following `<type(s)>` are at your disposal (more may have been or are still available, but please restrict yourself to the following):


| name | description |
Expand All @@ -49,7 +49,6 @@ Currently, the following types are at your disposal (more may have been or are s
| `lint` | Adapted or updated linter-issues. |
| `doc` | Updated the documentation of *flowR*. |
| `typo` | Dealt with a small typo/a grammatical mistake. |
| `log` | Improved or updated the logging of *flowR*. |
| `ts` | Performed something typescript-specific (e.g., reconfigured the `tsconfig.json`). |
| `wip` | *Use this only in combination with another type*. It marks the commit to be unfinished. |
| `special` | *Use this only if none of the other categories apply*. Explain the details in your commit message. |
Expand All @@ -65,9 +64,12 @@ Although you can give the same type repeatedly - if you think you should, please

With this, the artificial message

> `feat, test-fix: Support for branching in dataflow, fixed branching-test`
> `feat, test-fix: Support for branching in dataflow, fixed branching test`

represents the addition of a new feature and the fix of a corresponding test.
With scopes, it could look like this:

> `feat, test-fix(dataflow): Support branching & fixed branching test`

To skip the `ci`, you can prefix the commit message with `[skip ci]`.

Expand Down
7 changes: 3 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"lint": "npm run license-compat -- --summary && eslint src/ test/",
"license-compat": "license-checker --onlyAllow 'MIT;MIT OR X11;GPLv2;LGPL;GNUGPL;ISC;Apache-2.0;FreeBSD;BSD-2-Clause;clearbsd;ModifiedBSD;BSD-3-Clause;Python-2.0;Unlicense;WTFPL;CC-BY-4.0;CC-BY-3.0;CC0-1.0;0BSD'",
"doc": "typedoc",
"test": "nyc --no-clean mocha --require ts-node/register --timeout 60000 \"test/**/*.spec.ts\"",
"test": "nyc --source-map --produce-source-map mocha --require ts-node/register --timeout 60000 \"test/**/*.spec.ts\"",
"performance-test": "func() { cd test/performance/ && bash run-all-suites.sh $1 $2; cd ../../; }; func",
"test-full": "npm run test -- --test-installation"
},
Expand All @@ -29,14 +29,13 @@
"all": true,
"per-file": true,
"check-coverage": false,
"skip-full": false,
"skip-full": true,
"lines": 70,
"extension": [
".ts"
],
"include": "src/**/*.ts",
"reporter": [
"html",
"text",
"lcov",
"cobertura"
Expand Down Expand Up @@ -173,7 +172,7 @@
"check-file/filename-naming-convention": [
"error",
{
"**/*.ts": "?([A-Z])+([a-z])*((-|.)?([A-Z])+([a-z]))"
"**/*.ts": "?([0-9]+-)?([A-Z])+([a-z])*((-|.)?([A-Z])+([a-z]))"
}
],
"check-file/folder-match-with-fex": [
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion src/benchmark/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
export * from './stats'
export * from './slicer'
export * from './benchmark-slicer'
export * from './stopwatch'
4 changes: 2 additions & 2 deletions src/cli/repl/core.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*
* @module
*/
import { RShell } from '../../r-bridge'
import { RShell, RShellReviveOptions } from '../../r-bridge'
import readline from 'readline/promises'
import { bold } from '../../statistics'
import { prompt } from './prompt'
Expand Down Expand Up @@ -76,7 +76,7 @@ export async function replProcessAnswer(output: ReplOutput, expr: string, shell:
* For the execution, this function makes use of {@link replProcessAnswer}
*
*/
export async function repl(shell = new RShell({ revive: 'always' }), rl = readline.createInterface(DEFAULT_REPL_READLINE_CONFIGURATION), output = standardReplOutput) {
export async function repl(shell = new RShell({ revive: RShellReviveOptions.Always }), rl = readline.createInterface(DEFAULT_REPL_READLINE_CONFIGURATION), output = standardReplOutput) {

// the incredible repl :D, we kill it with ':quit'
// eslint-disable-next-line no-constant-condition,@typescript-eslint/no-unnecessary-condition
Expand Down
13 changes: 8 additions & 5 deletions src/cli/repl/server/connection.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { LAST_STEP, printStepResult, SteppingSlicer, StepResults, STEPS_PER_SLICE } from '../../../core'
import { LAST_STEP, SteppingSlicer, StepResults, STEPS_PER_SLICE } from '../../../core'
import { DEFAULT_XML_PARSER_CONFIG, NormalizedAst, RShell, XmlParserConfig } from '../../../r-bridge'
import { sendMessage } from './send'
import { answerForValidationError, validateBaseMessageFormat, validateMessage } from './validate'
Expand All @@ -24,8 +24,11 @@ import { cfg2quads, ControlFlowInformation, extractCFG } from '../../../util/cfg
import { defaultQuadIdGenerator, QuadSerializationConfiguration } from '../../../util/quads'
import { deepMergeObject } from '../../../util/objects'
import { LogLevel } from '../../../util/log'
import { StepOutputFormat } from '../../../core/print/print'
import { printStepResult, StepOutputFormat } from '../../../core/print/print'
import { DataflowInformation } from '../../../dataflow/internal/info'
import { PARSE_WITH_R_SHELL_STEP } from '../../../core/steps/all/core/00-parse'
import { NORMALIZE } from '../../../core/steps/all/core/10-normalize'
import { LEGACY_STATIC_DATAFLOW } from '../../../core/steps/all/core/20-dataflow'

/**
* Each connection handles a single client, answering to its requests.
Expand Down Expand Up @@ -134,9 +137,9 @@ export class FlowRServerConnection {
id: message.id,
cfg: cfg ? cfg2quads(cfg, config()) : undefined,
results: {
parse: await printStepResult('parse', results.parse as string, StepOutputFormat.RdfQuads, config(), parseConfig),
normalize: await printStepResult('normalize', results.normalize as NormalizedAst, StepOutputFormat.RdfQuads, config()),
dataflow: await printStepResult('dataflow', results.dataflow as DataflowInformation, StepOutputFormat.RdfQuads, config()),
parse: await printStepResult(PARSE_WITH_R_SHELL_STEP, results.parse as string, StepOutputFormat.RdfQuads, config(), parseConfig),
normalize: await printStepResult(NORMALIZE, results.normalize as NormalizedAst, StepOutputFormat.RdfQuads, config()),
dataflow: await printStepResult(LEGACY_STATIC_DATAFLOW, results.dataflow as DataflowInformation, StepOutputFormat.RdfQuads, config()),
}
})
} else {
Expand Down
12 changes: 7 additions & 5 deletions src/cli/statistics-helper-app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,11 @@ import { create } from 'tar'
import fs from 'fs'
import { guard } from '../util/assert'
import { retrieveArchiveName } from './common/features'
import { printStepResult } from '../core'
import { StepOutputFormat } from '../core/print/print'
import { printStepResult, StepOutputFormat } from '../core/print/print'
import { date2string } from '../util/time'
import { PARSE_WITH_R_SHELL_STEP } from '../core/steps/all/core/00-parse'
import { NORMALIZE } from '../core/steps/all/core/10-normalize'
import { LEGACY_STATIC_DATAFLOW } from '../core/steps/all/core/20-dataflow'

// apps should never depend on other apps when forking (otherwise, they are "run" on load :/)

Expand Down Expand Up @@ -89,9 +91,9 @@ async function getStatsForSingleFile() {
if(options['dump-json']) {
const [, output] = [...stats.outputs.entries()][0]
const cfg = extractCFG(output.normalize)
statisticsFileProvider.append('output-json', 'parse', await printStepResult('parse', output.parse, StepOutputFormat.Json))
statisticsFileProvider.append('output-json', 'normalize', await printStepResult('normalize', output.normalize, StepOutputFormat.Json))
statisticsFileProvider.append('output-json', 'dataflow', await printStepResult('dataflow', output.dataflow, StepOutputFormat.Json))
statisticsFileProvider.append('output-json', 'parse', await printStepResult(PARSE_WITH_R_SHELL_STEP, output.parse, StepOutputFormat.Json))
statisticsFileProvider.append('output-json', 'normalize', await printStepResult(NORMALIZE, output.normalize, StepOutputFormat.Json))
statisticsFileProvider.append('output-json', 'dataflow', await printStepResult(LEGACY_STATIC_DATAFLOW, output.dataflow, StepOutputFormat.Json))
statisticsFileProvider.append('output-json', 'cfg', JSON.stringify(cfg, jsonReplacer))
}

Expand Down
8 changes: 4 additions & 4 deletions src/core/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export { SteppingSlicer } from './slicer'
export * from './steps'
export * from './input'
export * from './output'
export { SteppingSlicer } from './stepping-slicer'
export * from './steps/steps'
export * from './steps/input'
export * from './steps/output'
Loading