Packages

Packages

Also Known as/Related

  • modules
  • package managers

Packages allow you to break up code into chunks that make it easier to understand what each piece is doing. How this works is up to the language, typically there will be a defined file/folder structure that is used to define packages.

Vendoring & remote packages

Vendoring is the name given to importing other people’s code to use in your projects. In some frameworks there will be dedicated folders for this (/vend, /vendor etc.). This can mean bringing in small pieces of code, or vendoring an entire application This can be used for things like:

If you are wondering if you’re allowed to vendor a project, check out our blog post here for a very basic rundown of some terms that might be useful.

Package managers

Sometimes managing packages can be a hassle. If you’re using multiple packages from different people you don’t wanna have to manually check if there are new versions individually, or download all of their packages you need manually. Package managers allow you to have a system to help manage your packages easily.

Language Package Managers

Language package managers are incorporated into a programming language and are used to let you install packages you can then use in the language. For example:

OS Package Managers

Some operating systems will ship with package managers (such as apt or pacman) that help to manage packages that keep the system up and running, and some will even ship with package managers that help manage applications you install. Most linux distributions ship with an easy to access package manager that lets you manage your applications all in one place. Windows and Mac OS don’t ship with this functionality, but you can get something close to it with chocolatey (for windows) and homebrew for Mac OS.

Application package managers

Some applications will allow users to install additional packages (mods in video games, extensions in spreadsheet apps etc.). These application level package managers will sometimes install entire new applications (game launchers), or just add small pieces of functionality (mod managers for a game).