-
Notifications
You must be signed in to change notification settings - Fork 1
Work Guide
The purpose of this doc is to help me remember what I'm trying to do in Loop. Because I often work in bursts and then can't return for months at a time, it's difficult to remember what I've done or what I'm trying to do. Hopefully this doc will help. My goal will be to write down what I'm planning to do before doing it, and then update what I've accomplished before I put the project back on the shelf.
Goals are evolving, but I want to be able to:
- debug any issues that may come up
- select features from different branches and easily combine them
- apply my basic customizations through a single git command
- track which versions are deployed on Ella's phone
- help others debug
- eventually commit significant features or bug fixes to help advance the overall project
In my Loop repo, I will have the Master and dev branches from LoopKit/Loop and jojo from Kdisimone/Loop. I will leave these branches unmodified as local reflections of the respective upstream remotes. I believe I need/want these branches separate from my own work solely for the purpose of tagging releases. I could alternatively capture the hash of a given state and capture those here or elsewhere.
Anytime I branch to make customizations specific to Ella, I will name the branch {original branch}-ella. For example: jojo becomes jojo-ella. If I'm working on specific features or testing, I will create another branch.
Every time I build and deploy, I will update the version in info.plist and create a new tag. The version tag will match Loop's but will append an additional ".x" for my uses as well as a "-ella" -- for example, if the upstream version is 1.10.0dev-jojo, my version string will be 1.10.0.{n}dev-jojo-ella in Loop and the Git tag will be v1.10.0.{n}dev-jojo-ella.
- Do I need the omnipod-testing branch?
- Not right now. I won't add any branches to my repo that I don't have a clear need to have locally.
- Why does github show my LoopKit/Loop Master as being 32 commits behind, but then shows no differences on compare?
- How do I properly make FileMerge the diff tool of choice?
- Should I delete all the unused and unwanted tags locally and on Github?
| Git command | Description |
|---|---|
$ git remote -v |
view remote information |
$ git branch |
show local branches |
$ git branch -r |
show all remote branches (I think for origin only?) |
$ git branch -a |
show all local and remote branches |
git tag -d $(git tag -l "v0.*") |
delete all local tags that start with v0.
|
git push origin -d $(git tag -l "v0.*") |
delete remote tags but only if the local tag still exists |
Setup a new working environment from scratch (not all commands are needed now that jojo-ella is pushed to origin)
$ git clone https://github.com/ryanpacker/Loop.git Loop
$ cd Loop/
$ git remote add upstream https://github.com/LoopKit/Loop.git
$ git remote add katiesrepo https://github.com/Kdisimone/Loop.git
$ git fetch katiesrepo jojo
$ git checkout -b jojo katiesrepo/jojo
$ git checkout -b jojo-ella
$ git push origin jojo-ellaTagging examples
$ git checkout jojo
$ git tag v1.10.0.0dev-jojo
$ git tag -d v1.10.0.0dev-jojo
$ git tag v1.10.0.1dev-jojo
$ git tag v1.10.0.0dev-jojo 426dab963ea77e83507687e676842151d40d1b6a
$ git push origin --tags- make excel workbook that has charts like Loopdoc charts
- write a script to automatically update the version string in all plist files and tag the release.
- create a script that sets up the working environment (sets the right upstreams, etc.)
cleanup this doc to reflect work from today (5/23/19)update branching and tagging strategy to reflect new thoughts
- Moving to latest dev branch and abandoning jojo
- checkout dev, create dev-ella branch, update versioning, customize including new icon
$ git checkout -b dev upstream/dev
$ git pull upstream dev
$ git checkout dev-ella
$ git push origin dev-ella
$ git tag v1.10.1.1dev-ella
$ git push origin --tags- Marketing version is now specified in a single place in Loop, so the
xcrun agvtool new-marketing-versiontool is no longer needed. Just update in /Loop.xconfig. - Created new Illustrator file (Loop Icon Ideas.ai) and then save final to loop-icon.ai and export png
- Used makeappicon.com to build latest icon
- Finish describing the learning process on github wiki
- Add a bunch of logging to follow what's happening in DoseMath
- Katie released an update to jojo.
- pull changes, tag, and push to origin.
$ git pull katiesrepo jojo $ git tag v1.10.0.2dev-jojo $ git push origin --tags
- Compare last two jojo versions to understand the change.
$ git diff v1.10.0.1dev-jojo
- Merge
jojointojojo-ellaandjojo-ellaintoghost-zerotemp
$ git checkout jojo-ella $ git merge jojo $ git checkout ghost-zerotemp $ git merge jojo-ella
- Update version string in
jojo-ellaand deploy to Ella's phone
$ xcrun agvtool new-marketing-version 1.10.0.2dev-jojo-ella $ git add . $ git commit -m "updated version strings" $ git tag v1.10.0.2dev-jojo-ella $ git push origin
- Step through the tempbasal code line by line to understand every line perfectly
- create
ghost-zerotempbranch - done - get testing fixture data working - done (I think)
- get basic tests working - done
- none of the above is committed. I can't quite follow the code. Need to take a break and come back tomorrow.
- Get environment setup on office iMac.
$ git clone https://github.com/ryanpacker/Loop.git Loop
$ cd Loop/
$ git remote add upstream https://github.com/LoopKit/Loop.git
$ git remote add katiesrepo https://github.com/Kdisimone/Loop.git
$ git fetch katiesrepo jojo- Create branch
personal-customizationsoff of jojo-ella that contains Ella's customizations
$ git checkout -b jojo katiesrepo/jojo
$ git checkout -b jojo-ella
$ git checkout -b personal-customizations- Apply customizations to jojo-ella - currently thinking that merging from
personal-customizationsis the best way to apply customizations (as opposed to rebasing or cherry picking)
$ git checkout jojo-ella
$ git merge personal-customizations- Update the version string, tag in git and deploy to Ella's phone
$ xcrun agvtool new-marketing-version 1.10.0.1dev-jojo-ella
$ git add .
$ git commit -m "updated version strings"
$ git tag v1.10.0.1dev-jojo-ella
$ git push origin --tags