UPDATE (2/1/16) : Package management is now available in Europe and Australia! Install from the VS Marketplace here.
UPDATE (11/21/15) : The package management extension for Visual Studio Team Services is now available in the new Visual Studio Marketplace here. It’s only supported in the us-region right now
Today, I’m happy to announce the new package management service that is coming to Visual Studio Online and Team Foundation Server. The package management service will enable you to manage, store, secure, and share your binary components easily within an organization.
Many software projects today rely on packages (i.e. NuGet, npm, or CocoaPods) to successfully build. Others rely on packages as an output of the build or release process to share components across teams or make available as an open source component. It isn’t easy to manage all of those assets, and it isn’t any different here at Microsoft. We want to make it easier for software development and devops teams to manage continuous delivery and enable sharing and reuse of code.
Our package management service aims to provide:
- Private hosted packages for your organization. NuGet is the first supported package type, but the service is built to support any programming language or platform, and can contain artifacts from your own build server, NuGet.org, npmjs.com, GitHub, and more.
- Consistent access to components needed by your build
- Enterprise authentication to manage permissions on who is allowed access to those components
- Seamless integration with build and release management tools
- A friction-free way to bring in an open source component to your enterprise
- Discovery and search of packages across an enterprise
Here’s a quick preview of the experience:
Feeds are at the core of our package management experience. They provide a container for a collection of packages, and can contain multiple package types. I’m using the term package fairly loosely here – our vision is that we enable easy consumption of any artifact like NuGet, Docker, or even build drops that are needed in a software development lifecycle. Feeds are where we manage permissions and access.
For example, a team can have a private externals feed that contains all the external packages required by their CI build, a beta feed, and a release feed which can be shared with partner teams to enable them to consume the team’s work. It’s easy to change permissions on a feed.
Enterprise security and authentication
We provide an enterprise-grade authentication solution to determine access to feeds. Read and write access to feeds is controlled by the VSO security model including VSO users/groups and project collections. Our first supported package protocol is NuGet, and we’ve partnered with the NuGet team to enhance the NuGet client to enable VSO/AAD authentication for individuals, service accounts, and AAD/VSO groups.
Integration with build and release management
The package management service is integrated with VSO; it’s easy to create build tasks to publish to a VSO feed or manage through release management. If you’re not currently using VSO for build or code repositories, we believe in an open platform, and will support integration with your favorite build tool. Our package management service itself is built as an extension.
NuGet is our first supported package type for the upcoming public preview, but the service itself is designed to be extensible. We’ll be adding support for protocols and ecosystems like NPM and Bower, Ivy and Maven, .zip, CocoaPods, and so on.
We expect to enable the new NuGet package management features as a public preview for your Visual Studio Online accounts in Q4 of 2015.
Feel free to offer thoughts and suggestions into the comments of this post. You can also reach me on twitter – @karenkayliu.