Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

(to edit diagram, go to https://docs.google.com/a/sagebase.org/drawings/d/1s2zCr57TOajuuMHnD8xMXWVIWmPDINNE-MTFSMlNx4U/edit)

 

Image Modified

 

...

Development Workflows

Local PLFM changes

If you're working on PLFM and the changes *don't* need to be used immediately by clients, then you may work off of the 'master' branch.  Pull from the remote master, create a branch for your work, code and test, then merge back into master and push to github. 

Local Client changes

2) If you are just working on a client then you may work off the 'master' branch of the client's project, following the pattern described above.  The client will depend on a particular branch of PLFM (not the master branch) having a stable API.

 

3) the API-stable branch.

Changes to PLFM and Client

If you are making changes to PLFM's API and also are changing a client to reflect these changes, then:

(to edit diagram, goto https://docs.google.com/a/sagebase.org/drawings/d/1X05G5t_8tzW8lQjroQQk3HH9aTHYyvFZfPMg1eckTuU/edit)

Image Added

- pull from the client's master branch (creating a local branch for development)

...

- run pomVersioner.py to increment version, e.g. from 0.13.1.1 to 0.13.1.2

 

 

 

 

to incorporate PLFM master with the API-stable branch

Say the latest API-stable branch is 0.13.7.

 

1) - push to 0.13.1

- push to the client's master branch

- on PLFM, git checkout master

- pull from remote

- merge the API-stable branch's changes

- resolve any conflict and get a clean build

- run the pomVersioner to restore the master's version, e.g. to 0.13.2-SNAPSHOT

- push to the PFLM master branch

 

Incorporating PLFM master with the API-stable branch

(to edit, go to : https://docs.google.com/a/sagebase.org/drawings/d/1WUtUpzq1vtbv9nd1o3S3Dq_cUbLoDczDFqZBv3Pl3PI/edit)

Image Added

 

Pull from PLFM master

- on master, 'git checkout -b 0.13.8

2) git push origin 0.14.0

3) edit pomVersioner.py so 'newVersion' is 0.14.0; run 'python pomVersioner.py'2' to create the new branch

in the client project, pull from master, changing the version to be the version of the local PLFM snapshot (0.13.2-SNAPSHOT)

work to make client and PLFM work together

in PLFM branch, change version to 0.13.2.1 and push

in client master, change version to 0.13.2.1 and push

in PLFM master, merge the branch, change version to 0.13.3-SNAPSHOT and push to remote