Develop Software | U.S. Geological Survey (2024)

Source Control

Source control provides a logical way to organize and control collaboration, revision, and release of source code. As a best practice, private or sensitive information (including but not limited to: personally identifiable information (PII), absolute file system paths, internal server host names or IP addresses, and usernames/passwords) should always be extracted from the source code and maintained separately.

Note: Git maintains a repository history and any commits containing sensitive information must be purged from the repository history. Refer to the Git Help on Rewriting History.

Where should I put my source code?

The USGS only supports Git for source code control. There are three unique hosting platforms for Git available to USGS employees. For more information contact GS Help Git (gs_help_git@usgs.gov).

Each platform component provides similar but distinct functionality. When deciding which component to use, please see the following information:

Sources/Usage: Public Domain. View Media Details

USGS GitHub: USGS Organization on GitHub [EXTERNAL]

This component is a commercial off-the-shelf hosting solution provided and hosted by GitHub. GitHub supports integrated issue tracking, project boards, and third-party integrations among other features. This component is publicly accessible. Private repositories are not available in this component. Any person – regardless of USGS affiliation – can create a GitHub account and collaborate on USGS projects by submitting pull requests.

This component is a commercial resource governed by its terms of service as amended for government use.

USGS OpenSource GitLab

This component is a commercial off-the-shelf installation of GitLab Community Edition (CE) provided and hosted in the cloud by the USGS Cloud Hosting Solutions (CHS) team. This component supports integrated issue tracking and project boards among other features. Some listed features may not be enabled in the “OpenSource GitLab” component.

This component is publicly accessible from anywhere on the internet. Projects identified as “Public” within this component are viewable by all users regardless of authentication. Projects identified as “Internal” within this component are viewable by any authenticated user. Projects identified as “Private” are viewable only by authenticated and authorized users. Default project visibility is “Internal”.

All USGS personnel automatically have accounts on this system. Simply log in with your Active Directory credentials or smart card. External collaborator accounts may be requested by a USGS sponsor and require the collaborator use two-factor authentication through a free third-party application (or open source alternative). Authorization is managed through project, user, and group permissions assigned by system and project maintainers.

This component is hosted in the CHS Amazon Web Services (AWS) Cloud and leverages AWS managed services to provide the highest available up-time and recovery. Data stored on this component are backed up nightly. System and application patches and updates are applied monthly.

Note: USGS Scientific Software Policy - All authoritative copies of Scientific Software intended for approved release must reside here.

USGS InnerSource GitLab

This component is a commercial off-the-shelf installation of GitLab CE provided by GitLab and hosted in the cloud by the USGS CHS team. This component supports integrated issue tracking, project boards, container image registry, and shared task runners among other features. Some listed features may not be enabled in the “InnerSource GitLab” component.

This component is only accessible while on the DOI network or using the Pulse VPN. Projects identified as “Public” within this component are viewable by all DOI network users regardless of authentication. Projects identified as “Internal” within this component are viewable by any authenticated user. Projects identified as “Private” are viewable only by authenticated and authorized users. Default project visibility is “Private”

All USGS personnel automatically have accounts on this system. Simply log in with your Active Directory credentials or smart card. Authorization is managed through project, user, and group permissions assigned by system and project maintainers. External collaborator accounts are not supported.

This component is hosted in the AWS Cloud and leverages AWS managed services to provide the highest available up-time and recovery. Data stored on this component are backed up nightly. System and application patches and updates are applied monthly.

Lifecycle Stages of Source Code

Code writing is often an iterative process and your software source code will likely fall into all of the categories below at some point in the process. Here are some helpful tips about Git and lifecycle stages of software.

Pre-release Development

This source code can exist in folders on local workstations or user account namespace on any USGS GitLab project.

  • Private
  • USGS OpenSource GitLab code.usgs.gov personal repositories cannot be made public
  • Example: https://code.usgs.gov/{user}/{project}.git

Preliminary / Provisional Software Release

This source code can exist in any public USGS GitLab project. Code migrated from a pre-release development software project must receive an administrative security review and Center Director approval prior to migration. Refer to Review for more information on types of reviews.

  • Public
  • Public visibility is not available by default. Requests to make repositories publicly available should be sent to GS Help Git (gs_help_git@usgs.gov).
  • Example: https://code.usgs.gov/{groupname}/{project}.git.

Official Software Release

The official (authoritative) release of source code must exist on USGS OpenSource GitLab. These repositories are marked by Git repository tags indicating that the repository has gone through the required reviews and received approval for release as an official USGS Software Release product. Refer to Review for more information on types of reviews.

  • Public
  • Public visibility is not available by default. Requests to make repositories publicly available should be sent to GS Help Git (gs_help_git@usgs.gov).
  • Example: https://code.usgs.gov/{groupname}/{project}.git.

Start Developing

While actively developing a project, you should follow an "Integration Manager Workflow." Using this technique works especially well when collaboratively developing a project and it works for individual developers as well. This technique encourages using pull requests to integrate code changes. Pull requests facilitate team review and change history tracking as you actively develop software. Recommended references:

Continuous Integration (CI) refers to advanced individual or team methods for integration management. When collaboratively developing a project, each member pulls from and pushes to a remote repository. During this time, not only can the existing code base change, but new code can be added as well as new libraries, and other resources that create dependencies and potential conflicts in the main line (or master branch) of code in the repository. CI ensures when developers submit code to the repository they must first update their code (i.e. rebase it) to reflect the new changes in the repository since they checked out their copy before integration into the main line of code can occur.The GitLab Runner feature is a popular USGS option to implement CI.

Develop Software | U.S. Geological Survey (2024)

References

Top Articles
Jessica Meir und Christina Koch: Kleine Schritte für Astronautinnen, aber ein großer für alle Frauen
Astronaut Jessica Meir reflects on jolting return to Earth
Academic Calendar Pbsc
Black Adam Showtimes Near Maya Cinemas Delano
Guidelines & Tips for Using the Message Board
Parc Soleil Drowning
Palmbeachschools Jobs
Best Jewelry Laser Engraving Machine to Elevate Your Design
Sunshine999
Uwa Schedule
Lake Charles, LA Houses and Single Family Homes For Rent | realtor.com®
John W Creasy Died December 16 2003
โลโก้โภชนาการที่ดีที่สุด: สัญลักษณ์แห่งความเป็นเลิศ
Bingo Kans Berekenen
Rick Harrison Daughter Ciana
Hyb Urban Dictionary
Bonduel Amish Auction 2023
Sm64Ex Coop Mods
Metv Schedule Now
Pole Barns 101: Everything You Need to Know - Big Buildings Direct
Female Same Size Vore Thread
Emerge Ortho Kronos
A vintage funfair / fairground
Seanna: meaning, origin, and significance explained
Jesus Revolution (2023)
Craiglist Galveston
Reasonabiu
A 100% Honest Review of M. Gemi Shoes — The Laurie Loo
Freehold Township Patch
Reely Hooked Fish Dip Amazon
Https Eresponse Tarrantcounty Com
Tighe Hamilton Hudson Ma Obituary
12000 Divided By 40
Hospice Thrift Store St Pete
7066642123
Keyn Car Shows
Saw X Showtimes Near Regal Ronkonkoma
Rolla Mo Craigslist
Stark Cjis Court Docket
Inland Empire Heavy Equipment For Sale By Owner
Chars Boudoir
ARK Fjordur: Ultimate Resource Guide | Where to Find All Materials - Games Fuze
SP 800-153 Guidelines for Securing WLANs
158 Rosemont Ringoes Rd, East Amwell Twp, NJ, 08559 | MLS #3921765 | RocketHomes
Oriley Auto Parts Hours
Jefferey Dahmer Autopsy Photos
Ava Kayla And Scarlet - Mean Bitches Humiliate A Beta
Craigslist Pets Olympia
Veracross Login Bishop Lynch
On “Trophy,” Kate Davis Leaves the Conservatory Behind
Lakeridge Funeral Home Lubbock Texas Obituaries
General Format - Purdue OWL® - Purdue University
Latest Posts
Article information

Author: Pres. Lawanda Wiegand

Last Updated:

Views: 6404

Rating: 4 / 5 (51 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Pres. Lawanda Wiegand

Birthday: 1993-01-10

Address: Suite 391 6963 Ullrich Shore, Bellefort, WI 01350-7893

Phone: +6806610432415

Job: Dynamic Manufacturing Assistant

Hobby: amateur radio, Taekwondo, Wood carving, Parkour, Skateboarding, Running, Rafting

Introduction: My name is Pres. Lawanda Wiegand, I am a inquisitive, helpful, glamorous, cheerful, open, clever, innocent person who loves writing and wants to share my knowledge and understanding with you.