Best Practices

The UT-OSPO has developed a set of best practice documents to help researchers engage with and manage open source projects. Click one of the links below to jump down the page to information about the selected document or scroll down to browse.

 

Contact UT-OSPO

Email ospo@utlists.utexas.edu

Open Source Software and Research

Research that utilizes and contributes to open source projects encourages transparency and reproducibility, fosters collaboration, and accelerates innovation. When a project is open source, users and developers from diverse backgrounds can contribute to code, share knowledge, and collectively improve open source work.

Transparency and Reproducibility

Transparency and reproducibility are are fundamental tenets of high-quality research.

Open source projects promote transparency and reproducibility by allowing researchers to examine code, understand how algorithms work, and replicate experiments to validate findings.

Benefit from Community-driven Collaboration

Beyond reproducibility, researchers can benefit from community-driven collaboration that improves software through user contributed bug fixes, enhancements, and new features. A lack of reliance on proprietary licenses allows open source projects to operate across institutions and countries, meaning researchers are free from software-based restrictions with collaborators.

Accelerate innovation and adapt quickly

Users of open source software can build upon existing open source solutions to accelerate innovation and adapt quickly to emerging technologies in their research.

Open Source Software Licenses (pdf)

Choosing an open source software license is a crucial component of sharing your code. A license communicates your intent and expectations by establishing your authorship and stating how users and collaborators may utilize, modify, and redistribute your code.

It is important to understand how open software licenses differ from commercial software licenses

Where commercial licenses protect your intellectual property and control how others can use your software, open source licenses can set the stage for successful collaboration and improvement. They can also ensure that your code remains open and accessible

Broad categories of open source licenses

Permissive licenses

These grant users the freedom to utilize, modify, and distribute the software, including for commercial purposes.

Examples include: MIT License and BSD-3

Copyleft licenses

These require that any derivative works based on the original software also be released under an open source license, ensuring the software remains open and accessible.

Examples include: GNU General Public License (GPL) 3.0 and GNU Lesser General Public License (LGPL)
 

Contributing to an Open Source Environment (pdf)  


If you are interested in contributing to an open source community, there are numerous ways to get involved. Contributing to an open source project can range from minor contributions like improving documentation to significant contributions like adding new features. Beyond improving the software you work with and rely on, contributing to open source projects can foster collaboration and increase your expertise.

Get started learning Git and GitHub

GitHub is a platform for storing, tracking, and collaborating on software projects. It’s particularly popular in open source communities because it facilitates code sharing, collaboration, and community building.

Steps for becoming an open source contributor:

1. Identify a Way to Contribute: Are there open issues, feature requests, or areas of the code that could be improved?
2. Set up your development environment according to the project’s guidelines. This usually involves forking the project, cloning your fork locally, and setting up any necessary dependencies.
3. Make your changes in a new branch. Follow the project’s coding standards and guidelines.
4. Before submitting your changes, ensure they don’t break any existing functionality.
5. Once your changes are ready, commit them to your branch and push the branch to your fork. Then, submit a pull request to the original repository.
6. After you submit a pull request, the project maintainers will review your changes. Participate in the code review process by responding to comments and making any necessary changes.
7. If your changes are approved, they will be merged into the project.

Best Practices for Contributions:

• Understand Project Goals
• Implement full features rather than partial changes
• Include relevant tests and documentation
• Follow Project Rules and Adhere to project guidelines and coding standards
• Accept feedback gracefully

GitHub: Institutional versus Public (pdf)

GitHub is a web-based platform where researchers can share code, software, and data. A GitHub presence is scalable from sharing code and data with a select group to hosting a full-fledged open source ecosystem. 
UT Austin researchers have a choice about whether to utilize a UT Austin Institutional GitHub Account or a public GitHub account. Below is information that can guide you in deciding and taking advantage of the pros that each type of GitHub offers.

Institutional versus Public

Institutional GitHub

● Access Control: Institutional accounts allow administrators to manage repository access permissions. You can grant specific permissions to team members, collaborators, and students.
● Security: Institutional accounts provide enhanced security features like audit logs.
● Internal Research Projects: Institutional accounts can facilitate research projects involving internal collaborators.

Public GitHub

● Visibility: Public repositories are accessible to anyone, making your research more visible and impactful.
● Collaboration: Others can contribute to your projects, report issues, and suggest improvements.
● Educate: Use public repositories to showcase your research and widely share educational materials, tutorials, or sample code.

GitHub Best Practices

• Documentation: Maintain clear documentation for each repository, including README files, code comments, and issue tracking.
• Repository Naming Conventions: Follow consistent naming conventions for repositories to improve discoverability.
• Issue Tracking: Encourage users to report issues and contribute to discussions.
• Community Engagement: Engage with the GitHub community by participating in discussions and contributing to other projects.