Git Product home page Git Product logo

wendy's Issues

Commands are too long for help

COMMANDS:
   get-api-spec         Returns the OpenAPI spec
   health-check         Runs health checks for Bob
   pipeline-create      Creates a new pipeline
   pipeline-delete      Deletes a pipeline
   pipeline-start       Starts a pipeline
   pipeline-stop        Stops a pipeline
   pipeline-pause       Pauses a pipeline
   pipeline-unpause     Unpauses a pipeline
   pipeline-logs        Fetches the logs of a pipeline
   pipeline-status      Fetches the status of the pipeline
   pipeline-artifact-fe Fetches the artifact from pipeline of an artifact store
   pipeline-list        List all pipelines filtered by group, name and status. Case sensitive.
   resource-provider-cr Creates a resource provider with its name and attributes
   resource-provider-de Deletes a resource provider by name
   resource-provider-li Lists all registered external resources by name
   artifact-store-creat Creates an artifact store with its name and attributes
   artifact-store-delet Deletes an artifact store by name
   artifact-store-list  Lists all registered artifact stores by name
   query                Runs a query on Crux, intended for point in time analytics
   get-error            Fetches the next available system error

The commands are too long and are cut after 21 chars.

pipeline-start requires optional metadata

I created pipeline from docs/pipeline.json and wanted to run it:

$> bb -m wendy.main pipeline-start --group test --name pipelinejson
** ERROR: **
Option error: Missing option: f


NAME:
 wendy pipeline-start - Submits a new pipeline start request given the pipeline group and name

USAGE:
 wendy pipeline-start [command options] [arguments...]

OPTIONS:
       --f f*      Optional metadata map for runners. If provided must include runner/type
       --group S*  The group of the pipeline
       --name S*   The name of the pipeline
   -?, --help

It seems to require the optional metadata map for --f. It should either be not optional or not required. I don't know what to pass here but couldn't get it working.

wendy pipeline list shows null

wendy pipeline list returns always null although there is correct output in bob-logs.

confirm:
wendy pipeline create -c docs/build.toml
wendy pipeline list

should be a list of the registered pipelines

actually null is returned in any case

Change CI to run on Bob

  • Add the running of wendy's unit tests to the steps of bob
  • When a commit happens here, we can change the CircleCI steps to run this script instead of the usual stuff
  • We can then ditch running the build on CircleCI for wendy
    This way Bob is truly bootstrapped upon another CI!

Originally posted by @lispyclouds in #11 (comment)

Cache cli-matic config locally

The config is transformed from the api.yaml every time it is invoked. That means there is an HTTP-request to Bob and a transformation of the yaml to cli-matic-config every time. Using a ~/.wendy.edn for storing the cli-matic conf should be an option.

Question is when will the cached config be renewed?

inconsistent cli params

the cli params to list registered artifact-stores and external-resources are inconsistent:

root@bob-test:~/wendy# ./wendy artifact-store list
usage: wendy artifact-store [-h] COMMANDS ...
wendy: error: invalid choice: 'list' (choose from 'register', 'show', 'delete')

Did you mean:
        register
        show
root@bob-test:~/wendy# ./wendy external-resource show
usage: wendy external-resource [-h] COMMANDS ...
wendy: error: invalid choice: 'show' (choose from 'register', 'list', 'delete')

I think it should be list for returning a list of the registered systems and show for detailed view on a single system.

document .wendy.edn

when running bob on a different server or host one has to specify this as config (or as env-var). that this is already possible via ~/.wendy.edn should be documented.

Compile wendy binaries on CI

Currently the only way to build Wendy is manual compilation which is flawed for the reasons:

  • GraalVM setup ceremony is long and complex
  • Causes a loss of motivation in users to get started quickly
  • Really long build times

Possible solutions:

  • Make the CI build all binaries
  • Make a single latest download link possible, then later go for releases following Bob's release cycle

Pretty output and pipeability

Is there an option to get more well-formed output? Currently it looks like this:

[{group test, name buildjson, steps [{cmd echo build started.} {needs_resource source-code, cmd gradle test} {cmd gradle shadowJar, produces_artifact {path build/libs/bob-example-1.0-SNAPSHOT-all.jar, store local, name uberjar}}], image gradle:jdk11, resources [{name source-code, params {repo https://github.com/lispyclouds/bob-example, branch main}, type external, provider git}], vars {LOG_LEVEL error}} {group test, name pipelinejson, steps [{needs_resource source, cmd go test} {needs_resource source, cmd sh -c 'GOOS=linux GOARCH=amd64 go build app.go', produces_artifact {path app, store local, name app}}], image golang:alpine, resources [{name source, params {repo https://github.com/lispyclouds/bob-example, branch main}, type external, provider resource-git}]} {group test, name buildsimplejson, steps [{cmd echo build started.}], image gradle:jdk11}]

I would like to have it at least pretty-printed. I cannot pipe it to jet because the output is without quotes. Changing the println in client.clj to pprint solves both problems.

Any thoughts on this?

Create a data driven CLI config

Possible solutions:

  • Create a map of the config and parse it to the argparse4j calls
  • Switch to a data driven parser like cli-matic (needs subparsing abilities to be built/contibed to)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.