Development:GitHub Tree

From VsWiki
Jump to: navigation, search
thumb_arrow_up.png Development

The code is organized in GitHub very differently than it was in SVN for SourceForge. The team has broken the project into two major parts and enabled them to be released on their own.

If you are interested in contributing then we highly suggest you checkout the following resources:

The following will also be very relevant:

Game Assets

The Vega Strike Engine can run multiple different game assets. Here is a list of the currently known assets:

Game Engine

The Vega Strike Engine (VSE):

Branches and Tags

The Vega Strike Engine and Vega Strike Production Assets are maintained using the following branch and tag structures:

Branches

  • master - the primary development branch

Each release has its own Maintenance Release Branch:

  • 0.5.x - a mirror of the Subversion 0.5.x code when it was ported to GitHub
  • 0.5.3 - the last 0.5.x release on Subversion
  • 0.6.x - the first release on GitHub with updated dependencies
  • 0.7.x - new 'vegastrike-engine' executable, legacy 'vegastrike' kept for auto-find behavior
  • 0.8.x - support for Python 3
  • 0.9.x - drop support for Python 2, officially restore builds for Windows and Mac

The development team maintains the current (master), the prior release, and at times and up-coming releases. For example, the 0.9.x branch was cut in late 2023 and the 'master' branch was moved to '0.10.0'; however, the development team took a long time to meet the goals for releasing 0.9.x and thus even in late 2024 the branch was still an up-coming release; during this time the 0.8.x maintenance branch continued to be supported. Once 0.9.x is released the 0.8.x branch will leave active support by the development team. Generally the team aims to keep minimize the length of time a release is in the up-coming release state.

Release Process

The 'master' branch will always be the next release. When enough release targets are met the team will cut a new release branch to finish stabilizing a specific release. At that time the 'master' branch will be moved to the next release so development can continue forward while the release is being stabilized. The team will make a series of releases (alpha, beta, release candidates) based on the reports of stability until a final release is made using the `x.y.0` version. Bug fixes after that release will increment the final digital ('x.y.0' to 'x.y.1', etc); these releases may or may not see the candidates for releases.

Release Series

Alpha releases are used to verify that the release packages can be generated and their versions match the expected versions; ensuring that the system is generating the correct targets.

Beta releases are used to test functionality.

Release Candidates (RC) releases are used to show confidence in a release before making the final cut.

The last RC candidate should have the same Git Hash as the final release. This should generally hold true between the earlier releases in the cycle too (alpha to beta, beta to RC), but is not required to be so. There may, however, be some changes between when the branch is cut and the first alpha release is made.

Tags

Each release is tagged in git. We try not to change the commits the tags point to unless absolutely necessary. The tags can be found under the 'releases' page for each project.


Bringing it together

Starting with the 0.7.x release the VSE developers added a new 'vegastrike-engine' executable that requires the specification of the game assets to be run. The game assets are also no longer linked in the 'data' directory of the VSE code as they were with the code in SVN so users will need to checkout both projects on their own.

Game users will continue to be able to use the 'vegastrike' executable to auto-find the VS:UtCS code as was done with the earlier releases (0.5.x and previous).