A toolchain may refer to 1) a specific set of software development tools, or 2) a DevOps (development and operations) process used to test and deliver a software program.
1. Software Toolchain
A software toolchain is a collection of tools used for building and delivering an application. These tools are chained together to streamline the software production process. For example, the output generated by one tool in the chain is used as input by the next tool.
Developers may use a toolchain near the end of the development process. For example, a development team may build an app within an integrated development environment. Once the source code is complete, a toolchain may be used to generate the executable file. A software development toolchain may include the following components:
- Assembler - converts assembly language into machine code
- Linker - merges multiple files into a single program
- Compiler - generates executable code from a program's source code
- Library - a collection of code, such as an API, that allows the app to reference prebuilt functions or other resources
- Debugger - an optional tool that can help fix bugs during the final build steps
2. DevOps Toolchain
A DevOps toolchain is a list of steps that development and operations teams can follow when releasing a software program. It covers the entire development process, from planning a software application to the maintenance of a program after it has been released.
Steps in a DevOps toolchain may include:
- Plan - define the purpose, requirements, and expectations
- Create - design and build (program) the software
- Test - test the software internally on multiple devices; provide a public beta test
- Release - schedule and deploy the software
- Monitor - check software metrics, respond to user feedback, update software to fix bugs or add features