This repository has been archived by the owner on May 29, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 185
Home
Bryan Masamitsu Parsons edited this page Oct 1, 2018
·
3 revisions
- 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
- The build system includes automated regression testing
- Core and External Repos
- GPSTk coding style guidelines.
- Use both git and Github
- Use feature branches and issue tracking to isolate, track, and communicate
- Push your feature branches to the central repos so others can see your work, even before merging
- Pull requests must be used to facilitate quick code reviews, branch integration, and master branch integrity (protected)
- Get the code:
git clone https://github.com/SGL-UT/GPSTk.git
- Create a "+ New Issue" in Github
- Update master
git checkout master; git pull origin/master
- Create a new feature branch:
git checkout -b issue_99 master
- Setup local tracking and push empty feature branch to remote server:
git push -u origin issue_99
- Develop test code
- Modify code, then git add and git commit on feature branch:
git add my_file.cpp; git commit my_file.cpp -m "Did stuff"
- Merge in any upstream changes from master to make the merge request easier.
git fetch; git merge origin/master
- Test the build before final push:
./build.sh -etv
- Push feature branch updates to central repository:
git push origin issue_99
- Create a "+ New Pull Request and Assign it to Bryan Parsons to Review.
- After the merge of the feature branch into master is approved, pull updates:
git checkout master; git pull
- If the branch was complete & removed, clean it up from your local repo:
git checkout master; git fetch -p; git branch -d issue_99
-
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
- Keep the code on your network home (nightly backups), not on your local workstation (no backups!).
-
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
-
Before coding create a feature branch
- Create a feature branch, named after the issue created, before editing anything.
- Create a separate feature branch for each line of development.
- HOWTO Create and Push a New Feature Branch
-
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
-
Use git push to send your local commits to the central repository
- Use git push only when you are ready to share or have your code reviewed by others.
- Merge master into feature branch before your push
- Test the build before you push updates to the central repository.
- HOWTO Test the build
-
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
- HOWTO Decide if your code should be moved into GPSTk
- HOWTO Get Started
- HOWTO Update master branch
- HOWTO Commit
- HOWTO Create and Push a New Feature Branch
- HOWTO Update and Push an Existing Feature Branch
- HOWTO Test the build
- HOWTO Rebase feature branch
- HOWTO Resolve merge conflicts
- HOWTO Fetch directly from another user