Skip to content

CLI: Template Scaffolding  #96

Closed
Closed
@ianphil

Description

@ianphil

A good user story should be (I-N-V-E-S-T principle)

  • Independent (from other user stories, allowing to realize them in any order);
  • Negotiable (omit details that would freeze the story);
  • Valuable (implementation delivers an increment of functionality, observable by and useful to users);
  • Estimable (developers should be able to estimate its size relative to other stories);
  • Sizable (implementation fits in one iteration – if it needs many to complete, it is an EPIC);
  • Testable (user must be able to check the conditions of satisfaction).

Description

As a developer, I'd like to have a CLI that scaffolds out my template structure so I don't have a lot of manual setup.

Acceptance Criteria

Reference: [Done-Done Checklist] (https://github.com/Microsoft/code-with-engineering-playbook/blob/master/Engineering/BestPractices/DoneDone.md)

  • Should ‹testable condition that should be satisfied›
  • Should ‹testable condition that should be satisfied›

Also, here are a few points that need to be addressed:

  1. Constraint 1;
  2. Constraint 2;
  3. Constraint 3.

Resources

Technical Design Document
Mockups

Tasks

Stories are intended to be completed in a single sprint; if task breakdown creates addition work then team should discuss promoting the Story to an Epic.
Reference: [Minimal Valuable Slices] (https://github.com/Microsoft/code-with-engineering-playbook/blob/master/Engineering/BestPractices/MinimalSlices.md)

Reference: [How to Write Better Tasks] (http://agilebutpragmatic.blogspot.com/2012/04/splitting-story-into-tasks-how-to-write.html)

Assignee should break down work into tasks here
Command: Setup - Download module

  • string flag: --template "bedrock/azure_simple" -- [repo]/[template_name]
  • download from infra/templates
  • create folder structure in current folder
  • prompt for env items and create .env
  • create blank main.tf file

Use case

  1. create project dir: my_cobalt_proj
  2. cd to my_cobalt_proj
  3. run cobalt setup --template "cobalt/azure-simple"
  4. now pwd is
ianphil@afropro.local [~/src/tmp/my_cobalt_proj] ○                                                                                                                                       [basepy-3.7.1] [14:08:24]
> tree -a
.
├── .env
├── infra
│   └── templates
│       └── azure-simple-hw
│           ├── backend.tf
│           ├── main.tf
│           ├── outputs.tf
│           ├── provider.tf
│           ├── test
│           │   └── integration
│           │       └── azure_simple_integration_test.go
│           └── variables.tf
└── main.tf

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions