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

CLI #1209

Closed
25 of 44 tasks
m0mus opened this issue Dec 12, 2019 · 3 comments
Closed
25 of 44 tasks

CLI #1209

m0mus opened this issue Dec 12, 2019 · 3 comments
Assignees
Labels
enhancement New feature or request epic tooling

Comments

@m0mus
Copy link
Contributor

m0mus commented Dec 12, 2019

Command line utility with functionality discussed here:
https://gist.github.com/barchetta/908b7d5f9a2c63344a86146809b07283

  • One pager
  • POC to evaluate critical choices (e.g. dependencies on external libraries)
  • Setup the CLI harness
    • Evaluate existing CLI framework like arg4j
    • Evaluate in-house CLI tool
    • Compile to native binary with native-image
    • Support a project configuration (e.g. .helidon.yaml) (???)
  • Project Initialization (helidon init) (2.0)
    • Interactive mode (command prompt based on user flow) (2.0)
      • User flow model (2.0)
    • Batch mode (command line arguments mapped to user flow) (2.0)
    • Templating
      • Setup engine with common infra (2.0)
      • Maven templates (2.0)
      • Gradle templates (2.x)
      • Common templates (2.0)
      • Support add/update/delete features (for MP)
      • Support add/update/delete features (for SE)
    • Test harness (generate test combination from user flow)
  • Incremental Build, Restart, Redeploy (helidon dev)
    • Evaluate Gradle's incremental support
    • Implement a watcher service
    • Implement a generic way to resume Maven life-cycle
    • Incremental restart
    • Incremental re-deploy
  • Application Building (helidon build)
    • Simplified packaging
      • Support "modes" (native, java-image, docker)
      • Unified configuration
      • Maven support
      • Gradle support
    • Docker daemon less image build/push
      • Evaluate the use of jib-core
      • Evaluate an in-house image tool
  • Application Deployment (helidon deploy)
    • Evaluate a library to interact with k8s
    • Evaluate an in-house k8s client library
    • Evaluate support for advanced CD scenarios
  • Documentation
    • CLI guide
    • Update existing guides to use CLI instead of maven archetypes
  • Release
    • Host download
    • Evaluate use of SDKMAN
@m0mus m0mus added the enhancement New feature or request label Dec 12, 2019
@m0mus m0mus added this to the 2.0.0 milestone Dec 12, 2019
@romain-grecourt
Copy link
Contributor

@m0mus I've tried to decouple this in multiple items. However I think this deserves a one pager and maybe a few POCs.

@m0mus
Copy link
Contributor Author

m0mus commented Jan 9, 2020

@romain-grecourt It's fine. Add sub-tasks for a one pager and the first PoC.

@tomas-langer
Copy link
Member

Configuration approach I think we should use:
Configuration files are combined in meta-config.yaml
Each feature that requires configuration can have its own configuration file, e.g. tracing.yaml, jpa.yaml. When such a feature is added to Helidon, the config file would be added to meta-config.yaml

meta-config.yaml is automatically picked-up by Helidon Config.

Example of meta-config.yaml:

sources:
  - type: "environment-variables"
  - type: "system-properties"
  - type: "file"
      properties:
        # when using k8s
        path: "/conf/config.yaml"
        optional: true
  - type: "classpath"
      properties:
        resource: "conf/application.yaml"
  - type: "classpath"
      properties:
        resource: "conf/jpa.yaml"

@tomas-langer tomas-langer removed this from the 2.0.0 milestone Apr 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request epic tooling
Projects
Archived in project
Development

No branches or pull requests

4 participants