CSE 403 Topic: Build Systems & Version Control

A build system is a tool for resolving dependencies and compiling, testing, and deploying code. The most important advantage of build systems, historically, is that they automate the process for building and deploying software. A project using a modern build system well will have few or no manual steps required from its engineers to produce a binary artifact, test it, and then deploy it into production.

Version control system (VCS) is a system that records changes to a file or set of files over time so that you can recall specific versions later. Besides using VCS as a stand-alone tool, programmers might interact with it through a code-review system like Gitlab or Gerrit as well.

Some examples of modern, open-source build systems:

Some examples of modern, open-source VCS:

Interesting resources:

Project ideas: