Skip to content
This repository has been archived by the owner on May 29, 2022. It is now read-only.
Bryan Masamitsu Parsons edited this page Oct 1, 2018 · 3 revisions

GPSTk Gitlab Project Home

GPSTk Overview

  • GPSTk is a collection of software tools for GNSS intended for use by both SGL and the general public
  • GPSTk provides a foundation for other toolkits.
    • Many of the C++ libraries and apps and the python bindings in SGLTk link against GPSTk
    • GPSTk does not and should not depend on anything in SGLTk.
  • Official GPSTk Website for more information

GPSTk Getting Started

GPSTk Code Quality

  1. The build system includes automated regression testing
  2. Core and External Repos
  3. GPSTk coding style guidelines.

GPSTk Development Workflow: Essential Guidance

  1. Use both git and Github
  2. Use feature branches and issue tracking to isolate, track, and communicate
  3. Push your feature branches to the central repos so others can see your work, even before merging
  4. Pull requests must be used to facilitate quick code reviews, branch integration, and master branch integrity (protected)

GPSTk Development Workflow: Abridged Version

  1. Get the code: git clone https://github.com/SGL-UT/GPSTk.git
  2. Create a "+ New Issue" in Github
  3. Update master git checkout master; git pull origin/master
  4. Create a new feature branch: git checkout -b issue_99 master
  5. Setup local tracking and push empty feature branch to remote server: git push -u origin issue_99
  6. Develop test code
  7. Modify code, then git add and git commit on feature branch: git add my_file.cpp; git commit my_file.cpp -m "Did stuff"
  8. Merge in any upstream changes from master to make the merge request easier. git fetch; git merge origin/master
  9. Test the build before final push: ./build.sh -etv
  10. Push feature branch updates to central repository: git push origin issue_99
  11. Create a "+ New Pull Request and Assign it to Bryan Parsons to Review.
  12. After the merge of the feature branch into master is approved, pull updates: git checkout master; git pull
  13. If the branch was complete & removed, clean it up from your local repo: git checkout master; git fetch -p; git branch -d issue_99

GPSTk Development Workflow: Detailed Version

  1. Get the current version of the code

    • Keep the code on your network home (nightly backups), not on your local workstation (no backups!).
      • TIP: Use a single /git directory on your network home for all cloned local repos, easy organization (i.e. ~/git/repo_abc)
    • Clone the repository
    • Read the README
  2. Before coding, create a Github Issue

    • Before you start code, create an issue and a feature branch. Read on for details.
    • Create a Github issue for any new feature/program you want to develop/modify.
    • Use the "+ New Issue" button found here
  3. Before coding create a feature branch

  4. Update code on a feature branch, never on master.

    • master branch is for integration, protected, and should always pass the automated nightly build test.
    • all development will be feature branches, which once complete, will be merged into master by a reviewer.
    • GitLab server side permissions will not allow your to push directly to master.
    • HOWTO Edit a Feature Branch
  5. Use git push to send your local commits to the central repository

  6. Use pull requests

    • Create a pull request for your feature branch when you want it merged into the master branch.
    • Use the "+ New Pull Request" button found here and Assign it to Bryan Parsons to Review.
    • Wait for an ARL developer to review your feature branch and merge it.
    • After the pull request has been approved, the commit will be available with the next stable release pushed externally by ARL
    • HOWTO Update master branch
    • If you need to keep and add to the feature branch, merge master onto the feature branch before making additional adds/commits to keep the branch up-to-date and reduce merge conflicts

GPSTk Development Workflow: list of HOWTO Documents referenced throughout

  1. HOWTO Decide if your code should be moved into GPSTk
  2. HOWTO Get Started
  3. HOWTO Update master branch
  4. HOWTO Commit
  5. HOWTO Create and Push a New Feature Branch
  6. HOWTO Update and Push an Existing Feature Branch
  7. HOWTO Test the build
  8. HOWTO Rebase feature branch
  9. HOWTO Resolve merge conflicts
  10. HOWTO Fetch directly from another user