@i-vresse/wb-core

Graphical interface to build a workflow file

https://github.com/i-vresse/workflow-builder

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.5%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Graphical interface to build a workflow file

Basic Info
Statistics
  • Stars: 5
  • Watchers: 5
  • Forks: 2
  • Open Issues: 24
  • Releases: 2
Created over 4 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation

README.md

workflow-builder

Graphical interface to build a workflow file

Netlify Status Node.js CI TS-Standard - Typescript Standard Style Guide codecov fair-software.eu DOI

The haddock3-download application of the main branch is published at https://i-vresse-workflow-builder.netlify.app

The builder allows you to create a complex TOML formatted config file based on a set of JSON schemas.

Image

The workflow builder is organized as a monorepo with packages and apps.

Develop

Requires NodeJS and yarn (tested with v3.2.1).

```shell

Install dependencies

yarn

Run dev servers

yarn dev ```

  • Goto http://localhost:3000 for haddock3-download app
  • Goto http://localhost:3001 for haddock3-submit app
  • Goto http://localhost:3002 for kitchensink app

Unit tests

Tests (*/.test.tsx?) written in vitetest can be run with:

shell yarn test -- run

To run tests with code coverage use

shell yarn test -- run --coverage

Creates **/coverage/ directory with HTML and LCOV report.

Integration tests

The integration tests (**/integration-tests/**.spec.ts) are written in playwright.

Before running test ensure browsers are installed with

shell cd apps/haddock3-download npx playwright install chromium

Tests can be run with

shell yarn test:integration

To run a non-headless chromium browser use

shell yarn test:headed

The browser will pause when a test calls await page.pause(), so you can investigate current state.

There is a VS code extension to run integration tests inside editor.

Linting

shell yarn lint

To autofix lint errors use

shell yarn lint -- --fix

To generate JSON report use

shell yarn lint -- --report json > eslint.report.json

Build

To build production distribution run

shell yarn build

Which will create apps/*/dist/ directories which should be hosted on the web somewhere. The build also creates packages/*/dist directories which should be published to npmjs.com.

Component development

Components can be developed/tested/documented using storybook.

The storybooks of the main branch are hosted at

Storybook can be started locally with

shell yarn storybook

  • Goto http://localhost:6008 for storybook of core package
  • Goto http://localhost:6007 for storybook of form package

Format

Workflow archive

The workflow builder creates a zip file with a workflow configuration file called workflow.cfg in TOML format. The configuration file contains paths to input files which are included in the zip file.

Workflow configuration file

The workflow configuration file consists out of 2 parts:

  1. Global parameters, which are available to engine and each node.
  2. Tables with parameters for each node the workflow should run.

An uploaded workflow configuration file can contain tables with the same name (this is more lenient then the TOML format). A generated workflow configuration file with the same node twice will have a TOML string with [somenode] and ['somenode.2'] table respectively.

Catalog

The catalog is a YAML formatted file which tells the app what nodes are available. In has the following info:

  1. global: Description of global parameters
    • schema: What parameters are valid. Formatted as JSON schema draft 7.
    • uiSchema: How the form for filling the parameters should be rendered.
    • tomlSchema: How toml keys are mapped to in-memory representation.
  2. nodes: Description of available nodes.
    • id: Identifier of node, for computers
    • label: Label of node, for humans
    • category: Category to which node belongs
    • description: Text describing what node needs, does and produces.
    • schema: What parameters are valid. Formatted as JSON schema draft 7.
    • uiSchema: How the form for filling the parameters should be rendered.
    • tomlSchema: How toml keys are mapped to in-memory representation.
  3. catagories: Descriptions of node categories
    • name: Name of category
    • description: Description of category
    • collapsed (optional): Whether category should be rendered collapsed initially
  4. examples: Title and link to example workflows
    • map with title as key and link as value
  5. title: Title of the catalog
  6. nodeLegend: Legend of the node in the app. Default is 'Node'

schema

See docs/schema.md.

uiSchema

See docs/uiSchema.md.

tomlSchema

See docs/tomlSchema.md.

Catalog index

In the worklfow builder you can pick a catalog from a list. This list gets downloaded from public/catalog/index.json and is formatted like

json [ ["<title of catalog>", "<URL of catalog YAML file>"] ]

The first catalog in the index.json file will be shown when you open the app.

The haddock3 catalogs can be generated by a Python script in packages/haddock3_catalog from the haddock3 library. The haddock3 catalogs and example are symbolicly linked to /app/*/public.

Owner

  • Name: Interactive Virtual Research Environment for Scientific Software Execution
  • Login: i-VRESSE
  • Kind: organization

Project with Netherlands eScience Center and Bonvin Lab

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: i-VRESSE workflow-builder
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Stefan
    family-names: Verhoeven
    affiliation: Netherlands eScience Center
    orcid: 'https://orcid.org/0000-0002-5821-2060'
  - given-names: Rodrigo
    family-names: Honorato
    affiliation:  Utrecht University @ BonvinLab
    orcid: 'https://orcid.org/0000-0001-5267-3002'
  - affiliation: "Netherlands eScience Center"
    family-names: Vreede
    given-names: Barbara
    orcid: https://orcid.org/0000-0002-5023-4601
repository-code: 'https://github.com/i-VRESSE/workflow-builder'
abstract: >-
  The builder application allows you to create a complex TOML formatted config file based on a set of JSON schemas.
license: Apache-2.0
identifiers:
  - type: doi
    value: 10.5281/zenodo.6953674
    description: >-
      This DOI represents all versions, and will
      always resolve to the latest one.

GitHub Events

Total
  • Issues event: 1
  • Watch event: 1
  • Issue comment event: 1
  • Push event: 1
Last Year
  • Issues event: 1
  • Watch event: 1
  • Issue comment event: 1
  • Push event: 1

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 441
  • Total Committers: 4
  • Avg Commits per committer: 110.25
  • Development Distribution Score (DDS): 0.206
Top Committers
Name Email Commits
Stefan Verhoeven s****n@g****m 350
Stefan Verhoeven s****n@e****l 67
Barbara Vreede b****e@e****l 22
Rodrigo V Honorato r****o@u****l 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 90
  • Total pull requests: 76
  • Average time to close issues: 10 months
  • Average time to close pull requests: about 2 months
  • Total issue authors: 5
  • Total pull request authors: 3
  • Average comments per issue: 1.37
  • Average comments per pull request: 1.93
  • Merged pull requests: 64
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 4
  • Pull requests: 16
  • Average time to close issues: about 2 hours
  • Average time to close pull requests: 4 days
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 1.0
  • Average comments per pull request: 1.31
  • Merged pull requests: 14
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • sverhoeven (62)
  • VGPReys (9)
  • amjjbonvin (6)
  • bvreede (3)
  • Peter9192 (2)
  • dmijatovic (1)
Pull Request Authors
  • sverhoeven (84)
  • dmijatovic (13)
  • bvreede (6)
Top Labels
Issue Labels
enhancement (6)
Pull Request Labels

Packages

  • Total packages: 2
  • Total downloads:
    • npm 61 last-month
  • Total dependent packages: 3
    (may contain duplicates)
  • Total dependent repositories: 2
    (may contain duplicates)
  • Total versions: 27
  • Total maintainers: 4
npmjs.org: @i-vresse/wb-form

Enhanced version of the React JSON schema form component with Bootstrap 4 theme

  • Versions: 8
  • Dependent Packages: 2
  • Dependent Repositories: 1
  • Downloads: 39 Last month
Rankings
Dependent packages count: 8.9%
Dependent repos count: 10.6%
Average: 14.8%
Stargazers count: 14.9%
Forks count: 15.8%
Downloads: 23.8%
Last synced: 7 months ago
npmjs.org: @i-vresse/wb-core

React components to construct a workflow builder application

  • Versions: 19
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 22 Last month
Rankings
Dependent repos count: 10.6%
Stargazers count: 14.9%
Forks count: 15.8%
Average: 16.5%
Downloads: 19.9%
Dependent packages count: 21.3%
Last synced: 6 months ago

Dependencies

package.json npm
  • @playwright/test ^1.22.1 development
  • @storybook/addon-a11y ^6.4.0 development
  • @storybook/addon-docs ^6.4.0 development
  • @storybook/addon-essentials ^6.4.19 development
  • @storybook/addon-links ^6.4.19 development
  • @storybook/builder-vite ^0.1.35 development
  • @storybook/core-common ^6.5.6 development
  • @storybook/node-logger ^6.5.6 development
  • @storybook/react ^6.5.6 development
  • @storybook/testing-library ^0.0.9 development
  • @types/adm-zip ^0.5.0 development
  • @types/file-saver ^2.0.4 development
  • @types/hoist-non-react-statics ^3.3.1 development
  • @types/js-yaml ^4.0.5 development
  • @types/node 16 development
  • @types/papaparse ^5.3.2 development
  • @types/react ^17.0.0 development
  • @types/react-dom ^17.0.0 development
  • @types/react-syntax-highlighter ^13.5.2 development
  • @types/ws ^8.5.3 development
  • @vitejs/plugin-react ^1.0.0 development
  • adm-zip ^0.5.9 development
  • c8 ^7.11.0 development
  • ts-dedent ^2.2.0 development
  • ts-standard ^11.0.0 development
  • typescript ^4.3.2 development
  • vite ^2.6.4 development
  • vite-node ^0.7.8 development
  • vitest ^0.12.1 development
  • @dnd-kit/core ^6.0.5
  • @dnd-kit/modifiers ^6.0.0
  • @dnd-kit/sortable ^7.0.1
  • @i-vresse/pdbtbx-ts 0.1.7
  • @ltd/j-toml ^1.24.0
  • @rjsf/bootstrap-4 ^4.2.0
  • @rjsf/core ^4.2.0
  • @zip.js/zip.js ^2.3.23
  • ajv ^8.9.0
  • ajv-formats ^2.1.1
  • bootstrap ^4
  • file-saver ^2.0.5
  • js-yaml ^4.1.0
  • nanoid ^4.0.0
  • papaparse ^5.3.2
  • react ^17.0.0
  • react-bootstrap ^1
  • react-bootstrap-icons ^1.7.2
  • react-dnd-html5-backend ^14.1.0
  • react-dom ^17.0.0
  • react-syntax-highlighter ^15.4.5
  • react-toastify ^8.1.0
  • recoil ^0.5.2
  • web-encoding ^1.1.5
yarn.lock npm
  • 1509 dependencies