commfish / GCLr

Gene Conservation Lab R package repository
3 stars 0 forks source link

GCLr

Overview

GCLr is an R package designed to streamline genetic data analyses performed by Gene Conservation Lab (GCL) staff. Many of the functions in this package require data pulled directly from the GCL Oracle database Loki. Because of this, only Alaska Department of Fish and Game staff with credentials for accessing Loki will be able to use this package to its full extent. However, the package does allow for users without Loki credentials to read in genetic data contained in GENEPOP and rubias formatted files and convert the data into the objects used that can be used by GCLr (see GCLr::genepop2gcl() and GCLr::base2gcl).

Here are some examples of things that this package can be used for:

Installation

You can install the package from GitHub using pak.


install.packages("pak")

pak::pak("commfish/GCLr")

Reporting issues and requests

If you have any issues running the functions in this package, please file an issue on GitHub.

Issues can also be filed if you want to request enhancements to functions or additional functions to be added to the package.

Package maintenance

This package generally follows the git-flow branching model, using semantic versioning to document releases. Below is a quick summary of the different branches.

Update version of GCLr package

Below is a generalized protocol for updating the package version by merging changes from the develop branch into the main branch. If working from a feature-branch, follow this same workflow for feature-branch –> develop, then develop –> main.

  1. commit changes on develop branch

  2. update NEWS.md, but without the version header #1, commit

  3. update the package version with usethis::use_version(), choose major, minor, or patch, have it commit for you

  4. push to develop

  5. create a pull request (base: main compare: develop) with meaningful title (i.e., merging to version 1.X.X) and brief description

  6. pull requests to main require review so we can keep main stable!

  7. merge after folks approve, confirm the merge, do not delete develop branch

  8. e-mail all GCL staff to notify everyone about the update

Hotfix protocol

  1. pull from main to make sure you have the latest and greatest version

  2. if your serious bug still exists, create an issue

  3. create hotfix_issue_XX branch (referencing the issue #) from main

  4. working on the hotfix_issue_XX branch, commit necessary changes to resolve the issue, note that you can include keywords in your commit that will auto-magically close the issue once the hotfix_issue_XX branch is merged back into main

  5. update NEWS.md, but without the version header #1, commit

  6. update the package version with usethis::use_version(), choose patch, have it commit for you

  7. push to hotfix_issue_XX

  8. create a pull request (base: main compare: hotfix_issue_XX) with meaningful title (i.e., Hotfix issue #) and brief description

  9. pull requests to main require review so we can keep main stable!

  10. merge after folks approve, confirm the merge, do not delete hotfix_issue_XX branch yet

  11. create another pull request (base: develop compare: hotfix_issue_XX) with meaningful title (i.e., Hotfix issue # merging to develop) and brief description

  12. merge, confirm the merge, now you can delete the hotfix_issue_XX branch

  13. e-mail all GCL staff to notify everyone about the update

Other helpful resources

ADF&G Division of Sport Fisheries Introduction to Git provides a good overview of Git, however, note that generally assumes that you will be working off of the shared network drive, rather than cloning to your local C:/ drive.

ADF&G’s Reproducible Research R Best Practices

GitKraken is a nice GUI alternative to GitHub for visualizing the commit/branch network