Glossary
API Documentation
API documentation is a technical document that explains how to use and work with an API. This manual contains all the information required to work with the API including details on how to make requests, what data formats are supported, and what response codes are returned.
Examples of API documentation include Swagger, RAML, and API Blueprint.
Backlog
A backlog is a list of tasks that need to be completed within a project. Typically, these are tasks that are not yet assigned to a developer and are waiting to be worked on. Sometimes, these could be tasks that were open weeks or months ago and are still waiting to be worked on.
Code Freeze
A code freeze is a period of time where no new code is added to a project. It is often used to prepare for a release and ensure that the code is stable and ready for production.
Code Review
A code review is when a maintainer or contributor will review the work of another contributor. This is a great way to ensure that the code is high quality and meets the standards of the project.
Containerization
Containerization is a way of packaging and running applications. Instead of installing an app directly on your computer, you put it in a container that includes everything it needs to work. This container can then run on your computer alongside other containers. It's a way to organize and run multiple applications on the same machine, making it easier for developers to manage and scale their applications.
Examples of containerization tools include Docker and Kubernetes.
Continuous Integration (CI)
Continuous integration (CI) is a development approach in which developers regularly merge code into a shared repository. For each change, an automated build and test process is run to detect errors as quickly as possible.
Examples of CI tools include Jenkins, CircleCI, and TravisCI.
Continuous Deployment (CD)
Continuous deployment (CD) is often associated with continuous integration (CI) and refers to keeping your application deployable at any point or even automatically releasing to production. CD means that every change which passes the automated tests is deployed to production automatically.
Contributor
A contributor is someone who contributes to a project by adding code, documentation, tests, or other resources.
DevOps
DevOps is a mix between software development and IT operations. Examples of DevOps work would include automating the deployment of software, monitoring the performance of deployed software, and managing the infrastructure that the software runs on.
Discord
Discord is a voice, video, and text communication service. It is a great way to communicate with your team and keep everyone up to date on what is happening in your project.
You can also create a Discord community to connect with your contributors and have multiple channels for different topics related to the project.
Docker
Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package.
Git Hooks
Git hooks are scripts that run automatically every time a particular event occurs in a Git repository.
Here are some common Git hooks:
pre-commit
- Run before a commit is createdpre-push
- Run before a push is executedpost-commit
- Run after a commit is createdpost-merge
- Run after a merge is executed
GitHub Actions
GitHub Actions are a way to automate tasks within your software development life cycle. GitHub Actions are event-driven, meaning that you can run a series of commands after a specified event has occurred.
Examples of GitHub Actions include running tests, deploying to production, and sending notifications.
GitHub Discussions
GitHub Discussions are a way to have conversations about your project directly in GitHub. They are a great way to discuss ideas, ask questions, and share knowledge with your community.
Issue Template
An issue template is a file that contains a description of the issue you are creating. It is a great way to provide context to your issues and help developers understand what issues you are creating and why.
Examples of issue templates include bug reports, feature requests, and documentation updates.
Issue Tracker
An issue tracker is a software application used to track issues and bugs within a project. It is often used in conjunction with a version control system and is a great way to keep track of bugs, enhancements, and tasks for your projects.
GitHub has a built-in issue tracker but you can also use other tools such as Jira, Trello, and Asana.
Linting
Linting is the process of running a program that will analyze code for potential errors. A popular linting tool used frequently is ESLint. You can setup an action to run ESlint against each pull request that comes in to check for potential errors before it makes it into production.
Milestones
Milestones are groups of issues that correspond to a project, feature, or time period. You can use milestones to track the progress of groups of issues that are tied to a larger goal.
Prettier Code Formatting
Prettier is an opinionated code formatter that enforces a consistent style for your codebase. You can customize your Prettier configuration to fit your project's needs and customize how you prefer semicolons, single quotes, trailing commas, and more to be formatted.
Pull Request (PR) Template
A pull request template is a file that contains a description of the changes you are making to a project. It is a great way to provide context to your pull requests and help reviewers understand what changes you are making and why.
You can also create an action to respond to pull requests that don't follow your pull request template and urge the contributor to update their pull request.
Release Candidate
A release candidate is a beta version of software with the potential to be a final product. It is typically the last version before the final release.
Slack
Slack is a cloud-based set of team collaboration tools and services. It is a great way to communicate with your team and keep everyone up to date on what is happening in your project.
Scrum
Scrum is an agile framework for brainstorming, developing, and delivering products.
Technical Debt
Technical debt is a when a codebase has increased maintenance costs because of earlier decisions made during development.
Versioning
Versioning is the process of assigning either unique version names or numbers to new releases of your project. Some versions are released as "major" versions, while others are released as "minor" versions.