Skip to content

Structure of Sif Framework repositories

Joerg Huber edited this page Dec 15, 2016 · 3 revisions

Overview

The sif-framework-dotnet and sif-framework-java open source contributions were originated in Australia for use with SIF infrastructure and data model in that locale. Global interest in the framework lead to a change in the structure of the git repositories for this open source contribution. This structures allows for the special needs and governances of different SIF locales while providing a common trunk for contributions from any locale.

The branching model described below is a simplified version of this branching model.

Structure

The following global organisation structure applies to both assets: Access4Learning/sif3-framework-java Access4Learning/sif3-framework-dotnet

Global branches

The global repositories will contain three types of branch:

  • master branch - this will be the stable branch
  • develop branch - this branch will be used for all pull requests
  • release branches - these branches are available for hotfix support for multiple releases if required

Global content

Within the global repositories will be found:

  • Library for Framework code
  • Code generator for specification releases (based on XSDs)
  • EnvironmentProvider for DIRECT environments
  • Documentation

How global repositories will be used/not used

For the global repositories:

  • Each locale nominates an Administrator as gatekeeper to the global repositories
  • Administrator consensus is required for Pull Request acceptance
  • Administrator consensus is also required for what goes into a release
  • An allocated administrator manages version releases

Generally, global repositories will not be used for collaborative development, but rather only for feature builds.

Locale repositories

Currently, the following repositories exist:

  • nsip/sif3-framework-java (fork of Access4Learning)
  • nsip/sif3-framework-dotnet (fork of Access4Learning)
  • nsip/sif3-framework-demos-au-dotnet (locale-specific demo for Australia)

If and when other locale-specific githubs, framework branches and demos are created, a similar naming policy should be followed.

Locale repository branches

Forked frameworks (same as exposed by Access4Learning/):

  • master branch (stable)
  • develop branch (for Pull Requests)
  • release branches (for hotfix support)

Local specific demos:

  • master branch (stable)
  • develop branch (for Pull Requests)
  • release branches (to reflect Global repository version releases)

Locale repository content

Within the locale repositories are found:

  • Fork of Global repositories (Framework libraries)
  • Library for locale specific demo code
  • Documentation

How locale repositories will be used/not used

Locale repositories are publicly exposed repositories for collaborative development:

  • Developers to fork into their own remote repositories
  • Submit Pull Requests to “develop” branches only

Each locale has its own Administrators who manage:

  • Pull Request acceptance
  • Version releases