Browse files

docs: prep for 1.0.0 release; configure goreleaser

  • Loading branch information...
evanelias committed Jul 6, 2018
1 parent 0a7908a commit 30ad485f565db70ab816a73d6e6877d5a3ec6029
Showing with 62 additions and 7 deletions.
  1. +1 −0 .gitignore
  2. +32 −0 .goreleaser.yml
  3. +14 −5
  4. +15 −2 skeema.go
@@ -6,6 +6,7 @@
# Folders
# Architecture specific extensions/prefixes
@@ -0,0 +1,32 @@
# This is an example goreleaser.yaml file with some sane defaults.
# Make sure to check the documentation at
- binary: skeema
- linux
- darwin
- amd64
name_template: "{{ .Tag }}-next"
sort: asc
- '^docs:'
- '^test:'
short_hash: true
name_template: '{{ .ProjectName }}_{{ .Arch }}'
description: Schema management CLI for MySQL
maintainer: Evan Elias <>
license: Apache 2.0
vendor: Skeema LLC
- deb
- rpm
@@ -2,6 +2,7 @@
[![build status](](
[![code coverage](](
[![latest release](](
Skeema is a tool for managing MySQL tables and schema changes. It provides a CLI tool allowing you to:
@@ -15,13 +16,13 @@ Skeema supports a pull-request-based workflow for schema change submission, revi
## Downloading
Pre-built `skeema` binaries for Linux and macOS will be supplied later in Q2, once a formal release occurs. Stay tuned!
Pre-built `skeema` binaries for Linux and macOS can be downloaded from the [releases]( page.
## Compiling
Requires the [Go programming language toolchain](, version 1.9 or higher.
Compiling from scratch requires the [Go programming language toolchain](, version 1.9 or higher.
To download, build, and install (or upgrade) Skeema, run:
To download, build from master, and install (or upgrade) Skeema, run:
`go get -u`
@@ -36,9 +37,17 @@ To download, build, and install (or upgrade) Skeema, run:
## Status
Skeema is currently in public beta.
Skeema is generally available, having reached v1 release milestone in July 2018. Prior to that, it was in public beta since October 2016.
The `skeema` binary is supported on macOS and Linux. For now, it cannot be compiled on Windows. On the database side, testing is primarily performed against MySQL 5.6 and 5.7, running on Linux.
The `skeema` binary is supported on macOS and Linux. For now, it cannot be compiled on Windows.
Tagged releases are tested against the following databases, all running on Linux:
* MySQL 5.5, 5.6, 5.7
* Percona Server 5.6, 5.7
* MariaDB 10.1, 10.2, 10.3
Outside of a tagged release, every commit to the master branch is automatically tested against MySQL 5.6 and 5.7.
A few uncommon MySQL features -- such as partitioning, fulltext indexes, spatial types, virtual columns -- are not yet supported. Skeema is able to *create* or *drop* tables using these features, but not *alter* them. The output of `skeema diff` and `skeema push` clearly displays when this is the case. You may still make such alters directly/manually (outside of Skeema), and then update the corresponding CREATE TABLE files via `skeema pull`.
@@ -9,13 +9,19 @@ import (
const version = "0.2 (beta)"
const rootDesc = `Skeema is a MySQL schema management tool. It allows you to export a database
schema to the filesystem, and apply online schema changes by modifying files.`
// Globals overridden by GoReleaser's ldflags
var (
version = "unknown"
commit = "unknown"
date = "unknown"
// CommandSuite is the root command. It is global so that subcommands can be
// added to it via init() functions in each subcommand's source file.
var CommandSuite = mybase.NewCommandSuite("skeema", version, rootDesc)
var CommandSuite = mybase.NewCommandSuite("skeema", versionString(), rootDesc)
func main() {
// Add global options. Sub-commands may override these when needed.
@@ -39,3 +45,10 @@ func main() {
func versionString() string {
if commit == "unknown" {
return "unknown (unreleased build from source)"
return fmt.Sprintf("%s, commit %s, released %s", version, commit, date)

0 comments on commit 30ad485

Please sign in to comment.