/fury-old

A new build tool for JVM languages

Primary LanguageScalaApache License 2.0Apache-2.0

GitHub Workflow

Fury

Overview

Fury is a long-term project to create next-generation build tooling to address the greatest challenges of building software in an ever-changing environment, while maintaining the predictability, reliability and simplicity of builds.

Features

  • fully data-oriented model for builds
  • builds may be defined in terms of sources or binary dependencies
  • power to control a build and the builds of all its source dependencies
  • advanced support for conflict resolution amongst dependencies
  • intuitive command-line API, with visual interfaces available later (Milestone 3)
  • hierarchical model of builds and build distribution
  • support for compiling Scala 2.x, Scala 3, Scala.js and Java
  • composable variants of builds, for generalized cross-building (Milestone 2)
  • support for running Docker containers as part of a build (Milestone 2)
  • compilation distributed over the network (Milestone 3)
  • optionally external builds, shared independently of source code

Fury Concepts

Fury introduces a number of new concepts for developers. While full documentation is in the process of being written, a work-in-progress document provides a lot of detail on these new ideas and how they work.

Release

Fury is approaching its first public milestone release, Alecto. This will be the first release of Fury capable of building a majority of Scala projects. Fury’s future plans are described in the roadmap.

Installation

Pre-release versions of Fury (with no guarantees on features or reliability) may be installed by running,

curl -Ls get.fury.build | sh

in a shell, or alternatively,

curl -Ls get.fury.build > install
./install system install

if you would prefer to inspect the script before running it.

For more details, see the full installation instructions.

Getting Started

To set up a simple Fury project, follow the short tutorial for Scala or, if you prefer, the tutorial for Java.

Website

Full information about Fury is available on the Fury website.

Contributing

Contributors to Fury are welcome and encouraged. New contributors may like to look for issues marked label: good first issue.

We suggest that all contributors read the Contributing Guide to make the process of contributing to Fury easier.

Please do not contact project maintainers privately with questions, as other users cannot then benefit from the answers.

Author

Fury was designed and developed by Jon Pretty, and commercial support and training is available from Propensive OÜ.

License

Fury is copyright © 2018-20 Jon Pretty & Propensive OÜ, and is made available under the Apache 2.0 License.