-
Notifications
You must be signed in to change notification settings - Fork 16
Developer information
David Cok edited this page Dec 24, 2015
·
6 revisions
The jSMTLIB sources are organized as follows.
- The main repository is obtained by cloning: https://github.com/smtlib/jSMTLIB.git
- There are four branches:
- The gh_pages branch, which is only used to update the project website and should have no other material on it. Committing and pushing changes there will update the project web site.
- The release branch, which is only used for actual public releases.
- The master branch, which is for merges of stable, tested, material.
- The develop branch, which is for merges of material before merging to master; this branch may be unstable at any given time; most actual development should occur on local branches.
The jSMTLIB source code is organized as a set of Eclipse projects (The gh-pages branch is not an Eclipse project).
- SMT - the source for the jSMTLIB library and tools
- SMTPlugin - the source for the Eclipse plugin for editing SMTLIB files
- SMTTests - functional and unit tests for the library
- SMTFeature - the Eclipse Feature for deploying the plugin
- SMTUpdateSite - the staging area for the Eclipse update site for installing the jSMTLIB plugin
The normal work-flow should be:
- Create a new local branch to do some new work, based on the HEAD of the develop branch
- Add tests and new development to the branch
- When the work is complete, with new tests to validate it, and all other tests are also working, then ...
- Merge from the develop branch to your local branch to update with any changes while your were working
- Resolve merge conflicts, recheck that all tests are working
- Repeat the above if any new changes have been pushed to the develop branch
- The merge your local branch to the develop branch; this should now be an easy, automatic merge - but nevertheless, test again.
- When the develop branch is stable with an appropriate bundle of features
- Issue a pull request on the master branch
- The build master will merge the request onto master from the develop branch
- If any changes are pushed directly to the master branch, they should also be merged to the develop branch.
- When a release is ready, it is staged on the master branch and then merged over to the release branch with an appropriate version number and release notes.
In a development environment, the tests are run using the "SMT tests" launch configuration.
(TBD) Needed:
- GUI tests
- release tests outside the Eclipse environment
- scriptable mechanisms for running and reporting nightly tests
... TBD ... procedure and a script to easily automate the procedure