Fully-loaded, pure-Elixir GraphQL server implementation with developer tools


License
MIT

Documentation

Graphqexl

CircleCI (master): CircleCI

Graphqexl is a fully-loaded GraphQL implementation along with server utilities and developer tools.

Installation

The package can be installed by adding graphqexl to your list of dependencies in mix.exs:

def deps do
  [
    {:graphqexl, "~> 0.1.0"}
  ]
end

Support / Maintenance

graphqexl uses Semantic Versioning, contained in a VERSION file. During the 0.X release series, we will support 2 minor versions back from the current at any given time. For example, if the current latest release is 0.4, we will also support 0.3 and 0.2, but not 0.1.

On the 1.Y and greater tracks, we will support one minor version at a time of one major version back from the current. For example, if the latest release is 2.3 and there was a 1.7 release and 0.9 release, we will support 2.3 and 1.7, but not 2.2, 1.6, or 0.9.

Development

Requirements

  1. Elixir 1.9+ / Erlang 22+: brew install erlang elixir / apt-get install erlang elixir
  2. Hex: mix local.hex
  3. Mix Dependencies: mix deps.get (and optionally mix deps.compile)

TODO: Contributing

Git Branching

Branches should follow git-flow conventions.

master

master is the current, latest stable release. There will be a corresponding tag for the version. This is what is published to Hex.

develop

develop is the primary branch, and is what will be deployed to staging environments.

feature branches

Feature branches are primarily what developers work on and are prefixed with feature/. They are cut from develop and merge back into develop. Developers should rebase feature branches frequently against develop.

release branches

Release branches are cut from develop and merged into master, which is then back-merged into develop. The VERSION file will be incremented in these branches, and contain one or more feature branches ready to be released.

hotfix branches

Hotfix branches are Z-version patch updates containing critical or non-critical bug and security fixes. They may also contain dependency updates. These branches are prefixed hotfix/ and named for their version. The VERSION file will be updated in these branches. Hotfix branches are cut from master, merged into master and then master is back-merged into develop and any active release branches.

support branches

Support branches are cut from master before X-version major releases are made. See the Support/Maintenance section for more details on maintenance policies. Support branches are prefixed with support/ and named for their X or X.Y track. They are versioned, tagged and published separately, almost like secondary "master"s. Release branches are merged into support branches as appropriate per the support track's status.

Documentation can be found at https://hexdocs.pm/graphqexl.

References