seeder

command module
v0.0.0-...-164d800 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 14, 2020 License: Apache-2.0 Imports: 1 Imported by: 0

README

seeder

seeder is a developer tool that is used from a module.

The Modular nature of the architecture means that an seed.yaml can exist in any module In the seed.yaml you declare other modules you are dependent on.

Why another packaging tool ?

  • we have specialised needs for modularity.
  • we can extend this for ops things like deployment and migrations by hookig into the sys-core Corba CLI, and adding extra meta data to the seed-yaml that tells us the IP address of the Server.
  • Dev and CI needs OS specific dependencies in order to run
  • go:generate for each module has many dependencies that are now .mk files, which is not sustainable for Multi OS builds.

Constructs

Each modules needs a seed.yaml and a manifest.yaml

  • seed.yaml defines all modules you need
  • manifest.yaml defines all resources you use, so that the seeder can inspect and get them

Dependencies

sys-core cli, in order to carry out ops and migrations

  • ops involved upgrades, backups, etc
  • migrations involves at Dev time, doing a DB dumb
    • however you can also use the previous migration sql.dumb file

functions

deps

  • manages dependencies
  • this is typically various OS tools and any custom tools needed
  • is OS aware.

git

  • manages git operations for you. Only basic ones, and you can drop down to git if you need to egt fancy
  • used by mods if in CI an extra git repo is needed

seed

  • developer and ops tool for managing modules and their sub modules.
  • inspects the seed.yaml to see all other Modules you use.
  • allows mono repos and single repos for Modules.
  • via git or local path, it retrieves the sub modules manifest.
    • respects git tags, so that versioned modules and apps can exist.
  • from the manifest it retrieves any base config the app needs
    • works with uber config
    • routes
    • any other config
    • merges the config into a base.yml, ensurign you are up to date

manifest

  • developer tool for generating everything you need to build modules.
  • this wraps all the .mk code we are using
  • in a module your go:generate can then just call "seeder gen X" to have seeder do the work for you.
    • you can pick and choose if you want to call seeder wrapper funcions for highly granular functions
  • outputs the final manifest.yaml that seed tool will then use.

config

  • merges many configs into one.
  • this is used by the mod tool after is gets the manifest, grabs the config, and copies it up to your main.

Documentation

Overview

Copyright © 2020 NAME HERE <EMAIL ADDRESS>

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Directories

Path Synopsis
internal
log
pkg
dep
flutter
Tools for working with flutter and hover
Tools for working with flutter and hover
git
sql
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL