The core package uses global variables that keep from having
more than one Tile38 instance runnning in the same process.
Move the core variables in the server.Options type which are
uniquely stated per Server instance.
The build variables are still present in the core package.
In the past we needed to vendor out Go packages because there wasn't
a built-in Go package manager. That changed with Go Modules, which has
been stable for a while now. The Go Modules system will maintain
packages versions, handle the fetching, checksuming, and keep a
public cached of the source code.
This commit includes updates that affects the build, testing, and
deployment of Tile38.
- The root level build.sh has been broken up into multiple scripts
and placed in the "scripts" directory.
- The vendor directory has been updated to follow the Go modules
rules, thus `make` should work on isolated environments. Also
some vendored packages may have been updated to a later
version, if needed.
- The Makefile has been updated to allow for making single
binaries such as `make tile38-server`. There is some scaffolding
during the build process, so from now on all binaries should be
made using make. For example, to run a development version of
the tile38-cli binary, do this:
make tile38-cli && ./tile38-cli
not this:
go run cmd/tile38-cli/main.go
- Travis.CI docker push script has been updated to address a
change to Docker's JSON repo meta output, which in turn fixes
a bug where new Tile38 versions were not being properly pushed
to Docker