Cytoscpae Projects at Github
Introduction
This is a document who are interested in Cytoscape 3.x core development.
Cytoscape Core projects are now hosted at GitHub. To work on the core, you need to learn how to use git. Please read some books/documents about git and understand basic concepts of distributed source code management system.
Cytoscape 3 Core Projects
(This section is not finished yet)
parent
This project contains only one pom.xml file. This is the parent of many sub-projects. Important version numbers, such as OSGi runtime version, maven plugin versions are stored as properties in this file.
api
This project defines public API set for Cytoscape 3. We will not change these API for minor releases.
Actual implementation code. In general, these are hidden from 3rd party developers and not accessible.
Misc. sub modules for Cytoscape 3 distributions.
Desktop version of Cytoscape 3.
Experimental command-line version of Cytoscape. This will be included from 3.1.x releases.
Creates support JAR file for App developers. This bundle also creates public API JavaDocs.
Sample code projects.
Please read README.md file for the latest information.
(This image was created by Vincent Driessen)
Cytoscape Core projects use the following branching model: This is one of the best practices used in developers community using git. The following two branches always exist for all sub-projects: In addition to these branches, we use the following branches:
Branching is a very lightweight operation in git. Instead of sticking to one develop branch, creating Git-flow is a collection of shell scripts to save your keystrokes when you perform branching, merging, and tagging. If you want to create a new feature for Cytoscape, you can create new branch with the following command. And once you finish it, you can run the following: This automatically merge your new feature back to develop, and delete the feature branch.
Cytoscape mailing lists are the best place to ask questions. Let's start
impl
support
gui-distribution
headless-distribution
app-developer
samples
Clone Cytoscape 3 Core Projects with repo
Working with Branches
Branching Model for Cytoscape Core Projects
master - for tagging releases. Once we create a release, the code set will be set to HEAD of this branch. This will NOT be used for daily development.
hotfix - for bug fix releases. For example, fixes for 3.0.1 release will be maintained in this branch and merged back to both develop and master. Feature Branches and git-flow
git flow feature start NEW_FEATURE_NAME
git flow feature finish NEW_FEATURE_NAME
Questions?
Links