/skeleton

Common SBT & git configuration settings for all Facsimile projects

Primary LanguageScalaGNU Lesser General Public License v3.0LGPL-3.0

Facsimile Skeleton Project

The skeleton project maintains build files common to all other Facsimile projects (termed client projects), and is intended to ensure the following:

  • Common set of SBT plugins, all configured to use the current supported version.
  • Common core build, so that all Facsimile projects are built with the same version of the Scala compiler, and use the same compiler settings, test tools, etc.
  • Common source formatting and configuration, so that all Facsimile sources appear consistent across projects.

How to use.

Files common to all Facsimile projects should be included as part of this project, after which they are maintained as part of this project, with changes being merged into client projects.

Under no circumstances should client project make local changes to skeleton-maintained files. This will lead to git conflicts and inconsistencies.

In order to import changes to skeleton-maintained files into client applications, the client applications should define a remote repository as follows:

git remote add skeleton https://github.com/Facsimile/skeleton.git

After this has been done, changes to skeleton files can be merged into the client project with the following command:

git pull skeleton skeleton

Under no circumstances can a client project push changes to the skeleton project!

Making Changes to Skeleton Files

The skeleton Branch

Changes to files belonging to the skeleton project must be made on the skeleton branch of this project; files in this branch will be merged into the skeleton master branch (see below) as well as into client projects.

The master branch

The master branch of the skeleton project contains files—such as this README.md file—that must not be merged into client projects, as well as the files maintained by the skeleton branch.