This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "Codebase" – news ·newspapers ·books ·scholar ·JSTOR(October 2014) (Learn how and when to remove this message) |
Acodebase (orcode base) is a collection ofsource code that is maintained as a unit. Typically, it is used to build one or more software components including applications andlibraries.
A codebase is often stored in asource control repository of aversion control system. A repository can contain build-generated files (which are therefore not source code), but typically such files are excluded from a repository, and therefore the codebase. A repository may contain data files (such as configuration) that are required for building or running the resulting software. But version control is not a required aspect of a codebase. Even theLinux kernel was maintained without version control for many years.[1]
When developing multiple components, a choice is made either to maintain a separate, distinct codebase for each, or to combine codebases, possibly in a single, monolithic codebase. With a monolithic codebase, changes to (i.e.refactoring) multiple components can often be easier and robust. But this requires a larger repository, and makes it easier to introduce wide-rangingtechnical debt.[dubious –discuss] With separate codebases, each repository is smaller and more manageable. The structure enforces logical separation between components, but can require more build and runtime integration between codebases, and complicates changes that span multiple components.[2][3][4]
Some notably large codebases include: