Difference between revisions of "BEEBS"

From MAGEEC
Jump to: navigation, search
m (Branch Management - Another branch gone.)
m (Branch Management: Remove table, expand no release branches.)
 
(One intermediate revision by the same user not shown)
Line 12: Line 12:
 
== Branch Management ==
 
== Branch Management ==
  
We currently have several branches on github, some of which are out of date.  The following table lists all the branches that currently exist, when they were last committed too, and whether the branch has been merged back into either <tt>master</tt> or <tt>beebsv2</tt>.
+
We currently have just two branches on github, <tt>beebsv2</tt> and <tt>master</tt>.
  
The <tt>beebsv2</tt> branch is where the current development effort for the 2.0 release is taking place.
+
In the past most development work has taken place on <tt>beebsv2</tt> but in the future all development should be performed on <tt>master</tt>, any changes that are pushed to <tt>beebsv2</tt> will be merged back into <tt>master</tt>.  At some point soon(ish) the <tt>beebsv2</tt> branch will be deleted.
  
{|
+
=== Pushing To <tt>master</tt> ===
! scope="row" | Branch Name || Time Since Last Commit || Status Against beebsv2
+
 
|-
+
Only push back to the official github repository once work on a feature is complete.  All changes pushed should be complete, self contained changes, that introduce no regressions.
| beebsv2 || hours || N/A
 
|-
 
| dejagnu || 2 months || +12 commits
 
|-
 
| jeremy || 8 months || +1 commit
 
|-
 
| jp || 13 days || +0 commits
 
|-
 
| master || 7 months || +0 commits
 
|-
 
| python || 2 months || +6 commits
 
|-
 
|}
 
  
 
=== Creating New Branches ===
 
=== Creating New Branches ===
  
In future new branches should only be created within the official BEEBS repository if the branch is likely to be of use to a typical BEEBS user.  The main thread of active development will continue in the BEEBS repository, but random proto-typing development branches should be created within forks of the BEEBS repository.
+
Any new branches should only be created in the official BEEBS github repository if the branch is likely to be of use to a typical BEEBS user.  If you need to share feature development branches then this should be done by forking the BEEBS repository (on github) and pushing the development branches to the fork.  These will then be merged back into <tt>master</tt> on the official repository once the feature is complete.
 +
 
 +
=== Release Tags and Release Branches ===
  
Once a feature is ready for inclusion in the main BEEBS development branch then merge the branch, or create a pull request.
+
When it's time to make a release a release branch will be created on github branching off <tt>master</tt> any release specific commits can be made on the branch, and the branch will then be tagged with the release tag.
  
 
== Release Planning ==
 
== Release Planning ==

Latest revision as of 15:17, 12 August 2014

Introduction

BEEBS is the Bristol/Embecosm Embedded Benchmark Suite, there's a blog post discussing BEEBS here.

Downloading And Building

The code is available on github. Clone the github repository and read the README file for details on how to build.

Note: Currently most of the interesting development is being done on the beebsv2 branch, you might want to switch to this branch before trying to build.

Branch Management

We currently have just two branches on github, beebsv2 and master.

In the past most development work has taken place on beebsv2 but in the future all development should be performed on master, any changes that are pushed to beebsv2 will be merged back into master. At some point soon(ish) the beebsv2 branch will be deleted.

Pushing To master

Only push back to the official github repository once work on a feature is complete. All changes pushed should be complete, self contained changes, that introduce no regressions.

Creating New Branches

Any new branches should only be created in the official BEEBS github repository if the branch is likely to be of use to a typical BEEBS user. If you need to share feature development branches then this should be done by forking the BEEBS repository (on github) and pushing the development branches to the fork. These will then be merged back into master on the official repository once the feature is complete.

Release Tags and Release Branches

When it's time to make a release a release branch will be created on github branching off master any release specific commits can be made on the branch, and the branch will then be tagged with the release tag.

Release Planning

Release 2.0

Currently planned for release August/September 2014.

The issue tracking for version 2.0 is on github, everything with the v2.0 milestone label is currently schedules for release 2.0.

The high level goals for the 2.0 release are:

  1. Remove unhelpful brenchmarks. Some of the benchmarks compile away to practically nothing, these should be deleted.
  2. Ensure wherever possible a GPL header is in place.
  3. Ensure that as many of the tests as possible build on the supported targets. Any tests that don't build should be baked into the exclude lists for that target, a user should not have to figure out which tests are not suitable for a supported target.

Release 3.0

Currently planned for release sometime after version 2.0.

There's a milestone setup for this release on github any issues for this release can be tracked there.

The high level goals for this release are:

  1. Add support for running the tests...
    1. On a variety of target boards.
    2. Using different testing strategies, for example, measuring run time, energy used, size of compiled binary.
  2. [ MAYBE ] Have the tests self verify themselves.