This document contains a presentation on NuGet packaging best practices and anti-patterns. The presentation discusses 9 NuGet packaging patterns and anti-patterns: 1) Using package restore, 2) Following semantic versioning, 3) Avoiding 3-dot versioning, 4) Maintaining a smooth upgrade path, 5) Splitting package repositories by audience, 6) Not deleting packages after publishing, 7) Having a fallback repository, 8) Looking for binding redirects, and 9) Ensuring uninstall leaves no traces. The presentation was given by Xavier Decoster and provides guidance on developing high-quality NuGet packages.
Organize your chickens - NuGet for the EnterpriseXavier Decoster
Managing software dependencies, whether those created in-house or from third parties can be a pain in the behind. Whether dependencies feel like wild chickens or people run around like chickens dealing with dependencies, the NuGet package manager can be a cure. Let me guide you to creating enterprise (chicken) NuGets and dealing with them in a structured, easy-to-maintain manner. From developer workstation to build server, NuGet tastes great! This session will provide you the dip sauce.
Organize your Chickens - NuGet for the Enterprise (UGIALTNET)Xavier Decoster
Managing software dependencies, whether those created in-house or from third parties can be a pain in the behind. Whether dependencies feel like wild chickens or people run around like chickens dealing with dependencies, the NuGet package manager can be a cure. Let me guide you to creating enterprise (chicken) NuGets and dealing with them in a structured, easy-to-maintain manner. From developer workstation to build server, NuGet tastes great! This session will provide you the dip sauce.
Jono Bacon - Crossing the Chasm TogetherPaula Hunter
The document discusses strategies for growing and leading an open source community. It emphasizes challenging assumptions about positioning projects as products, exploring new audiences, and providing on-ramps for contributors. It also stresses the importance of transparency, user experiences, design quality, and avoiding contradictions that damage community trust and motivation.
This document provides an overview of OuterConf2013, including key statistics about the organization's projects, contributors, and downloads. It introduces Paula Hunter as the executive director and lists members of the leadership team. It also previews several initiatives planned for the future such as automated code signing and a governance initiative.
Scott Guthrie Presents at OuterConf2013Paula Hunter
Windows Azure is a cloud computing platform and infrastructure service created by Microsoft for building, deploying, and managing applications and services through a global network of Microsoft-managed data centers. The platform supports many popular programming languages, databases, operating systems, and development tools including ASP.NET, Node.js, Python, Java, MySQL, SQL Server, and more. Windows Azure allows developers to focus on writing code without having to manage infrastructure.
A Framework for Open Source Software SuccessPaula Hunter
The document discusses patterns for successful open source projects. It outlines steps projects can take to increase their user base by making software easy to install and use, encourage developers by automating building and testing, and make contributing easy by communicating guidelines to the community. Following these patterns helps projects mature from having only code to including additional ecosystem components like books, products, distributions and services to support users. The document is a work in progress that will be developed as an open source project on GitHub.
Organize your chickens - NuGet for the EnterpriseXavier Decoster
Managing software dependencies, whether those created in-house or from third parties can be a pain in the behind. Whether dependencies feel like wild chickens or people run around like chickens dealing with dependencies, the NuGet package manager can be a cure. Let me guide you to creating enterprise (chicken) NuGets and dealing with them in a structured, easy-to-maintain manner. From developer workstation to build server, NuGet tastes great! This session will provide you the dip sauce.
Organize your Chickens - NuGet for the Enterprise (UGIALTNET)Xavier Decoster
Managing software dependencies, whether those created in-house or from third parties can be a pain in the behind. Whether dependencies feel like wild chickens or people run around like chickens dealing with dependencies, the NuGet package manager can be a cure. Let me guide you to creating enterprise (chicken) NuGets and dealing with them in a structured, easy-to-maintain manner. From developer workstation to build server, NuGet tastes great! This session will provide you the dip sauce.
Jono Bacon - Crossing the Chasm TogetherPaula Hunter
The document discusses strategies for growing and leading an open source community. It emphasizes challenging assumptions about positioning projects as products, exploring new audiences, and providing on-ramps for contributors. It also stresses the importance of transparency, user experiences, design quality, and avoiding contradictions that damage community trust and motivation.
This document provides an overview of OuterConf2013, including key statistics about the organization's projects, contributors, and downloads. It introduces Paula Hunter as the executive director and lists members of the leadership team. It also previews several initiatives planned for the future such as automated code signing and a governance initiative.
Scott Guthrie Presents at OuterConf2013Paula Hunter
Windows Azure is a cloud computing platform and infrastructure service created by Microsoft for building, deploying, and managing applications and services through a global network of Microsoft-managed data centers. The platform supports many popular programming languages, databases, operating systems, and development tools including ASP.NET, Node.js, Python, Java, MySQL, SQL Server, and more. Windows Azure allows developers to focus on writing code without having to manage infrastructure.
A Framework for Open Source Software SuccessPaula Hunter
The document discusses patterns for successful open source projects. It outlines steps projects can take to increase their user base by making software easy to install and use, encourage developers by automating building and testing, and make contributing easy by communicating guidelines to the community. Following these patterns helps projects mature from having only code to including additional ecosystem components like books, products, distributions and services to support users. The document is a work in progress that will be developed as an open source project on GitHub.
NuGet (anti-)patterns - Tales from the TrenchesXavier Decoster
Xavier Decoster discusses NuGet package versioning, repositories, and lessons learned. He covers semantic versioning, maintaining a smooth upgrade path, splitting package repositories, not deleting packages once published, and having fallback repositories. Decoster also discusses binding redirects, sample packages, uninstalling packages completely, and package promotion between repositories.
Organize your chickens: NuGet for the enterpriseMaarten Balliauw
Managing software dependencies, whether those created in-house or from third parties can be a pain in the behind. Whether dependencies feel like wild chickens or people run around like chickens dealing with dependencies, the NuGet package manager can be a cure. Let us guide you to creating enterprise (chicken) NuGets and dealing with them in a structured, easy-to-maintain manner. From developer workstation to build server, NuGet tastes great! We'll provide you the dip sauce.
SDC Sweden - Organize your chickens - NuGet for the EnterpriseMaarten Balliauw
The document summarizes a presentation about using NuGet for package management. It discusses organizing dependencies by hosting your own NuGet repository. It promotes continuous package integration by checking packages into source control instead of referenced assemblies. It also describes how NuGet can be used as a protocol for more than just developer packages, such as for application installation and deployment automation. The presentation provides demos of these NuGet scenarios.
This document provides an overview of the NuGet ecosystem. It begins with an introduction to NuGet and the problems it solves for sharing third-party libraries and internal code. It then discusses new problems that arose with NuGet around versioning, single repository, and overconsumption. Solutions to these problems included enforcing semantic versioning, recommendation engines, hosting private feeds, and tools like MyGet. The document concludes by describing the large NuGet ecosystem of tools and services that have been built up around NuGet.
20111010 agile minds - organize your chickens - nuget for the enterpriseXavier Decoster
This document discusses using NuGet for package management in enterprises. It covers hosting your own NuGet repository, using continuous integration with NuGet, and some advanced usage scenarios like scaffolding and extending NuGet. The presentation encourages organizing packages and package sources for quality control and access restrictions. It warns against automatically updating packages during builds.
This document provides an overview of unlocked packages in Salesforce, including what they are, their benefits compared to other package types, and how to use them. It explains that unlocked packages allow adding, editing, and removing metadata in a trackable way and are well-suited for internal business apps. The document also demonstrates how to create an unlocked package, create versions, install packages, promote releases, and manage package dependencies.
Visug - organize your chickens - nuget for the enterpriseXavier Decoster
This document discusses how to use NuGet to manage software dependencies and packages. It recommends hosting your own NuGet repository to avoid issues with public feeds. Continuous package integration is introduced as a way to replace project dependencies with NuGet packages in source control. While NuGet was designed as a package manager, the document explores how its protocol can also be used for other purposes like application deployment and plugins.
Organize your chickens: NuGet for the enterpriseMaarten Balliauw
Managing software dependencies, whether those created in-house or from third parties can be a pain in the behind. Whether dependencies feel like wild chickens or people run around like chickens dealing with dependencies, the NuGet package manager can be a cure. Let us guide you to creating enterprise (chicken) NuGets and dealing with them in a structured, easy-to-maintain manner. From developer workstation to build server, NuGet tastes great! We'll provide you the dip sauce.
Building web applications?
Thinking about auto-updater?
Need to document your releases?
Then look at this presentation.
You'll likely discover another point of view on these questions.
This document discusses hosting your own NuGet package feeds. It provides an overview of the NuGet ecosystem and package manager. It then describes how to create local NuGet feeds by copying packages to a local folder and configuring that folder as a package source. It also explains how to create remote NuGet feeds by setting up an empty web application in Visual Studio, installing the NuGet.Server package, configuring the packages folder and API key, adding packages, and deploying the feed.
Mvc dev rocks 00 apr 26, 2014 - creating and using nu get in your own house...Suthep Sangvirotjanaphat
This document discusses NuGet, an open source package management system for .NET. It provides an overview of creating and publishing NuGet packages, including defining a package version using Semantic Versioning, hosting packages locally for internal use, and recommended tools and resources for working with NuGet packages. Key commands for the NuGet CLI tool are also listed.
NuGet Packages Presentation (DoT NeT).pptxKnoldus Inc.
These packages and topics cover various aspects of .NET development, offering solutions for common needs in software development, including logging, database interaction, API communication, testing, security, and more. Depending on the requirements of your project, incorporating these packages can significantly enhance the development process.
Nuget is easier than you think and you should be using it as both a consumer ...Justin James
Nuget is a package manager for Visual Studio that allows you to easily share assets (dll, javascript, c#, etc files) and use them in your project. Most Visual Studio developers have consumer nuget packages but few have created and shared nuget packages. It is amazingly easy to create and publish a nuget package. In less than 60 minutes I will show you how move from a consumer to a creator. You will learn how to package up dll's, source code that needs to be inserted in a project, add/change configurations, publish a package and host your own nuget feed.
The document discusses the OpenDaylight SDN controller. It provides an overview of OpenDaylight, describing it as an open-source project that promotes Software Defined Networking using technologies like Eclipse, Maven, and OSGi. The document also covers basic hands-on steps for installing and using the OpenDaylight controller, including setting up the environment, writing controller code, using Mininet and the controller's web UI.
Full stack development best practice and toolsetReid Lai
The document discusses full stack development best practices and toolsets. It defines a full stack developer as someone proficient in both front-end and back-end development. It also discusses how full stack developers fit into scrum teams, the relationship between agile development and DevOps practices like continuous integration, delivery and deployment. Finally, it covers using containers and Docker for DevOps and orchestrating required application services.
The document discusses advanced deployment strategies including canary releases, deployment rings, and dark launching. It defines canary releases as deploying a new version to a subset of infrastructure initially without routing live traffic to it. Benefits include reducing risk and allowing capacity testing in production. The document reviews how to implement canary releases by routing a percentage of users to the new version while monitoring for issues before routing all users. It also discusses using deployment rings to gradually rollout changes and limit impact, as well as dark launching where new code is executed silently before a full launch.
Using NuGet the way you should
Consuming NuGet packages, that’s what everyone does. Open source projects create NuGet packages and post them on NuGet.org. Meanwhile, all of us are still working with shared projects and fighting relative paths, versioning and so on. In this talk, we’ll use Visual Studio, NuGet and TeamCity to work with NuGet the way you should. Project references must die! Add Package Reference and good continuous integration is everything you will ever need.
This document provides an introduction and overview of setting up Cassandra for Java developers. It includes an agenda that covers introduction, setup, hands-on experience, and references. Under setup, it describes downloading and installing Cassandra, configuring the cassandra.yaml file, and setting environment variables. For hands-on experience, it discusses defining the data model using Kundera or DataStax drivers, setting up tools like CQLSH and DevCenter, modeling data, and keeping use cases and performance in mind. References with additional resources are also provided.
This document provides information about developing and deploying Magento applications on Magento Cloud. It describes the development workflow including working in local, integration, and branch environments. It also outlines the build, deploy, and post-deploy phases of the deployment process. Additionally, it covers static content deployment, configuration files, patches and hotfixes, Fastly configuration, and potential improvements to Magento Cloud.
More Related Content
Similar to NuGet (Anti-)Patterns - Tales from the Trenches
NuGet (anti-)patterns - Tales from the TrenchesXavier Decoster
Xavier Decoster discusses NuGet package versioning, repositories, and lessons learned. He covers semantic versioning, maintaining a smooth upgrade path, splitting package repositories, not deleting packages once published, and having fallback repositories. Decoster also discusses binding redirects, sample packages, uninstalling packages completely, and package promotion between repositories.
Organize your chickens: NuGet for the enterpriseMaarten Balliauw
Managing software dependencies, whether those created in-house or from third parties can be a pain in the behind. Whether dependencies feel like wild chickens or people run around like chickens dealing with dependencies, the NuGet package manager can be a cure. Let us guide you to creating enterprise (chicken) NuGets and dealing with them in a structured, easy-to-maintain manner. From developer workstation to build server, NuGet tastes great! We'll provide you the dip sauce.
SDC Sweden - Organize your chickens - NuGet for the EnterpriseMaarten Balliauw
The document summarizes a presentation about using NuGet for package management. It discusses organizing dependencies by hosting your own NuGet repository. It promotes continuous package integration by checking packages into source control instead of referenced assemblies. It also describes how NuGet can be used as a protocol for more than just developer packages, such as for application installation and deployment automation. The presentation provides demos of these NuGet scenarios.
This document provides an overview of the NuGet ecosystem. It begins with an introduction to NuGet and the problems it solves for sharing third-party libraries and internal code. It then discusses new problems that arose with NuGet around versioning, single repository, and overconsumption. Solutions to these problems included enforcing semantic versioning, recommendation engines, hosting private feeds, and tools like MyGet. The document concludes by describing the large NuGet ecosystem of tools and services that have been built up around NuGet.
20111010 agile minds - organize your chickens - nuget for the enterpriseXavier Decoster
This document discusses using NuGet for package management in enterprises. It covers hosting your own NuGet repository, using continuous integration with NuGet, and some advanced usage scenarios like scaffolding and extending NuGet. The presentation encourages organizing packages and package sources for quality control and access restrictions. It warns against automatically updating packages during builds.
This document provides an overview of unlocked packages in Salesforce, including what they are, their benefits compared to other package types, and how to use them. It explains that unlocked packages allow adding, editing, and removing metadata in a trackable way and are well-suited for internal business apps. The document also demonstrates how to create an unlocked package, create versions, install packages, promote releases, and manage package dependencies.
Visug - organize your chickens - nuget for the enterpriseXavier Decoster
This document discusses how to use NuGet to manage software dependencies and packages. It recommends hosting your own NuGet repository to avoid issues with public feeds. Continuous package integration is introduced as a way to replace project dependencies with NuGet packages in source control. While NuGet was designed as a package manager, the document explores how its protocol can also be used for other purposes like application deployment and plugins.
Organize your chickens: NuGet for the enterpriseMaarten Balliauw
Managing software dependencies, whether those created in-house or from third parties can be a pain in the behind. Whether dependencies feel like wild chickens or people run around like chickens dealing with dependencies, the NuGet package manager can be a cure. Let us guide you to creating enterprise (chicken) NuGets and dealing with them in a structured, easy-to-maintain manner. From developer workstation to build server, NuGet tastes great! We'll provide you the dip sauce.
Building web applications?
Thinking about auto-updater?
Need to document your releases?
Then look at this presentation.
You'll likely discover another point of view on these questions.
This document discusses hosting your own NuGet package feeds. It provides an overview of the NuGet ecosystem and package manager. It then describes how to create local NuGet feeds by copying packages to a local folder and configuring that folder as a package source. It also explains how to create remote NuGet feeds by setting up an empty web application in Visual Studio, installing the NuGet.Server package, configuring the packages folder and API key, adding packages, and deploying the feed.
Mvc dev rocks 00 apr 26, 2014 - creating and using nu get in your own house...Suthep Sangvirotjanaphat
This document discusses NuGet, an open source package management system for .NET. It provides an overview of creating and publishing NuGet packages, including defining a package version using Semantic Versioning, hosting packages locally for internal use, and recommended tools and resources for working with NuGet packages. Key commands for the NuGet CLI tool are also listed.
NuGet Packages Presentation (DoT NeT).pptxKnoldus Inc.
These packages and topics cover various aspects of .NET development, offering solutions for common needs in software development, including logging, database interaction, API communication, testing, security, and more. Depending on the requirements of your project, incorporating these packages can significantly enhance the development process.
Nuget is easier than you think and you should be using it as both a consumer ...Justin James
Nuget is a package manager for Visual Studio that allows you to easily share assets (dll, javascript, c#, etc files) and use them in your project. Most Visual Studio developers have consumer nuget packages but few have created and shared nuget packages. It is amazingly easy to create and publish a nuget package. In less than 60 minutes I will show you how move from a consumer to a creator. You will learn how to package up dll's, source code that needs to be inserted in a project, add/change configurations, publish a package and host your own nuget feed.
The document discusses the OpenDaylight SDN controller. It provides an overview of OpenDaylight, describing it as an open-source project that promotes Software Defined Networking using technologies like Eclipse, Maven, and OSGi. The document also covers basic hands-on steps for installing and using the OpenDaylight controller, including setting up the environment, writing controller code, using Mininet and the controller's web UI.
Full stack development best practice and toolsetReid Lai
The document discusses full stack development best practices and toolsets. It defines a full stack developer as someone proficient in both front-end and back-end development. It also discusses how full stack developers fit into scrum teams, the relationship between agile development and DevOps practices like continuous integration, delivery and deployment. Finally, it covers using containers and Docker for DevOps and orchestrating required application services.
The document discusses advanced deployment strategies including canary releases, deployment rings, and dark launching. It defines canary releases as deploying a new version to a subset of infrastructure initially without routing live traffic to it. Benefits include reducing risk and allowing capacity testing in production. The document reviews how to implement canary releases by routing a percentage of users to the new version while monitoring for issues before routing all users. It also discusses using deployment rings to gradually rollout changes and limit impact, as well as dark launching where new code is executed silently before a full launch.
Using NuGet the way you should
Consuming NuGet packages, that’s what everyone does. Open source projects create NuGet packages and post them on NuGet.org. Meanwhile, all of us are still working with shared projects and fighting relative paths, versioning and so on. In this talk, we’ll use Visual Studio, NuGet and TeamCity to work with NuGet the way you should. Project references must die! Add Package Reference and good continuous integration is everything you will ever need.
This document provides an introduction and overview of setting up Cassandra for Java developers. It includes an agenda that covers introduction, setup, hands-on experience, and references. Under setup, it describes downloading and installing Cassandra, configuring the cassandra.yaml file, and setting environment variables. For hands-on experience, it discusses defining the data model using Kundera or DataStax drivers, setting up tools like CQLSH and DevCenter, modeling data, and keeping use cases and performance in mind. References with additional resources are also provided.
This document provides information about developing and deploying Magento applications on Magento Cloud. It describes the development workflow including working in local, integration, and branch environments. It also outlines the build, deploy, and post-deploy phases of the deployment process. Additionally, it covers static content deployment, configuration files, patches and hotfixes, Fastly configuration, and potential improvements to Magento Cloud.
Similar to NuGet (Anti-)Patterns - Tales from the Trenches (20)
Meet Magento Spain 2019 - Our Experience with Magento Cloud
NuGet (Anti-)Patterns - Tales from the Trenches
1. www.realdolmen.com
NUGET (ANTI-)PATTERNS:
TALES FROM THE TRENCHES
JANUARY 16, 2013 | SLIDE 1
2. WHO AM I?
Xavier Decoster
Antwerp, Belgium
Technical Consultant, RealDolmen
Co-founder of MyGet.org
Microsoft Extended Experts Team
Author of Apress Pro NuGet
http://www.xavierdecoster.com
@xavierdecoster
JANUARY 16, 2013 | SLIDE 2
5. #0 – USE PACKAGE RESTORE
A source repository is for … sources
What’s a package repository for?
Impact of package restore
No more duplication of same binaries
Less merge conflicts (no binary diff)
Maintain overview of consumed packages in single place
Less network I/O (NuGet cache)
Contra-argument: single point of failure
Good remark: now deal with it!
Disconnected from package source(s)?
JANUARY 16, 2013 | SLIDE 5
6. #1 – USE SEMANTIC VERSIONING
Major Breaking changes
Minor Backwards compatible API additions/changes
Patch Bugfixes not affecting the API
PreRelease Tag Alpha, Beta, …, RC1, RC2, …
Build Build stamp, metadata, …
NuGet versioning algorithm differs from SemVer
SemVer NuGet
v x SemVer Versioning Scheme major.minor.patch[-prerelease][+build]
v v NuGet pre-release package major.minor.patch-prerelease
v v NuGet release package major.minor.patch
x v Legacy Versioning Scheme major.minor.build.revision
JANUARY 16, 2013 | SLIDE 6
7. #2 – DON’T USE 3-DOTS VERSIONING
Even though NuGet supports it
Not supported in SemVer
Not supported in combination with pre-release tag
Instead use 2-Dots SemVer notation
Optionally with pre-release tag
JANUARY 16, 2013 | SLIDE 7
8. #3 – MAINTAIN A SMOOTH UPGRADE PATH
Don’t change Package ID along the way!
Your packages will get stuck
So will your consumers
JANUARY 16, 2013 | SLIDE 8
9. #3 – MAINTAIN A SMOOTH UPGRADE PATH
MyGet.Core MyGet.Core
…
1.0.1-alpha00001 1.0.1-alpha00256
MyGet.Core
1.0.1-alpha
MyGet.Core
1.0.1
Version Precedence
1.0.1-alpha00001 < 1.0.1-alpha00256 < 1.0.1-alpha < 1.0.1
Question: Where does 1.0.1-alpha2 fit?
Don’t change Package ID along the way!
JANUARY 16, 2013 | SLIDE 9
10. #4 – SPLIT PACKAGE REPOSITORIES BY AUDIENCE
MyGet.Core MyGet.Core
…
1.0.1-alpha00001 1.0.1-alpha00256
MyGet.Core
1.0.1-alpha
MyGet.Core
1.0.1
Don’t pollute consumers’ repository with your internal
DEV builds
MyGet.org is great at this: set up as many feeds as you want and
promote packages from one to another (including nuget.org!)
JANUARY 16, 2013 | SLIDE 10
11. #5 – ONCE PUBLISHED, DON’T DELETE PACKAGES
Unlist packages instead!
Maintains upgrade path
Still available through package restore
Supported by NuGet.org and MyGet.org
Using own NuGet server or file share?
Remove user permissions to delete!
Deleting
Breaks package restore!
Forces consumers to upgrade!
“Attempting to force a user to do something is both an exercise in futility and a
great way to guarantee that you have less users overall”
- Rob Reynolds
JANUARY 16, 2013 | SLIDE 11
12. #6 – HAVE A FALLBACK REPOSITORY
Backup consumed packages
Mirror them on MyGet.org
Download them
Especially when using Package Restore
From NuGet.org
From any external feed
Each consumer has local cache
%LocalAppData%NuGetCache
JANUARY 16, 2013 | SLIDE 12
13. #7 – LOOK FOR BINDING REDIRECTS
Mitigates potential risk for conflicts
During assembly resolution
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="myAssembly" publicKeyToken="32ab4ba45e0a69a1"
culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Investigate why
Package versions not aligned?
Package upgrades & version alignment can reduce the
number of binding redirects
JANUARY 16, 2013 | SLIDE 13
14. #8 – USE SAMPLE PACKAGE OR README.TXT
Don’t pollute your actual packages
Provide a readme.txt
If you can’t automate the manual instructions
If you want to have your consumers read some specific info
Automatically presented to consumer during installation
Use a sample package when appropriate
Separate package Different package ID
Convention: {packageID}.Sample
E.g.: NUnit NUnit.Sample
Sample package depends on actual package you want to ship
JANUARY 16, 2013 | SLIDE 14
15. #8 – USE SAMPLE PACKAGE OR README.TXT
JANUARY 16, 2013 | SLIDE 15
16. #9 – UNINSTALL SHOULD LEAVE NO TRACES
Obvious, but often neglected/forgotten
Be a good citizen
Uninstall reverses installation + any side-effects
Unless modifications happened
Uninstall
Any files copied (binaries, sources, content, scripts…)
Tools package: any system modifications (PowerShell modules,
registry keys, environment variables…)
JANUARY 16, 2013 | SLIDE 16
17. http://www.xavierdecoster.com
@xavierdecoster
THANK YOU!
Questions?
Come get your MyGet
stickers, you might get lucky!
JANUARY 16, 2013 | SLIDE 17
Editor's Notes
Even ifyoudon’tuseyourown package repository, youshould have a fallbackrepositorywithbackup of allused packages…DEMO: package restoreDisable internet connectivityand show how the cache canbeused as a fallbackExplain a fallbackrepositoryshouldbemaintainedifusingprimarilyexternalpackage sources