Commit graph

64 commits

Author SHA1 Message Date
joeduffy e39d1c5ada Skip -printf checks in Govet
Due to https://github.com/golang/go/issues/12294, our Travis jobs are
failing with

    pkg/compiler/binder/stmtexpr.go:160: no formatting directive in Errorf call

etc, etc.  Perplexingly, this is supposedly fixed as of Go 1.7.5, and we are
running Go 1.8.2 in Travis.  However, vet is a separate binary tool, so it seems
either (1) Go's Linux distro doesn't contain the right version or (2) Travis's
image doesn't contain the right version.  I have to imagine (2) is more likely,
except that I can't actually look at the machine (and go vet doesn't have a version)!

For now, we will just skip the -printf checks.
2017-05-24 12:50:29 -07:00
joeduffy a1cf0c2a6c Update to Go 1.8.2 2017-05-24 12:50:28 -07:00
Luke Hoban 2a036c8693 More CLIDL -> LUMIDL updates 2017-05-18 17:21:08 -07:00
joeduffy b7f3d447a1 Preserve the lumi prefix on our CLI tools
This change keeps the lumi prefix on our CLI tools.

As @lukehoban pointed out in person, as soon as we do pulumi/coconut#98,
most people (other than compiler authors themselves) won't actually be
typing the commands.  And, furthermore, the commands aren't all that bad.

Eventually I assume we'll want something like `lumi-js`, or
`lumi-js-compiler`, so that binaries are discovered dynamically in a way
that is extensible for future languages.  We can tackle this during #98.
2017-05-18 12:38:58 -07:00
joeduffy dafeb77dff Rename Coconut to Lumi
This is part of pulumi/coconut#147.

After it has landed, I will rename the repo on GitHub.
2017-05-18 11:38:28 -07:00
joeduffy e97632e668 Make the IDL compiler too 2017-05-13 20:11:20 -04:00
joeduffy 0325801e99 Run go test with -cover flag
This ensures that code coverage is emitted, something we need to start
paying closer attention to as we start hardening the system.
2017-05-13 20:07:49 -04:00
joeduffy 09e786269a Correctly quote Makefile lint commands 2017-05-13 19:51:26 -04:00
joeduffy 24990062ad Run golint during make
This change runs golint during make by default, but suppresses the
class of errors we are currently permitting into the code (just those
about public documentation on APIs).
2017-04-12 11:01:16 -07:00
joeduffy 9d7bbcfa78 Restructure source layout for tools
This change restructures the overall structure for commands so that
all top-level tools are in the cmd/ directory, alongside the primary
coco command.  This is more "idiomatic Go" in its layout, and makes
room for additional command line tools (like cocogo for IDL).
2017-04-12 10:38:12 -07:00
joeduffy fbb56ab5df Coconut! 2017-02-25 07:25:33 -08:00
joeduffy 5774999957 Clean up the Makefile
This adds a bunch of independent targets to the Makefile, to help
run individual commands as needed.  It also skips running `golint`
by default (per golint's advice, actually), because it spews lots
of documentation-related things at the moment, which we are
intentionally ignoring.  (Mainly just hundreds of public members
without comments; eventually we'll need to tackle this.)
2017-01-27 15:42:55 -08:00
joeduffy a4ac29554d Test packages when making the project 2016-11-15 19:25:06 -08:00
joeduffy e75f06bb2b Sketch a mu build command and its scaffolding
This adds a bunch of general scaffolding and the beginning of a `build` command.

The general engineering scaffolding includes:

* Glide for dependency management.
* A Makefile that runs govet and golint during builds.
* Google's Glog library for logging.
* Cobra for command line functionality.

The Mu-specific scaffolding includes some packages:

* mu/pkg/diag: A package for compiler-like diagnostics.  It's fairly barebones
  at the moment, however we can embellish this over time.
* mu/pkg/errors: A package containing Mu's predefined set of errors.
* mu/pkg/workspace: A package containing workspace-related convenience helpers.

in addition to a main entrypoint that simply wires up and invokes the CLI.  From
there, the mu/cmd package takes over, with the Cobra-defined CLI commands.

Finally, the mu/pkg/compiler package actually implements the compiler behavior.
Or, it will.  For now, it simply parses a JSON or YAML Mufile into the core
mu/pkg/api types, and prints out the result.
2016-11-15 14:30:34 -05:00