pulumi/lib
joeduffy 8b57310854 Tidy up more lint
This change fixes a few things:

* Most importantly, we need to place a leading "." in the paths
  to Gometalinter, otherwise some sub-linters just silently skip
  the directory altogether.  errcheck is one such linter, which
  is a very important one!

* Use an explicit Gometalinter.json file to configure the various
  settings.  This flips on a few additional linters that aren't
  on by default (line line length checking).  Sadly, a few that
  I'd like to enable take waaaay too much time, so in the future
  we may consider a nightly job (this includes code similarity,
  unused parameters, unused functions, and others that generally
  require global analysis).

* Now that we're running more, however, linting takes a while!
  The core Lumi project now takes 26 seconds to lint on my laptop.
  That's not terrible, but it's long enough that we don't want to
  do the silly "run them twice" thing our Makefiles were previously
  doing.  Instead, we shall deploy some $$($${PIPESTATUS[1]}-1))-fu
  to rely on the fact that grep returns 1 on "zero lines".

* Finally, fix the many issues that this turned up.

I think(?) we are done, except, of course, for needing to drive
down some of the cyclomatic complexity issues (which I'm possibly
going to punt on; see pulumi/lumi#259 for more details).
2017-06-22 12:09:46 -07:00
..
aws Tidy up more lint 2017-06-22 12:09:46 -07:00
lumi [#245, #226, #185] Finished linting (#257) 2017-06-21 11:58:22 -07:00
lumijs [#245, #226, #185] Finished linting (#257) 2017-06-21 11:58:22 -07:00
lumirt [#245, #226, #185] Finished linting (#257) 2017-06-21 11:58:22 -07:00
mantle Implemented highlighted edits 2017-06-13 11:01:23 -07:00
README.md Preserve the lumi prefix on our CLI tools 2017-05-18 12:38:58 -07:00

lumi/lib

This directory contains some libraries that Lumi programs may depend upon.

Overview

The Lumi standard library underneath lumi/ is special in that every program will ultimately use it directly or indirectly to create resources.

Similarly, lumijs/ is the LumiJS compiler's runtime library, and so most LumiJS programs will on it.

Note that these are written in the Lumi subsets of the languages and therefore cannot perform I/O, etc.

Installation and Usage

Eventually these packages will be published like any other NPM package. For now, they are consumed only in a development capacity, and so there are some manual steps required to prepare a developer workspace.

For each library <lib> you wish to use, please see its install.sh script in its root directory. This performs installation so that it can be used simply by adding a dependency to it.

We currently use NPM/Yarn symlinks to ease the developer workspace flow. As such, you will need to run:

  • yarn link <lib>

In a project that intends to consume <lib> before actually using it. For example, yarn link @lumi/lumi.