0.0.406 • Published 3 years ago

@teambit/flows v0.0.406

Weekly downloads
6,074
License
SEE LICENSE IN LI...
Repository
github
Last release
3 years ago

teambit.pipelines/flows

Run tasks on components and their dependents.

  • Provides a bit run command to execute tasks on components in worksapce.
  • Provides an API to create network of components and execute tasks.
  • Used as a low-level API for other Bit commands like compile, test and watch.

Description

Inside a Bit project all components are linked to each other in a network according to their dependency graph. When you make a change, you can see the downstream effets when running component tasks. This means that all tasks run in the right order and if several components don't directly depend on each other, Flows parallelizes their tasks (and shows live console output in a readable order).

Usage

Command sinopsys

bit run <flow-name> [components...] [-v | --verbose] [--concurrency]

Examples

# runs 'build' flow on all components that have 'build' task defined.
bit run build

# runs 'build' flow for a specific component.
bit run build logo

# same as before with verbose output
bit run build logo --verbose

# setting concurrency
bit run build logo --concurrency 4 --verbose

Configuration

Use bit.jsonc configuration docs to understand how to configure bit.

// workspace configuration with default values for 'concurrency' and 'verbose'

{
  "teambit.pipelines/flows": {
    "concurrency": 4,
    "verbose": false,
    "tasks": {
      // the structure of a module task id: = `\`#${PackageName}:${PathToModule}\``
      "build": ["@bit/bit.evangalist.extensions.react-ts:transpile"],
    }
  }
}

You may also use the variants configuring option to override tasks of a specific component(s). The structure allows only for the task entry in that use case.

{
  "variants": {
    "ui/*":{
      "teambit.pipelines/flows": {
        "tasks": {
          "build": ["some_build_task"]
        }
      }
    }
  }
}

Consult with the docs to learn more about variants.

Flows API

Flows API is document in flows.ts module. Here are two examples:

import {Flows, flattenReplaySubject} from 'teambit.pipelines/flows'

const flows = new Flows(workspace)
const execution = flows.run(seeders)

// rxjs example
flattenReplaySubject(execution)
  .subscribe((result) => console.log('result is:', result))

// promise example
const result = await flows.runToPromise(seeders)
console.log('result is', result)

Recommended WorkFlows

Flows prefers convention over configuration for managing team's workflow to scale their development. It's philosophy is that when teams agree on the kind of actions they support it's easier to onboard developers to various projects in the organization. This is mainly becasue it helps developers avoid the details of each component build and treat it as the "same" action.

For example:

  • build - run all compilation/testing/lint
  • ci - flow to run bit CI system
  • dev - compiling with source map and what not.
  • personal - personal workflow team doesn't know of, to test things.

How to implement a task

A task is a module which exports a default function (or module.exports) with the following signature:

export type Task = () => any | () => Promise<any>
  • Tasks should be tracked and exported as components to a remote Bit scope.
  • Tasks defined as devDependencies for components consuming them.
  • Each task stdout, stderr is reported.
  • Each task should return a value (which is truthy) which will be reported to Bit's main process.

Design

The Flows API solves the problem of reporting the execution of dynamic activities across a graph of isolated components. The problem becomes complex in use cases like TypeScript API where dependent/dependency components build order needs to be respected.

Flows solves this problem by providing:

  • Unified UX
  • Aggressive caching
  • Topological execution order.

Entities

  • Capsule - Isolated representation of a component in filesystem.
  • Network - A graph of component capsules.
  • Flow - A collection of tasks to execute in a capsule.
  • Task - a runnable activity in a capsule defined by bash or javascript task.

For each main term there is a module in the flows implementation.

Additional modules

  • Cache - Caches capsule execution in ~/Library/Caches/Bit/capsules
  • Run - Holds run command as a component.
  • util - fake-capsule creation, rxjs helper etc.
0.0.403

3 years ago

0.0.406

3 years ago

0.0.405

3 years ago

0.0.404

3 years ago

0.0.402

3 years ago

0.0.401

3 years ago

0.0.400

3 years ago

0.0.399

3 years ago

0.0.398

3 years ago

0.0.397

3 years ago

0.0.396

3 years ago

0.0.395

3 years ago

0.0.394

3 years ago

0.0.393

3 years ago

0.0.392

3 years ago

0.0.391

3 years ago

0.0.390

3 years ago

0.0.389

3 years ago

0.0.388

3 years ago

0.0.387

3 years ago

0.0.379

3 years ago

0.0.378

3 years ago

0.0.373

3 years ago

0.0.372

3 years ago

0.0.371

3 years ago

0.0.370

3 years ago

0.0.377

3 years ago

0.0.376

3 years ago

0.0.375

3 years ago

0.0.374

3 years ago

0.0.384

3 years ago

0.0.383

3 years ago

0.0.382

3 years ago

0.0.381

3 years ago

0.0.386

3 years ago

0.0.385

3 years ago

0.0.380

3 years ago

0.0.369

3 years ago

0.0.368

3 years ago

0.0.367

3 years ago

0.0.366

3 years ago

0.0.365

3 years ago

0.0.364

3 years ago

0.0.363

3 years ago

0.0.362

3 years ago

0.0.361

3 years ago

0.0.360

3 years ago

0.0.359

3 years ago

0.0.358

3 years ago

0.0.357

3 years ago

0.0.356

3 years ago

0.0.355

3 years ago

0.0.354

3 years ago

0.0.353

3 years ago

0.0.352

3 years ago

0.0.349

3 years ago

0.0.351

3 years ago

0.0.350

3 years ago

0.0.348

3 years ago

0.0.347

3 years ago

0.0.346

3 years ago

0.0.345

3 years ago

0.0.344

3 years ago

0.0.343

3 years ago

0.0.342

3 years ago

0.0.340

3 years ago

0.0.341

3 years ago

0.0.339

3 years ago

0.0.338

3 years ago

0.0.337

3 years ago

0.0.336

3 years ago

0.0.335

3 years ago

0.0.334

3 years ago

0.0.333

3 years ago

0.0.332

3 years ago

0.0.331

3 years ago

0.0.329

3 years ago

0.0.328

3 years ago

0.0.327

3 years ago

0.0.330

3 years ago

0.0.326

3 years ago

0.0.325

3 years ago

0.0.324

3 years ago

0.0.323

3 years ago

0.0.322

3 years ago

0.0.321

3 years ago

0.0.320

3 years ago

0.0.319

3 years ago

0.0.318

3 years ago

0.0.317

3 years ago

0.0.316

3 years ago

0.0.315

3 years ago

0.0.314

3 years ago

0.0.313

3 years ago

0.0.312

3 years ago

0.0.311

3 years ago

0.0.310

3 years ago

0.0.309

3 years ago

0.0.308

3 years ago

0.0.307

3 years ago

0.0.306

3 years ago

0.0.304

3 years ago

0.0.305

3 years ago

0.0.303

3 years ago

0.0.302

3 years ago

0.0.301

3 years ago

0.0.300

3 years ago

0.0.299

3 years ago

0.0.298

3 years ago

0.0.297

3 years ago

0.0.296

3 years ago

0.0.295

3 years ago

0.0.294

3 years ago

0.0.293

3 years ago

0.0.292

3 years ago

0.0.291

3 years ago

0.0.290

3 years ago

0.0.289

3 years ago

0.0.288

3 years ago

0.0.287

3 years ago

0.0.286

3 years ago

0.0.285

3 years ago

0.0.284

3 years ago

0.0.283

3 years ago

0.0.282

3 years ago

0.0.281

3 years ago

0.0.280

3 years ago

0.0.279

3 years ago

0.0.278

3 years ago

0.0.277

3 years ago

0.0.276

3 years ago

0.0.275

3 years ago

0.0.274

3 years ago

0.0.273

3 years ago

0.0.272

3 years ago

0.0.271

3 years ago

0.0.270

3 years ago

0.0.269

3 years ago

0.0.268

3 years ago

0.0.267

3 years ago

0.0.266

3 years ago

0.0.265

3 years ago

0.0.264

3 years ago

0.0.263

3 years ago

0.0.262

3 years ago

0.0.261

3 years ago

0.0.260

3 years ago

0.0.259

3 years ago

0.0.258

3 years ago

0.0.257

3 years ago

0.0.256

3 years ago

0.0.255

3 years ago

0.0.254

3 years ago

0.0.253

3 years ago

0.0.252

3 years ago

0.0.251

3 years ago

0.0.250

3 years ago

0.0.249

3 years ago

0.0.248

3 years ago

0.0.247

3 years ago

0.0.246

3 years ago

0.0.245

3 years ago

0.0.244

3 years ago

0.0.243

3 years ago

0.0.241

3 years ago

0.0.242

3 years ago

0.0.239

3 years ago

0.0.240

3 years ago

0.0.238

3 years ago

0.0.237

3 years ago

0.0.236

3 years ago

0.0.235

3 years ago

0.0.234

3 years ago

0.0.233

3 years ago

0.0.229

3 years ago

0.0.230

3 years ago

0.0.232

3 years ago

0.0.231

3 years ago

0.0.227

3 years ago

0.0.228

3 years ago

0.0.226

3 years ago

0.0.225

3 years ago

0.0.224

3 years ago

0.0.223

3 years ago

0.0.222

3 years ago

0.0.221

3 years ago

0.0.220

3 years ago

0.0.219

3 years ago

0.0.216

3 years ago

0.0.218

3 years ago

0.0.217

3 years ago

0.0.215

3 years ago

0.0.214

3 years ago

0.0.213

3 years ago

0.0.212

3 years ago

0.0.211

3 years ago

0.0.210

3 years ago

0.0.209

3 years ago

0.0.208

3 years ago

0.0.207

3 years ago

0.0.206

3 years ago

0.0.205

3 years ago

0.0.204

3 years ago

0.0.203

3 years ago

0.0.202

3 years ago

0.0.201

3 years ago

0.0.200

3 years ago

0.0.199

3 years ago

0.0.198

3 years ago

0.0.197

3 years ago

0.0.196

3 years ago

0.0.195

3 years ago

0.0.194

3 years ago

0.0.193

3 years ago

0.0.192

3 years ago

0.0.191

3 years ago

0.0.190

3 years ago

0.0.189

3 years ago

0.0.188

3 years ago

0.0.187

3 years ago

0.0.186

3 years ago

0.0.185

3 years ago

0.0.184

3 years ago

0.0.183

3 years ago

0.0.182

3 years ago

0.0.181

3 years ago

0.0.180

3 years ago

0.0.179

3 years ago

0.0.178

3 years ago

0.0.177

3 years ago

0.0.176

3 years ago

0.0.175

3 years ago

0.0.174

3 years ago

0.0.173

3 years ago

0.0.172

3 years ago

0.0.171

3 years ago

0.0.170

3 years ago

0.0.169

3 years ago

0.0.168

3 years ago

0.0.167

3 years ago

0.0.166

3 years ago

0.0.165

3 years ago

0.0.164

3 years ago

0.0.163

3 years ago

0.0.162

3 years ago

0.0.161

3 years ago

0.0.160

3 years ago

0.0.159

3 years ago

0.0.158

3 years ago

0.0.157

3 years ago

0.0.156

3 years ago

0.0.155

3 years ago

0.0.154

3 years ago

0.0.153

3 years ago

0.0.152

3 years ago

0.0.151

3 years ago

0.0.150

3 years ago

0.0.149

3 years ago

0.0.148

3 years ago

0.0.147

3 years ago

0.0.146

3 years ago

0.0.142

3 years ago

0.0.145

3 years ago

0.0.144

3 years ago

0.0.143

3 years ago

0.0.139

3 years ago

0.0.141

3 years ago

0.0.140

3 years ago

0.0.138

3 years ago

0.0.137

3 years ago

0.0.136

3 years ago

0.0.135

3 years ago

0.0.134

3 years ago

0.0.133

3 years ago

0.0.132

3 years ago

0.0.131

3 years ago

0.0.129

3 years ago

0.0.130

3 years ago

0.0.128

3 years ago

0.0.127

3 years ago

0.0.126

3 years ago

0.0.125

3 years ago

0.0.124

3 years ago

0.0.123

3 years ago

0.0.122

3 years ago

0.0.121

3 years ago

0.0.119

3 years ago

0.0.120

3 years ago

0.0.118

3 years ago

0.0.117

3 years ago

0.0.116

3 years ago

0.0.115

3 years ago

0.0.114

3 years ago

0.0.113

3 years ago

0.0.112

3 years ago

0.0.111

3 years ago

0.0.110

3 years ago

0.0.109

3 years ago

0.0.108

3 years ago

0.0.106

3 years ago

0.0.105

3 years ago

0.0.104

3 years ago

0.0.103

3 years ago

0.0.107

3 years ago

0.0.102

3 years ago

0.0.101

4 years ago

0.0.100

4 years ago

0.0.97

4 years ago

0.0.98

4 years ago

0.0.99

4 years ago

0.0.96

4 years ago

0.0.95

4 years ago

0.0.93

4 years ago

0.0.94

4 years ago

0.0.91

4 years ago

0.0.92

4 years ago

0.0.90

4 years ago

0.0.88

4 years ago

0.0.89

4 years ago

0.0.87

4 years ago

0.0.86

4 years ago

0.0.85

4 years ago

0.0.84

4 years ago

0.0.82

4 years ago

0.0.83

4 years ago

0.0.81

4 years ago

0.0.80

4 years ago

0.0.79

4 years ago

0.0.78

4 years ago

0.0.77

4 years ago

0.0.76

4 years ago

0.0.75

4 years ago

0.0.74

4 years ago

0.0.73

4 years ago

0.0.71

4 years ago

0.0.72

4 years ago

0.0.70

4 years ago

0.0.69

4 years ago

0.0.68

4 years ago

0.0.66

4 years ago

0.0.67

4 years ago

0.0.65

4 years ago

0.0.62

4 years ago

0.0.63

4 years ago

0.0.64

4 years ago

0.0.61

4 years ago

0.0.60

4 years ago

0.0.59

4 years ago

0.0.58

4 years ago

0.0.57

4 years ago

0.0.56

4 years ago

0.0.55

4 years ago

0.0.54

4 years ago

0.0.53

4 years ago

0.0.51

4 years ago

0.0.52

4 years ago

0.0.50

4 years ago

0.0.48

4 years ago

0.0.49

4 years ago

0.0.47

4 years ago

0.0.46

4 years ago

0.0.45

4 years ago

0.0.44

4 years ago

0.0.43

4 years ago

0.0.42

4 years ago

0.0.40

4 years ago

0.0.39

4 years ago

0.0.37

4 years ago

0.0.38

4 years ago

0.0.35

4 years ago

0.0.36

4 years ago

0.0.34

4 years ago

0.0.33

4 years ago

0.0.30

4 years ago

0.0.29

4 years ago

0.0.28

4 years ago

0.0.23

4 years ago

0.0.24

4 years ago

0.0.25

4 years ago

0.0.26

4 years ago

0.0.27

4 years ago

0.0.22

4 years ago

0.0.21

4 years ago

0.0.19

4 years ago

0.0.18

4 years ago

0.0.17

4 years ago

0.0.15

4 years ago

0.0.14

4 years ago

0.0.12

4 years ago

0.0.10

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago