A binary repository manager is a software tool designed to help maintaining a store of binary files produced in software development, often storing metadata where it was built out of, and its dependencies. The repository manager helps to provide a central URL to download binary dependencies to developers and continuous builds. To make this download efficient for most binary formats a table of contents of all binary artifacts stored is provided to allow a client program to calculate the dependency graph without contacting the server. A notable exception is maven which does not have a table of contents.
Introduction
Software development can be a complex process[1][2] involving many developers, or teams of developers working on shared code bases, accessing the same build tools, downloading and using a shared set of binary resources, and deploying components into the same software product. To manage the source files used in software development, organizations will typically use revision control. The many source files used in software development are eventually built into the binary artifacts (also known as “binaries”) which constitute the components of a software product. In addition, in order to provide their functionality and feature set, software products may use many 3rd party artifacts downloaded from free open source repositories or purchased from commercial sources.[3] Consequently, a software product may comprise tens, hundreds and even thousands of individual binary artifacts which must be managed in order to efficiently maintain a coherent and functional software product. This function of managing the binary artifacts is done by a binary repository manager. A binary repository manager can be thought of as being to binaries what revision control is to source files.
Universal package manager
Package managers aim to standardize the way enterprises treat all package types used in the software development process. They give users the ability to apply security and compliance metrics across all artifact types. Universal package managers have been referred to as being at the center of a DevOps toolchain.[4]
Notable package managers include:[5]
- Apache Archiva
- Azure Artifacts
- CloudRepo
- Cloudsmith
- Github Package Registry [6]
- Inedo ProGet
- JFrog Artifactory
- MyGet
- Packagecloud[7]
- Sonatype Nexus
References
- ^ Biggert, Johnny. "SUSTAINABLE SOFTWARE DEVELOPMENT, PART 2: MANAGING COMPLEXITY". Developers Dilemma. Johnny Biggert. Retrieved 11 January 2015.
- ^ "Managing Complexity". The Economist. The Economist. Retrieved 11 January 2015.
- ^ "Eighth Annual Future of Open Source Survey Finds OSS Powering New Technologies, Reaching New People, and Creating New Economics". blackducksoftware.com. Archived from the original on 25 February 2015. Retrieved 25 February 2015.
- ^ Decoster, Xavier (18 August 2013). "An Overview of the NuGet Ecosystem". CodeProject.com.
- ^ hanselman, scott (13 April 2015). "How to host your own NuGet Server and Package Feed". Hanselman.com.
- ^ https://github.blog/2019-05-10-introducing-github-package-registry/
- ^ canals, armando (31 March 2018). "Publishing npm Packages Using CircleCI 2.0 - CircleCI". circleci.com.