2016-12-03 22:18:08 +01:00
|
|
|
hash: c020f7609e37666f38d163397b6d7022668103e8f82e6eaf244b322bc1a9c878
|
|
|
|
updated: 2016-12-03T13:17:46.263591232-08:00
|
2016-11-15 20:30:34 +01:00
|
|
|
imports:
|
2016-11-25 21:58:29 +01:00
|
|
|
- name: github.com/aokoli/goutils
|
|
|
|
version: 9c37978a95bd5c709a15883b6242714ea6709e64
|
2016-11-16 19:00:52 +01:00
|
|
|
- name: github.com/blang/semver
|
Support binding to arbitrary service types
This implements support for arbitrary service types on properties,
not just the weakly typed "service". For example, in the AWS stacks,
the aws/ec2/route type requires a routeTable, among other things:
name: aws/ec2/route
properties:
routeTable:
type: aws/ec2/routeTable
This not only binds the definition of such properties, but also the
callsites of those creating stacks and supplying values for them.
This includes checking for concrete, instantiated, and even base
types, so that, for instance, if a custom stack derived from
aws/ec2/routeTable using the base property, in the above example
it could be supplied as a legal value for the routeTable property.
2016-12-03 22:00:08 +01:00
|
|
|
version: 3a37c301dda64cbe17f16f661b4c976803c0e2d2
|
2016-11-15 20:30:34 +01:00
|
|
|
- name: github.com/golang/glog
|
|
|
|
version: 23def4e6c14b4da8ac2ed8007337bc5eb5007998
|
|
|
|
- name: github.com/golang/lint
|
|
|
|
version: 206c0f020eba0f7fbcfbc467a5eb808037df2ed6
|
|
|
|
subpackages:
|
|
|
|
- golint
|
|
|
|
- name: github.com/inconshreveable/mousetrap
|
|
|
|
version: 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75
|
2016-12-03 22:18:08 +01:00
|
|
|
- name: github.com/joeduffy/yaml
|
|
|
|
version: 8220212d5b2bb207e2755ab2a04e4bc06564d2b2
|
2016-11-25 21:58:29 +01:00
|
|
|
- name: github.com/Masterminds/sprig
|
Support binding to arbitrary service types
This implements support for arbitrary service types on properties,
not just the weakly typed "service". For example, in the AWS stacks,
the aws/ec2/route type requires a routeTable, among other things:
name: aws/ec2/route
properties:
routeTable:
type: aws/ec2/routeTable
This not only binds the definition of such properties, but also the
callsites of those creating stacks and supplying values for them.
This includes checking for concrete, instantiated, and even base
types, so that, for instance, if a custom stack derived from
aws/ec2/routeTable using the base property, in the above example
it could be supplied as a legal value for the routeTable property.
2016-12-03 22:00:08 +01:00
|
|
|
version: 1e60e4ce482a1e2c7b9c9be667535ef152e04300
|
Implement dependency resolution
This change includes logic to resolve dependencies declared by stacks. The design
is described in https://github.com/marapongo/mu/blob/master/docs/deps.md.
In summary, each stack may declare dependencies, which are name/semver pairs. A
new structure has been introduced, ast.Ref, to distinguish between ast.Names and
dependency names. An ast.Ref includes a protocol, base part, and a name part (the
latter being an ast.Name); for example, in "https://hub.mu.com/mu/container/",
"https://" is the protocol, "hub.mu.com/" is the base, and "mu/container" is the
name. This is used to resolve URL-like names to package manager-like artifacts.
The dependency resolution phase happens after parsing, but before semantic analysis.
This is because dependencies are "source-like" in that we must load and parse all
dependency metadata files. We stick the full transitive closure of dependencies
into a map attached to the compiler to avoid loading dependencies multiple times.
Note that, although dependencies prohibit cycles, this forms a DAG, meaning multiple
inbound edges to a single stack may come from multiple places.
From there, we rely on ordinary visitation to deal with dependencies further.
This includes inserting symbol entries into the symbol table, mapping names to the
loaded stacks, during the first phase of binding so that they may be found
subsequently when typechecking during the second phase and beyond.
2016-11-21 20:19:25 +01:00
|
|
|
- name: github.com/mitchellh/go-homedir
|
Support binding to arbitrary service types
This implements support for arbitrary service types on properties,
not just the weakly typed "service". For example, in the AWS stacks,
the aws/ec2/route type requires a routeTable, among other things:
name: aws/ec2/route
properties:
routeTable:
type: aws/ec2/routeTable
This not only binds the definition of such properties, but also the
callsites of those creating stacks and supplying values for them.
This includes checking for concrete, instantiated, and even base
types, so that, for instance, if a custom stack derived from
aws/ec2/routeTable using the base property, in the above example
it could be supplied as a legal value for the routeTable property.
2016-12-03 22:00:08 +01:00
|
|
|
version: b8bc1bf767474819792c23f32d8286a45736f1c6
|
Sketch out more AWS backend code-generator bits and pieces
This change includes a few steps towards AWS backend code-generation:
* Add a BoundDependencies property to ast.Stack to remember the *ast.Stack
objects bound during Stack binding.
* Make a few CloudFormation properties optional (cfOutput Export/Condition).
* Rename clouds.ArchMap, clouds.ArchNames, schedulers.ArchMap, and
schedulers.ArchNames to clouds.Values, clouds.Names, schedulers.Values,
and schedulers.Names, respectively. This reads much nicer to my eyes.
* Create a new anonymous ast.Target for deployments if no specific target
was specified; this is to support quick-and-easy "one off" deployments,
as will be common when doing local development.
* Sketch out more of the AWS Cloud implementation. We actually map the
Mu Services into CloudFormation Resources; well, kinda sorta, since we
don't actually have Service-specific logic in here yet, however all of
the structure and scaffolding is now here.
2016-11-19 01:46:36 +01:00
|
|
|
- name: github.com/satori/go.uuid
|
2016-11-25 21:58:29 +01:00
|
|
|
version: 879c5887cd475cd7864858769793b2ceb0d44feb
|
2016-11-15 20:30:34 +01:00
|
|
|
- name: github.com/spf13/cobra
|
2016-11-16 19:00:52 +01:00
|
|
|
version: 9495bc009a56819bdb0ddbc1a373e29c140bc674
|
2016-11-15 20:30:34 +01:00
|
|
|
- name: github.com/spf13/pflag
|
|
|
|
version: 5ccb023bc27df288a957c5e994cd44fd19619465
|
2016-11-16 04:18:03 +01:00
|
|
|
- name: github.com/stretchr/testify
|
Sketch out more AWS backend code-generator bits and pieces
This change includes a few steps towards AWS backend code-generation:
* Add a BoundDependencies property to ast.Stack to remember the *ast.Stack
objects bound during Stack binding.
* Make a few CloudFormation properties optional (cfOutput Export/Condition).
* Rename clouds.ArchMap, clouds.ArchNames, schedulers.ArchMap, and
schedulers.ArchNames to clouds.Values, clouds.Names, schedulers.Values,
and schedulers.Names, respectively. This reads much nicer to my eyes.
* Create a new anonymous ast.Target for deployments if no specific target
was specified; this is to support quick-and-easy "one off" deployments,
as will be common when doing local development.
* Sketch out more of the AWS Cloud implementation. We actually map the
Mu Services into CloudFormation Resources; well, kinda sorta, since we
don't actually have Service-specific logic in here yet, however all of
the structure and scaffolding is now here.
2016-11-19 01:46:36 +01:00
|
|
|
version: 18a02ba4a312f95da08ff4cfc0055750ce50ae9e
|
2016-11-15 20:30:34 +01:00
|
|
|
- name: gopkg.in/yaml.v2
|
|
|
|
version: a5b47d31c556af34a302ce5d659e6fea44d90de0
|
|
|
|
devImports: []
|