<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Garrett Serack: Open Source Development at Microsoft</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/garretts/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/garretts/feed.xml</link>
    <description>View from deep inside Microsoft&amp;#039;s Open Source Software Lab</description>
    <lastBuildDate>Tue, 16 Apr 2019 05:08:09 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>10 things about OneGet that are completely different than you think.</title>
      <link>https://docs.microsoft.com/archive/blogs/garretts/10-things-about-oneget-that-are-completely-different-than-you-think</link>
      <pubDate>Tue, 05 May 2015 10:31:00 GMT</pubDate>
      <dc:creator><![CDATA[Garrett Serack, MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/garretts/2015/05/05/10-things-about-oneget-that-are-completely-different-than-you-think/</guid>
      <description><![CDATA[&nbsp;
Howdy y'all,
I've found myself answering the same questions over-and-over, so rather than...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">Howdy y'all,</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">I've found myself answering the same questions over-and-over, so rather than continue to do this piecemeal, I figured it's about time to just post this stuff once.</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">Hopefully you'll find it enlightening, or at least entertaining :)</span></span></p>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><strong><span style="color: black; font-size: 18pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial; mso-font-kerning: 18.0pt;"><span style="font-family: Calibri;">1. OneGet is not a package manager.</span></span></strong></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">Ah, off with a bang, eh?</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">Ok, so it's like this&mdash;OneGet isn't technically a <em>Package-Manager</em>, it's more of a <em>Package-Manager-Manager. </em>Its actual purpose is to bring together a diverse set of installers, package services, and inventory schemes under a set of unified APIs and PowerShell cmdlets.&nbsp; Rather than having end-users understand the complexity and diversity behind each package manager, this allows users to simple consume packages in a common way.&nbsp; Individual package management systems plug into OneGet by implementing a <strong><em>package provider.</em> </strong><span style="mso-bidi-font-weight: bold;">At the moment, providers can be written in either PowerShell or in any .NET language (ie, C#, VB, F# etc&hellip;).</span></span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">And yeah, it's true, not all package management systems behave the same, and it's really difficult to set down such a set of common patterns that could possibly apply to every package manager. We've opted to take the simple route, and mandate very little to how a package manager implements its own business, and the provider can implement as little of the interface as makes sense. For example, we have one provider (the &ldquo;Programs&rdquo; provider) that simply reports the inventory of the items stored in the ARP (Add/Remove Programs table). At the bare minimum, a OneGet package manager provider basically needs to be able to refer to &lsquo;packages&rsquo; by a &ldquo;name&rdquo;, and possibly a &ldquo;version&rdquo; (the format of both is entirely up to the developer).</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">Of course, we have some ideas and guidelines that kinda lay out how you <em style="mso-bidi-font-style: normal;">should</em> implement a given feature, but I wouldn&rsquo;t consider them terribly strict.</span></span></p>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><strong><span style="color: black; font-size: 18pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial; mso-font-kerning: 18.0pt;"><span style="font-family: Calibri;">2. OneGet is not another implementation of Chocolatey</span></span></strong></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">Ok, this one&rsquo;s kinda my fault.</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">A smidgen over 12 months ago when we released the initial prototype of OneGet at //Build 2014, I wrote a proof-of-concept Chocolatey provider to go along with it (mainly as a test of the interface itself, and a &lsquo;template&rsquo; of what a package manager needs to do). On top of that, for quite some time it was the <strong style="mso-bidi-font-weight: normal;">only </strong>package provider available for OneGet.</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">And then everyone jumped on the &ldquo;OneGet is a Chocolatey-compatible package manager&rdquo; story. <span style="mso-spacerun: yes;">&nbsp;</span>Sorry about that.</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">To be clear, my implementation of the Chocolatey provider is neither complete nor up to date, and will be removed from OneGet in the very near future. There are community people working on the <strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;">official</em></strong> Chocolatey provider, and when that&rsquo;s ready, OneGet should be able to bootstrap and install that provider dynamically so that users can access it at that time.</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">The really good news is that there are actually a number of providers in development&mdash;some by us, some by 3<sup>rd</sup> parties&mdash;that will be available in the very near future and will bring the features of many more package management systems into OneGet. You can check out the list of things that people have suggested or are planning on the </span><a href="https://github.com/OneGet/oneget/issues/77"><span style="color: #0563c1; font-family: Calibri;">Github issues page</span></a><span style="font-family: Calibri;">.</span></span></p>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><strong><span style="color: black; font-size: 18pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial; mso-font-kerning: 18.0pt;"><span style="font-family: Calibri;">3. OneGet is not for installing PowerShell modules either.</span></span></strong></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">Hmm. I&rsquo;ve seen some posts and articles that hint at this. Or more than hint at it, outright express it.</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">Indeed, there is a OneGet package provider called &ldquo;<strong style="mso-bidi-font-weight: normal;">PowerShellGet</strong>&rdquo; that is a package manager for installing PowerShell modules, from </span><a href="http://www.powershellgallery.com/"><span style="color: #0563c1; font-family: Calibri;">a common gallery</span></a><span style="font-family: Calibri;">. This provider was developed at the same time as OneGet, is fundamental to PowerShell going forward, and is included with OneGet. PowerShellGet can be accessed by the standard set of OneGet cmdlets, as well as thru its own cmdlets (i.e., Find-Module, Install-Module, etc.)</span></span></p>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><strong><span style="color: black; font-size: 18pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial; mso-font-kerning: 18.0pt;"><span style="font-family: Calibri;">4. Heck, OneGet does not install software.</span></span></strong></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">Well, not directly and certainly not on its own.</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">OneGet delegates <strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;">all </em></strong>installation operations to the installed package provider plugins. <span style="mso-spacerun: yes;">&nbsp;</span>Yes, we do include a very minimal set of package providers along with OneGet&mdash;basically the bare minimum of what we need to discover and install more providers. This minimum set includes:</span></span></p>
<p style="margin: 0in 0in 0pt 20.5pt; text-align: justify; line-height: normal; text-indent: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1; mso-add-space: auto; mso-list: l0 level1 lfo1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">-</span><span style="font: 7pt/normal 'Times New Roman'; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">An <strong style="mso-bidi-font-weight: normal;">MSI</strong> provider (installs Windows Installer .MSI files). This provider does not at this time support remote feeds, just simply implements the minimum features to install MSI files that the user has acquired. </span></span></p>
<p style="margin: 0in 0in 0pt 20.5pt; text-align: justify; line-height: normal; text-indent: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1; mso-add-space: auto; mso-list: l0 level1 lfo1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">-</span><span style="font: 7pt/normal 'Times New Roman'; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">An <strong style="mso-bidi-font-weight: normal;">MSU</strong> provider (for installing Microsoft Update files). Again, a very minimal installer that just handles MSU files that the user has downloaded.</span></span></p>
<p style="margin: 0in 0in 0pt 20.5pt; text-align: justify; line-height: normal; text-indent: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1; mso-add-space: auto; mso-list: l0 level1 lfo1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">-</span><span style="font: 7pt/normal 'Times New Roman'; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">A <strong style="mso-bidi-font-weight: normal;">Programs</strong> provider&mdash;which doesn&rsquo;t even install programs, but merely exposes the inventory of the Add/Remove Programs application in Windows. It has some minimal support to allow uninstalling some software.</span></span></p>
<p style="margin: 0in 0in 0pt 20.5pt; text-align: justify; line-height: normal; text-indent: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1; mso-add-space: auto; mso-list: l0 level1 lfo1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">-</span><span style="font: 7pt/normal 'Times New Roman'; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">A <strong style="mso-bidi-font-weight: normal;">Bootstrap</strong> provider&mdash;a custom provider which can download and install new Package Providers dynamically from a feed on the internet.<span style="mso-spacerun: yes;">&nbsp; </span>This is how you will be able to get more providers without having to manually download them.</span></span></p>
<p style="margin: 0in 0in 8pt 20.5pt; text-align: justify; line-height: normal; text-indent: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1; mso-add-space: auto; mso-list: l0 level1 lfo1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">-</span><span style="font: 7pt/normal 'Times New Roman'; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">The aforementioned <strong style="mso-bidi-font-weight: normal;">PowerShellGet</strong> provider&mdash;for installing PowerShell modules.</span></span></p>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><strong><span style="color: black; font-size: 18pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial; mso-font-kerning: 18.0pt;"><span style="font-family: Calibri;">5. OneGet is not meant to replace existing infrastructure or technologies.</span></span></strong></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">When I started the OneGet project, I wanted to make it very clear that we&rsquo;re not trying to shut down existing package installers or technologies, and replace it with &ldquo;<em style="mso-bidi-font-style: normal;">The-One-True-Package-Manager-Which-Will-Replace-All-Others</em>&rdquo;&mdash;far from it. There are what, about 20 billion pieces of software available for Windows today, made over the course of the last 20-some years. It would be a bit foolish to assume that anyone would be able to&mdash;or willing to&mdash;repackage all of that software to fit a common universal package format.</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">Diversity is a wonderful thing, and should be celebrated, not condemned&mdash;especially in software installation.<span style="mso-spacerun: yes;">&nbsp; </span>I think that experts in Python are far more capable of determining the correct behavior for installing Python modules, and the idea that I or anyone else outside of that community would be able to lay down a smarter format, is completely senseless. The same goes for Node.js, Perl, PHP, Ruby, etc.</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">What I can do, is provide a means to bring it all together so that disparate package managers can work together in a common way, rather than stepping on each other&rsquo;s expertise.</span></span></p>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><strong><span style="color: black; font-size: 18pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial; mso-font-kerning: 18.0pt;"><span style="font-family: Calibri;">6. OneGet does not have a repository. Well, maybe one.</span></span></strong></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">This is an easy one, right?</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">Since OneGet isn&rsquo;t a package manager, it doesn&rsquo;t have package repositories. Although, we do have the <strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;">Bootstrap</em></strong> provider, and it <em style="mso-bidi-font-style: normal;">does</em> have one&mdash;but there isn&rsquo;t a &ldquo;OneGet Repository Server&rdquo;. So when people ask &lsquo;<em style="mso-bidi-font-style: normal;">How do I setup a OneGet repository&rsquo;</em>, the answer is &hellip; &ldquo;you can&rsquo;t&rdquo;.</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">Of course that&rsquo;s a bit pedantic, since the implied question is &ldquo;<em style="mso-bidi-font-style: normal;">How do I set up a Repository that OneGet can see for &lsquo;Chocolatey&rsquo; packages</em>&rdquo; since that&rsquo;s one of the most visible providers that can be used with the prelease versions of OneGet today. The answer for that is: Chocolatey is based on NuGet, and so you have to set up a </span><a href="http://docs.nuget.org/create/hosting-your-own-nuget-feeds"><span style="color: #0563c1; font-family: Calibri;">NuGet server</span></a><span style="font-family: Calibri;">. You can also check out 3<sup>rd</sup> party options like </span><a href="http://inedo.com/proget/overview"><span style="color: #0563c1; font-family: Calibri;">ProGet</span></a><span style="font-family: Calibri;"> or </span><a href="http://www.myget.org/"><span style="color: #0563c1; font-family: Calibri;">MyGet</span></a><span style="font-family: Calibri;"> which are really much simpler to deal with.</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">However, since there are a lot more package manager providers just around the corner, I wouldn&rsquo;t rush out and start laying down new infrastructure for hosting your packages and installers, because it&rsquo;s certainly possible that new providers can simply use what you have available today, without having to explicitly setup something new.<span style="mso-spacerun: yes;">&nbsp; </span>And if you have some sort of repository and service, well perhaps you might be able to put together a provider that brings all that together.</span></span></p>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><strong><span style="color: black; font-size: 18pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial; mso-font-kerning: 18.0pt;"><span style="font-family: Calibri;">7. OneGet does not solve all installation woes.</span></span></strong></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">I&rsquo;ve seen a lot of chatter that &ldquo;OneGet is going to solve problem XYZ&rdquo; and questions like &ldquo;how will it problem ABC go away?&rdquo; </span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">Really, it&rsquo;s not going to do that overnight. </span><a href="http://blogs.msdn.com/b/garretts/archive/2015/05/05/8-laws-of-software-installation.aspx"><span style="color: #0563c1; font-family: Calibri;">I did write a post</span></a><span style="font-family: Calibri;"> that talks about some of the fundamental things that we should all be thinking about when installing software, and while that&rsquo;s basically been my compass when building OneGet, we&rsquo;ve got a long way to go to making software installation smooth.</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">OneGet does have the benefit that it sets the stage for how well-behaved package management systems should work, and the more package management system that work with it, should drive better results for everyone.<span style="mso-spacerun: yes;">&nbsp; </span>If you have ideas or questions about how we can make this a reality, I wholehearted recommend that you come lend your voice to making OneGet better, by participating in the </span><a href="http://oneget.org/"><span style="color: #0563c1; font-family: Calibri;">OneGet project on Github</span></a><span style="font-family: Calibri;">.</span></span></p>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><strong><span style="color: black; font-size: 18pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial; mso-font-kerning: 18.0pt;"><span style="font-family: Calibri;">8. OneGet is not just for Windows 10.</span></span></strong></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">Ever since its inception, OneGet has been designed in such a way that its core should work with .NET 4.0, and the PowerShell cmdlets need only at least PowerShell v3 (WMF3). This makes it so that for general use it can work find on Windows 7/ Windows Server 2008 R2 and beyond. Now, certain provider may not be able to run on certain versions of Windows &ndash; for example, a provider that relies on some Windows 10 technology (like the app store?) won&rsquo;t work on Windows 7. That&rsquo;s just common sense.</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">We&rsquo;re also looking at getting it to run on some of the special versions of Windows too, like Windows Nano Server, and I&rsquo;d really like to see what I can do for that version of Windows 10 that runs on Raspberry PI. At this point, I haven&rsquo;t nailed down <em style="mso-bidi-font-style: normal;">when</em>, but remember, OneGet is open source software, and others can do some work with it as well.</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">I haven&rsquo;t talked much about it lately, but one of my other goals with OneGet is to port it to non-Windows operating systems too. Sure, you&rsquo;ve already got RPM and DPKG (i.e., apt-get) on Linux, but does RPM install packages from Node.js? <span style="mso-spacerun: yes;">&nbsp;</span>How about installing Python modules? A universal package management layer could be useful for bringing together package installation on a variety of systems. Since OneGet isn&rsquo;t a package manager, and it&rsquo;s not designed to displace actual package managers, it&rsquo;s not a completely crazy idea to bring it to Linux. </span></span></p>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><strong><span style="color: black; font-size: 18pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial; mso-font-kerning: 18.0pt;"><span style="font-family: Calibri;">9. OneGet is not finished.</span></span></strong></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">My pappy always used to say that &ldquo;A journey of a thousand miles begins with shoeing a horse&rdquo;&hellip; Well, we&rsquo;re still writing the basic features for OneGet, and I can foresee a really long road yet ahead. </span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><span style="color: black; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">I think that as we go on, we&rsquo;re going to be adding more and more features into OneGet, adding more providers, and seeing its use integrated into more than just the PowerShell cmdlets&mdash;GUIs, more tools, etc&hellip; where do you think it should be integrated into?</span></span></p>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><strong><span style="color: black; font-size: 18pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial; mso-font-kerning: 18.0pt;"><span style="font-family: Calibri;">10. OneGet isn't called OneGet.&nbsp;</span></span></strong></p>
<p style="margin: 0in 0in 8pt; text-align: justify;"><span style="color: black; line-height: 107%; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">And, finally we get to the weird one. We renamed the &ldquo;OneGet&rdquo; PowerShell module to &ldquo;PackageManagement&rdquo; a while back. </span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify;"><span style="color: black; line-height: 107%; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">I keep telling folks, it&rsquo;s not that we changed the name, we just changed the spelling. :)</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify;"><span style="color: black; line-height: 107%; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">The open source project is still called OneGet, and I will continue to call it OneGet.<span style="mso-spacerun: yes;">&nbsp; </span></span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify;"><span style="color: black; line-height: 107%; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">So, why did we rename the module? Well, working in a very large multinational company, you always have those guys around whose job it is to make sure things are on the level with regards to things like trademarks. Especially when you ship a feature in Windows. I don&rsquo;t know if y&rsquo;all realize this, but Windows is a big deal to a lot of folks around these parts.</span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify;"><span style="color: black; line-height: 107%; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">Anyway, when there is the <em style="mso-bidi-font-style: normal;">potential</em> for ambiguity in some country somewhere, these go-getters can run off and make it all work out. The trouble is that do to so can be a smidgen pricey, and before they go do their thing, they&rsquo;ll ask you if the name is terribly important, and if using a more generic term might make it so they don&rsquo;t have to do that. </span></span></p>
<p style="margin: 0in 0in 8pt; text-align: justify;"><span style="color: black; line-height: 107%; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">And the answer in this case is&hellip; yeah, we could change the spelling to &ldquo;PackageManagement&rdquo;, I&rsquo;m not going to fret about exactly what the module is named. We can still have the open source project hosted at </span><a href="http://oneget.org/"><span style="color: #0563c1; font-family: Calibri;">http://oneget.org</span></a><span style="font-family: Calibri;"> so it&rsquo;s not a really big deal.</span></span></p>
<div style="border-width: medium medium 1pt; border-style: none none solid; border-color: currentColor currentColor windowtext; padding: 0in 0in 1pt; border-image: none; mso-element: para-border-div; mso-border-bottom-alt: solid windowtext .75pt;">&nbsp;</div>
<p>&nbsp;</p>
<p style="margin: 0in 0in 8pt; text-align: justify;">&nbsp;</p>
<p style="margin: 0in 0in 8pt; text-align: justify;"><span style="color: black; line-height: 107%; font-size: 10pt; mso-ascii-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Calibri; mso-bidi-font-family: Arial;"><span style="font-family: Calibri;">I hope that clears up some of the outstanding questions, and I&rsquo;m sure it likely spawns a few more, so if y&rsquo;all have more questions, bring &lsquo;em and we&rsquo;ll see if we can&rsquo;t answer them for you.</span></span></p>
<p>&nbsp;</p>
<p style="margin: 0in 0in 8pt; text-align: justify;">&nbsp;</p>
<p style="margin: 0in 0in 8pt; text-align: justify;"><em><span style="color: black; line-height: 107%; font-family: 'Arial',sans-serif; font-size: 9pt; mso-ansi-language: EN;" lang="EN">Garrett Serack</span></em><span style="color: black; line-height: 107%; font-family: 'Arial',sans-serif; font-size: 9pt; mso-ansi-language: EN;" lang="EN"> (<a href="https://github.com/fearthecowboy"><span style="color: #0563c1;">@fearthecowboy</span></a>)</span></p>
<p style="margin: 0in 0in 8pt; text-align: justify;"><span style="color: black; line-height: 107%; font-family: 'Arial',sans-serif; font-size: 9pt; mso-ansi-language: EN;" lang="EN"><br /></span></p>]]></content:encoded>
    </item>
    <item>
      <title>8 Laws of Software Installation</title>
      <link>https://docs.microsoft.com/archive/blogs/garretts/8-laws-of-software-installation</link>
      <pubDate>Tue, 05 May 2015 08:38:00 GMT</pubDate>
      <dc:creator><![CDATA[Garrett Serack, MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/garretts/2015/05/05/8-laws-of-software-installation/</guid>
      <description><![CDATA[Establishing an Ecosystem That Works Together
&nbsp;
(this is a repost of a page I wrote a couple...]]></description>
      <content:encoded><![CDATA[<p><strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 18pt; mso-fareast-font-family: 'Times New Roman'; mso-font-kerning: 18.0pt;">Establishing an Ecosystem That Works Together</span></strong></p>
<p>&nbsp;</p>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><strong><em><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">(this is a <a href="https://github.com/OneGet/oneget/wiki/8-Laws-of-Software-Installation"><span style="color: blue;">repost of a page </span></a>I wrote a couple years back at the dawn of the OneGet project)</span></em></strong></p>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">I started thinking about how all of this fits together and how we (as an ecosystem) need to be able to work together, and &mdash; more importantly &mdash; still allow different systems to work how they please.</span></p>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Many years ago, <a href="http://www.identityblog.com/"><span style="color: blue;">Kim Cameron</span></a> came up with a list of <a href="http://www.identityblog.com/?p=352/"><em><span style="color: blue;">7 Laws of Identity</span></em></a>. They outline some core fundamental principles that any Identity system should follow to ensure that everyone's (users, identity providers, and relying parties) security is maximized.</span></p>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">It occurred to me that concepts from the Laws could be recycled in a way that reflects how we can define the general parameters for an installation ecosystem.</span></p>
<p>&nbsp;</p>
<div style="border-width: medium medium 2.25pt; border-style: none none double; border-color: currentColor currentColor windowtext; padding: 0in 0in 3pt; border-image: none; mso-element: para-border-div;">
<p style="margin: 0in 0in 12pt; padding: 0in; border: currentColor; border-image: none; line-height: normal; mso-outline-level: 2; mso-border-bottom-alt: double windowtext 2.25pt; mso-padding-alt: 0in 0in 3.0pt 0in;"><strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 13.5pt; mso-fareast-font-family: 'Times New Roman';">1. User Control and Consent</span></strong></p>
</div>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Users must always be able to make the ultimate decisions about their system, and installers must never do unauthorized actions without the user's consent. Essentially, we really want to ensure that changes that the user doesn't want aren't being applied to their systems. This means that an installer should always provide a clear and accurate description of the product being installed, and ensure that the user is in control of their systems. User interfaces or tools that obscure or break this trust with the user should be avoided. Ideally, user interfaces should strive for some amount of minimalism, instead of serving up a collection of pedantic screens which users tediously press 'Next' through. Less UI means that users are far more likely to pay attention to what is said.</span></p>
<p style="background: #f2f2f2; margin: 0in 0in 8pt 0.5in; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-background-themecolor: background1; mso-background-themeshade: 242;"><em><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Personal opinion:</span></em><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';"> I guess at the same time, I should point out a particular gripe of mine, especially with open source software installation on Windows. The proliferation of EULAs and Licenses masquerading as EULAs in the installation process should stop. Many OSS licenses don't actually have any requirement for the end user to agree to the terms of them before installation, so please stop asking for people to 'agree' just to make it look like you have a 'professional' installer.<br /><br /></span><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">If you <em>actually</em> have a requirement to record an acceptance of license, perhaps you should be doing that upon first use (or whatever activity actually requires the acceptance of the license).</span></p>
<p>&nbsp;</p>
<div style="border-width: medium medium 2.25pt; border-style: none none double; border-color: currentColor currentColor windowtext; padding: 0in 0in 3pt; border-image: none; mso-element: para-border-div;">
<p style="margin: 0in 0in 12pt; padding: 0in; border: currentColor; border-image: none; line-height: normal; mso-outline-level: 2; mso-border-bottom-alt: double windowtext 2.25pt; mso-padding-alt: 0in 0in 3.0pt 0in;"><strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 13.5pt; mso-fareast-font-family: 'Times New Roman';">2. Minimal Impact for a Constrained Use</span></strong></p>
</div>
<p><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Changes to a system should aim to offer the least amount of disruption to the system. Installing unnecessary or unwanted components adds to bloat, and will increase the potential attack surface for malware.</span></p>
<p style="background: #f2f2f2; margin: 0in 0in 8pt 0.5in; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-background-themecolor: background1; mso-background-themeshade: 242;"><em><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Personal opinion:</span></em><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';"> There is a category of software out there that has opted to provide their software free, but heavily &mdash; and often with great vigilance &mdash; attempts to install toolbars, add-ons, or other pieces of trash software that serve only to funnel advertising to the user. Others nag the user to change their default search settings or their browser home page for similar purposes. These behaviors are abusive to customers, and should be avoided at all costs.</span></p>
<p>&nbsp;</p>
<div style="border-width: medium medium 2.25pt; border-style: none none double; border-color: currentColor currentColor windowtext; padding: 0in 0in 3pt; border-image: none; mso-element: para-border-div;">
<p style="margin: 0in 0in 12pt; padding: 0in; border: currentColor; border-image: none; line-height: normal; mso-outline-level: 2; mso-border-bottom-alt: double windowtext 2.25pt; mso-padding-alt: 0in 0in 3.0pt 0in;"><strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 13.5pt; mso-fareast-font-family: 'Times New Roman';">3. Pluralism of Operators and Technologies</span></strong>&nbsp;</p>
</div>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">The ecosystem should easily support many different technologies. There is no one-size-fits-all answer. Software comes in all shapes and sizes. Any well-behaved individual packaging or installation technology should be welcome to participate. Choosing one technology over another should be left to the publisher. Pushing this to the logical ends means that any attempt to unify these should permit and encourage use of any part of the ecosystem.</span></p>
<p>&nbsp;</p>
<div style="border-width: medium medium 2.25pt; border-style: none none double; border-color: currentColor currentColor windowtext; padding: 0in 0in 3pt; border-image: none; mso-element: para-border-div;">
<p style="margin: 0in 0in 12pt; padding: 0in; border: currentColor; border-image: none; line-height: normal; mso-outline-level: 2; mso-border-bottom-alt: double windowtext 2.25pt; mso-padding-alt: 0in 0in 3.0pt 0in;"><strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 13.5pt; mso-fareast-font-family: 'Times New Roman';">4. Transparency, Accountability, and Reversability</span></strong></p>
</div>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Installation technologies should never obfuscate <em>what</em> is being done, and should never place the system in a state that cannot be undone. Again, keeping in mind that the target system belongs to the user, not the publisher, end users should be able to expect that uninstallation should succeed without issue or require any additional work to clean up.</span></p>
<p style="background: #f2f2f2; margin: 0in 0in 8pt 0.5in; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-background-themecolor: background1; mso-background-themeshade: 242;"><em><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Personal opinion:</span></em><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';"> On a slightly tangential note, I'd like to talk about rebooting the system. Windows Installers seem to be over-eager to reboot the OS, either on installation or uninstallation. Now, there is a very small class of software that can actually justify having to reboot the system. But 99%+ of software should be able to deal with file conflicts, proper setup, managing their running processes or services, manipulating locked files, removing temporary files, and all of those other reasons that you think you need to reboot the system in order to finish the work. If you need help on doing this, ask. You'll be doing everyone a great service.</span></p>
<p>&nbsp;</p>
<div style="border-width: medium medium 2.25pt; border-style: none none double; border-color: currentColor currentColor windowtext; padding: 0in 0in 3pt; border-image: none; mso-element: para-border-div;">
<p style="margin: 0in 0in 12pt; padding: 0in; border: currentColor; border-image: none; line-height: normal; mso-outline-level: 2; mso-border-bottom-alt: double windowtext 2.25pt; mso-padding-alt: 0in 0in 3.0pt 0in;"><strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 13.5pt; mso-fareast-font-family: 'Times New Roman';">5. Flexibility of Installation Scope</span></strong></p>
</div>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><em><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Ideally</span></em><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">, a given package should be able to install into different installation scopes (OS/Global scope, Restricted/User scope, and Local/Sandboxed scope) and support installation into online and offline (VM Images) systems. Packaging systems should consider how they can help products to be fully installed in these scopes.</span></p>
<p>&nbsp;</p>
<div style="border-width: medium medium 2.25pt; border-style: none none double; border-color: currentColor currentColor windowtext; padding: 0in 0in 3pt; border-image: none; mso-element: para-border-div;">
<p style="margin: 0in 0in 12pt; padding: 0in; border: currentColor; border-image: none; line-height: normal; mso-outline-level: 2; mso-border-bottom-alt: double windowtext 2.25pt; mso-padding-alt: 0in 0in 3.0pt 0in;"><strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 13.5pt; mso-fareast-font-family: 'Times New Roman';">6. Configuration Is Not Installation</span></strong></p>
</div>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Software installers on Windows have, since time began, been conflating configuration with installation. This approach introduces several painful problems into the software installation process:</span></p>
<ul style="list-style-type: disc; direction: ltr;">
<li style="color: black; font-style: normal; font-weight: normal;">
<p style="color: #000000; line-height: normal; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 8pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in;"><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">It increases the amount of UI during installation, which only leads to additional confusion for the end user.</span></p>
</li>
<li style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; font-style: normal; font-weight: normal;">
<p style="color: #000000; line-height: normal; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 8pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in;"><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Users may not know the answers to configuration questions, and are now blocked until they can find answers.</span></p>
</li>
<li style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; font-style: normal; font-weight: normal;">
<p style="color: #000000; line-height: normal; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 8pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in;"><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Configuration during installation is nearly always significantly different from configuring (or 're-configuring') the product <em>after</em> installation. Again, this is confusing to the user.</span></p>
</li>
<li style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; font-style: normal; font-weight: normal;">
<p style="color: #000000; line-height: normal; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 8pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in;"><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Migrating a working configuration to another system is harder when you have to configure during installation. Configuration should be easily portable between installations.</span></p>
</li>
<li style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; font-style: normal; font-weight: normal;">
<p style="color: #000000; line-height: normal; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 8pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in;"><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">It increases friction for end users who are trying to automate the installation of software for a large number of systems.</span></p>
<p style="color: #000000; line-height: normal; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 8pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Really, don't be that guy.</span></p>
</li>
</ul>
<p>&nbsp;</p>
<div style="border-width: medium medium 2.25pt; border-style: none none double; border-color: currentColor currentColor windowtext; padding: 0in 0in 3pt; border-image: none; mso-element: para-border-div;">
<p style="margin: 0in 0in 12pt; padding: 0in; border: currentColor; border-image: none; line-height: normal; mso-outline-level: 2; mso-border-bottom-alt: double windowtext 2.25pt; mso-padding-alt: 0in 0in 3.0pt 0in;"><strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 13.5pt; mso-fareast-font-family: 'Times New Roman';">7. Respect the Resources of the Target System</span></strong></p>
</div>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Software publishers need to respect the system on which their software is being installed. You don't own that system, the end user does. Here are some common scenarios that can be disrespectful:</span></p>
<ul style="list-style-type: disc; direction: ltr;">
<li style="color: black; font-style: normal; font-weight: normal;">
<p style="color: #000000; line-height: normal; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 8pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo2; tab-stops: list .5in;"><strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Launching directly from the installer.</span></strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';"> Installation should not be considered a good opportunity to launch your application. Similar to configuration issues, this is frustrating to end users who are looking to automate the installation, and can introduce confusion for users who may not have expected that.</span></p>
</li>
<li style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; font-style: normal; font-weight: normal;">
<p style="color: #000000; line-height: normal; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 8pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo2; tab-stops: list .5in;"><strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Automatically starting software at system start.</span></strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';"> The proliferation of software that insists on starting up with the OS automatically is getting out of control. Software that wishes to launch at start-up should get explicit <em>opt-in</em> consent from the user (after the user has launched the application at least once), not require the user to hunt down the option from a sea of configuration settings to disable it. Oh, and <em>not</em> providing a method to trivially disable auto-start is very bad.</span></p>
</li>
<li style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; font-style: normal; font-weight: normal;">
<p style="color: #000000; line-height: normal; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 8pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo2; tab-stops: list .5in;"><strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Checking for software updates.</span></strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';"> There are two acceptable methods for automatically checking for software updates: </span></p>
<ul style="list-style-type: circle;">
<li style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; font-style: normal; font-weight: normal;">
<p style="color: #000000; line-height: normal; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 8pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo2; tab-stops: list 1.0in;"><strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Preferred:</span></strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';"> checking from within the application itself (i.e. at startup) and elegantly handling update and restart.</span></p>
</li>
<li style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; font-style: normal; font-weight: normal;">
<p style="color: #000000; line-height: normal; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 8pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo2; tab-stops: list 1.0in;"><strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Acceptable:</span></strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';"> Launching an update checker <em>via a scheduled task</em>, checking, and then exiting.</span></p>
</li>
<li style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; font-style: normal; font-weight: normal;">
<p style="color: #000000; line-height: normal; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 8pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo2; tab-stops: list 1.0in;"><strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Wrong:</span></strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';"> Auto-starting a background or tray application to constantly check for updates.</span></p>
<p style="background: #f2f2f2; color: #000000; line-height: normal; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 8pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-background-themecolor: background1; mso-background-themeshade: 242;"><em><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Personal opinion:</span></em><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';"> This last one is particularly frustrating. Since Windows doesn't currently have a built-in 3rd party update service (like Windows Update) that will periodically check for updates, download, and install them, many companies have resorted to running bloated, wasteful apps in the background, waiting for updates. This is terribly disrespectful to the end user's system, and offers absolutely nothing of value to the user that a scheduled task wouldn't accomplish with less effort.</span></p>
</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<div style="border-width: medium medium 2.25pt; border-style: none none double; border-color: currentColor currentColor windowtext; padding: 0in 0in 3pt; border-image: none; mso-element: para-border-div;">
<p style="margin: 0in 0in 12pt; padding: 0in; border: currentColor; border-image: none; line-height: normal; mso-outline-level: 2; mso-border-bottom-alt: double windowtext 2.25pt; mso-padding-alt: 0in 0in 3.0pt 0in;"><strong><span style="color: black; font-family: 'Arial',sans-serif; font-size: 13.5pt; mso-fareast-font-family: 'Times New Roman';">8. Consistent Experience Across Contexts</span></strong></p>
</div>
<p style="margin: 0in 0in 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';">Finally, regardless of underlying technology, there should be a common set of commands, tools, and processes that allow users to install any software in the way that they would like. Currently, we see that individual installation technologies are all headed in different directions, which makes automating the installation of some pieces of software a nightmare. We as a community need to have the ability to bring all of these pieces of software together without having to manually script each individual combination.</span></p>
<p><em><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';"><br />Garrett Serack</span></em><span style="color: black; font-family: 'Arial',sans-serif; font-size: 9pt; mso-fareast-font-family: 'Times New Roman';"> (<a href="https://github.com/fearthecowboy"><span style="color: blue;">@fearthecowboy</span></a>)</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Trust Me: this is the most important thing you can read today.</title>
      <link>https://docs.microsoft.com/archive/blogs/garretts/trust-me-this-is-the-most-important-thing-you-can-read-today</link>
      <pubDate>Thu, 12 Feb 2015 07:30:19 GMT</pubDate>
      <dc:creator><![CDATA[Garrett Serack, MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/garretts/2015/02/12/trust-me-this-is-the-most-important-thing-you-can-read-today/</guid>
      <description><![CDATA[(crossposted from&nbsp;http://fearthecowboy.com/post/AbG5p4gKsRjGEkov9Z-JyQ )
I'd like to have a...]]></description>
      <content:encoded><![CDATA[<p><em>(crossposted from&nbsp;<a href="http://fearthecowboy.com/post/AbG5p4gKsRjGEkov9Z-JyQ">http://fearthecowboy.com/post/AbG5p4gKsRjGEkov9Z-JyQ</a> )</em></p>
<p>I'd like to have a moment of silence.</p>
<p>Yesterday afternoon, at 2:33PM my beloved work disk passed away. He is survived by his younger brother, the SSD boot disk, who, like our whole family of components is experiencing shock and grief in the passing of our deeply loved friend.</p>
<p>Moments after committing my last set of changes to source control, my work disk experienced some sort of catastrophic failure. While his passing was indeed quick, it would appear that from the god-awful sound that the disk makes when attempting to spin up, the last moments of his life would have been extreme agony.</p>
<p>At this time, technicians do not suspect foul play, merely an unforeseen and unknown defect laying in wait in his heart was a ticking time bomb, awaiting an opportunity to strike.</p>
<p>While the vast majority of data on the disk is backed up on other volumes, there are no doubt some ancient memories that have been lost forever.</p>
<p>I treasure the moments I had with this disk, and I will always remember him fondly. We've shared so much with each other, from vast ambitious projects, to stashing data that I surely meant to come back to one day.</p>
<p>Even in this hour of grief, our family looks to the future, and in doing so, would like to remind others, that all life is indeed precious and finite, and for the love of all information and knowledge everywhere:</p>
<p><strong>BACK YOUR DATA UP. BACK IT UP NOW. </strong></p>
<p>EVERY SINGLE DISK YOU HAVE WILL ABSOLUTELY DIE ONE DAY.&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>OneGet and Chocolatey - What's the connection?</title>
      <link>https://docs.microsoft.com/archive/blogs/garretts/oneget-and-chocolatey-whats-the-connection</link>
      <pubDate>Wed, 04 Feb 2015 09:29:00 GMT</pubDate>
      <dc:creator><![CDATA[Garrett Serack, MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/garretts/2015/02/04/oneget-and-chocolatey-whats-the-connection/</guid>
      <description><![CDATA[Howdy!
With all the writing about OneGet that everyone's been doing lately, I thought it might be a...]]></description>
      <content:encoded><![CDATA[<p>Howdy!</p>
<p>With all the writing about OneGet that everyone's been doing lately, I thought it might be a good time to explain exactly what OneGet and Chocolatey's relationship is.</p>
<p>When we built the OneGet prototype that first shipped with the WMF 5.0 preview last April, the only provider that was even around was the hastily-written prototype Chocolatey provider that I built. Re-using the existing Chocolatey implementation at the time wasn't really feasible, as it would have meant shelling out to an external process, parsing the results and pulling them back in and then adapting that output to the format that the OneGet provider API was expecting.</p>
<p>At the time of that release, I knew Rob was planning on a new version of Chocolatey that would be build from-scratch implementation that cleans up a lot of the issues with the original as well as making it consumable as a library (<a title="Chocolatey Core NuGet Package" href="http://www.nuget.org/packages/chocolatey.lib/0.9.9-alpha-20150125">chocolatey.core</a>).&nbsp;</p>
<p>Which is kinda why, over the last several months, I've delayed doing anything significant with my prototype implementation, or fixing many bugs with it.</p>
<p>Now, that new foundation for Chocolatey is becoming available.</p>
<p>This means that I can finally drop my prototype implementation into the bit-bucket and we can build a new provider based on the same code as the official Chocolatey client is using. &nbsp;This will very shortly become 'THE' Official Chocolatey provider for OneGet; we're not going to fragment the ecosystem by continuing with a separate implementation.</p>
<p><em><strong>Just to make that clear:</strong></em> We're <strong>not</strong>&nbsp;re-implementing Chocolatey. We're <strong>not</strong>&nbsp;forking Chocolatey. We're <strong>not</strong> taking control of Chocolatey. We're helping connect the <strong>official</strong> <strong>Chocolatey</strong> implementation into OneGet.</p>
<p>The <strong><em>new</em></strong> Chocolatey Provider project has been already <a title="OneGet/ChocolateyProvider" href="https://github.com/OneGet/ChocolateyProvider">created on github</a>, the ever-so-illustrious PowerShell MVP<a title="@Jaykul on Github" href="https://github.com/jaykul"> @Jaykul</a> is leading the development of the new provider. I'll be helping out with that, making contributions when I can too.</p>
<p>I'm hoping that we can get that up and running within a few weeks, and replace the existing provider fairly quickly. This will ensure that all future Chocolatey behavior in OneGet&nbsp;is heavily tied to the official Chocolatey, and we should see incompatibilities dry up completely.</p>
<p>If you'd like to contribute, head on over to the <a title="OneGet/ChocolateyProvider" href="https://github.com/OneGet/ChocolateyProvider">Chocolatey Provider Project on Github</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>OneGet (it's in the Windows 10 Preview!)</title>
      <link>https://docs.microsoft.com/archive/blogs/garretts/oneget-its-in-the-windows-10-preview</link>
      <pubDate>Tue, 27 Jan 2015 06:34:00 GMT</pubDate>
      <dc:creator><![CDATA[Garrett Serack, MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/garretts/2015/01/27/oneget-its-in-the-windows-10-preview/</guid>
      <description><![CDATA[Howdy!
With a useful build of OneGet making an appearance in the Windows 10 Technical Preview...]]></description>
      <content:encoded><![CDATA[<p>Howdy!</p>
<p>With a useful build of OneGet making an appearance in the Windows 10 Technical Preview (build 9926+) I thought it was a good time to stop and catch y'all up on what the heck is goin' on.</p>
<p><em>Before we get into all this, I would like to remind y'all that &nbsp;OneGet is a <strong>work-in-progress --</strong> you're going to find some rough edges, some things that don't quite work right, and maybe even some stuff that really needs changin'. That being said, I reckon that it's also in a pretty good state, and it's getting better every day. The upside about publishing bits like this is that you get to see the stuff as it's being made (and if you want to really feel that wild west experience, you can head over to the Github project and grab a really cutting edge build.)</em></p>
<p>&nbsp;</p>
<p>For those tuning in for the first time, let me shine some light on exactly what we're buildin'.</p>
<p><strong>OneGet </strong>is a<strong> Package Management Aggregator</strong> -- it's basically a core module that anyone can write a plugin (what we call <strong><em>Providers</em></strong><em>)&nbsp;</em>and creates a consistent interface for <strong><em>software discovery</em></strong>, <em><strong>installation</strong></em> and <em><strong>inventory</strong></em>. On the one side of this core module, is a set of PowerShell Cmdlets that let the user work with all these different package management systems, and on the other is the interface for writin' package providers.</p>
<p>Regardless of the installation technology underneath, users can use these common cmdlets to install/uninstall packages, add/remove/query package repositories, and query a system for the software installed.</p>
<p>We've started a <a title="https://github.com/OneGet/oneget/issues/77" href="https://github.com/OneGet/oneget/issues/77" target="_blank">list of all the package providers</a> that we'd like to see built. Some will be built by Microsoft, some by third parties. Over time I'd expect that there's gonna be quite a number.</p>
<p>&nbsp;</p>
<p><span style="font-size: medium;"><strong>What's in the box?</strong></span></p>
<p>In-the-box, we're going to restrict how many of these providers that we ship-- and make it real easy to install new package providers on-the-fly. Think of it like this -- all we really need to have is the basic set that allows us to discover and install more providers for more types of software. Keeping the core unencumbered means that we can dynamically install and update the package providers with greater ease and agility.</p>
<p>At this point, we're likely going to keep the core set to :</p>
<ul>
<li>a Bootstrap provider (the provider that knows where to get more providers from)</li>
<li>an MSI provider for handling MSI files</li>
<li>an MSU provider for handling Microsoft update files</li>
<li>an ARP provider (Add/Remove programs) for providing inventory data of anything that registered itself with Add/Remove programs</li>
<li>PowerShellGet -- for accessing PowerShell modules.</li>
</ul>
<div>So, things like the ability to work with Chocolatey, NuGet, or any other package format will be available to be 'bootstrapped' on the fly.</div>
<div>&nbsp;&nbsp;</div>
<div><br /><span style="font-size: medium;"><strong>Getting Started with OneGet</strong></span></div>
<div>OneGet is available in a few ways:</div>
<div>
<ul>
<li>In the recent <a href="https://insider.windows.com/">Windows 10 Technical Preview </a>(any build 9926+),&nbsp;</li>
<li>In the <a href="http://www.microsoft.com/en-us/download/details.aspx?id=44987">Windows Management Frameworks 5.0 November Preview</a>&nbsp;(currently for Windows 8.1 and Windows Server 2012&nbsp;R2)&nbsp;</li>
<li>We also have an&nbsp;<a href="http://oneget.org/install-oneget.exe">experimental community build</a> off the <a href="http://oneget.org">http://oneget.org</a> site, which should work for all systems back to Windows 7 (maybe even Vista?) -- <em>it requires PowerShell 3.0 and .NET 4.0 <br /></em>Note: the experimental build is exactly what it says it is, <em>experimental. <strong>If you're not comfortable with unstable or experimental bits, say on your horse, and wait for the release.</strong></em></li>
</ul>
</div>
<div>
<p>&nbsp;</p>
<p>So, grab yourself a heapin' helpin' of OneGet and lets get started.</p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/56/00/1346.cap2.PNG" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-56-00/1346.cap2.PNG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/56/00/1346.cap2.PNG" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-56-00/1346.cap2.PNG" alt="" border="0" /></a></p>
<p>On a fresh install of OneGet, when you use the <strong><span style="font-family: 'courier new', courier;">get-packageprovider</span></strong> cmdlet you will get a list of the currently installed package providers, which right now, doesn't look like much.</p>
<p>However, you can ask the hidden Bootstrap provider what providers <em><strong>it </strong></em>knows about:&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/56/00/6644.cap3.PNG" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-56-00/6644.cap3.PNG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/56/00/6644.cap3.PNG" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-56-00/6644.cap3.PNG" alt="" border="0" /></a></p>
<p>And, you can have it automatically prompt to install one by asking for it by name:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/56/00/8154.cap5.PNG" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-56-00/8154.cap5.PNG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/56/00/8154.cap5.PNG" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-56-00/8154.cap5.PNG" alt="" border="0" /></a></p>
<p>You could also have it just install it on-the-fly if you use it in a command:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/56/00/0116.cap6.PNG" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-56-00/0116.cap6.PNG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/56/00/0116.cap6.PNG" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-56-00/0116.cap6.PNG" alt="" border="0" /></a></p>
<p>ProTip: If you don't want it to bug you with the prompt, you can include the <strong><span style="font-family: 'courier new', courier;">-ForceBootstrap</span></strong> switch on the command line.</p>
<p>&nbsp;</p>
<p><span style="font-size: medium;"><strong>Dip your fingers in some Chocolatey</strong></span></p>
<p>Chocolatey is a <a href="http://chocolatey.org">community-run </a>package management system that is tailored towards simplifying the installation of mostly developer/devops/itpro software. OneGet has a rudimentary Chocolatey-compatible package provider written for it.&nbsp;</p>
<p>Once you've bootstrapped it, you can find some packages to install using the <strong><span style="font-family: 'courier new', courier;">find-package</span></strong> cmdlet:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/56/00/6253.cap7.PNG" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-56-00/6253.cap7.PNG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/56/00/6253.cap7.PNG" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-56-00/6253.cap7.PNG" alt="" border="0" /></a></p>
<p>and installation is a snap:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/56/00/5710.cap8.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-56-00/5710.cap8.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/56/00/5710.cap8.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-56-00/5710.cap8.png" alt="" border="0" /></a></p>
<div>&nbsp;</div>
<div><span style="text-decoration: underline;"><span style="font-size: large;"><strong><a name="Note"></a>IMPORTANT NOTE:</strong></span></span></div>
<div><strong></strong>The current implementation of the chocolatey provider requires you to set the execution policy to unrestricted:</div>
<div><span style="background-color: #ffff99;"><em><strong>Don't use this if you're not comfortable with changing the PowerShell execution policy and what that means.</strong></em></span></div>
<div><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/56/00/4540.cap9.PNG" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-56-00/4540.cap9.PNG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/56/00/4540.cap9.PNG" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-56-00/4540.cap9.PNG" alt="" border="0" /></a></div>
<div>This will be fixed soon.</div>
<p><span style="font-size: medium;"><strong>Movin' along...</strong></span></p>
<p>I know that this has been the briefest of posts on OneGet, but I figured it was better to start the ball rollin', spill some beans and y'all can keep watchin' as I post more updates.</p>
<p>If you want to follow close along as this is being developed, follow me on Twitter: <a href="https://twitter.com/fearthecowboy" target="_blank">@FearTheCowboy</a></p>
</div>]]></content:encoded>
    </item>
    <item>
      <title>My little secret : Windows PowerShell OneGet</title>
      <link>https://docs.microsoft.com/archive/blogs/garretts/my-little-secret-windows-powershell-oneget</link>
      <pubDate>Tue, 01 Apr 2014 17:44:00 GMT</pubDate>
      <dc:creator><![CDATA[Garrett Serack, MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/garretts/2014/04/01/my-little-secret-windows-powershell-oneget/</guid>
      <description><![CDATA[This week, at BUILD, Microsoft will be showing previews of a few technologies that we&rsquo;ve been...]]></description>
      <content:encoded><![CDATA[<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span>This week, at BUILD, Microsoft will be showing previews of a few technologies that we&rsquo;ve been working on.&nbsp; Simultaneously, we will be releasing a preview of the next version of WMF (Windows Management Frameworks -- where PowerShell comes from!) on the download center (<a href="http://www.microsoft.com/en-us/download/details.aspx?id=42316">get the WMF 5.0 Preview</a>). &nbsp;</span></span></div>
<div>&nbsp;</div>
<div>I've been squirreled away working on a new project which is shipping as part of PowerShell -- <strong>OneGet</strong></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span>OneGet is a unified interface to package management systems and aims to make Software Discovery, Installation and Inventory (SDII) work via a common set of cmdlets (and eventually a set of APIs). Regardless of the installation technology underneath, users can use these common cmdlets to install/uninstall packages, add/remove/query package repositories, and query a system for the software installed. Included in this CTP <strong><em>is a prototype implementation of a Chocolatey-compatible package manager</em></strong> that can <em>install existing Chocolatey packages</em>.</span></span></div>
<div>&nbsp;</div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;">Keep in mind this is a CTP, and things may be a bit rough around the edges. As we move forward we&rsquo;ll provide more details around our future plans, including how to write plugins to let other package managers work through the same interface. &nbsp;<br />&nbsp;</span></div>
<div>While the source code isn't yet available, we've started <a title="OneGet on CodePlex" href="http://oneget.codeplex.com">a project on Codeplex</a> where you can at least file bugs and we can start filling in the documentation...&nbsp;</div>
<div><em><strong>Some Quick Examples:</strong></em></div>
<div><hr />
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>PS C:\</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>&gt;</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: #00007f; font-family: Consolas; font-size: x-small;"><span><strong>get</strong></span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-</strong></span></span><span style="color: #00007f; font-family: Consolas; font-size: x-small;"><span><strong>command</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-</strong></span></span><span style="color: #00007f; font-family: Consolas; font-size: x-small;"><span><strong>Module</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: #a000a0; font-family: Consolas; font-size: x-small;"><span><strong>OneGet</strong></span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>CommandType</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Name</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>ModuleName</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-----------</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>----</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>----------</strong></span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Cmdlet</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Add</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-</strong></span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>PackageSource</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>OneGet</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Cmdlet</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Find</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-</strong></span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Package</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>OneGet</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Cmdlet</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Get</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-</strong></span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Package</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>OneGet</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Cmdlet</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Get</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-</strong></span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>PackageSource</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>OneGet</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Cmdlet</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Install</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-</strong></span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Package</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>OneGet</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Cmdlet</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Remove</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-</strong></span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>PackageSource</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>OneGet</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Cmdlet</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Uninstall</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-</strong></span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Package</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>OneGet</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: #007f00; font-family: Consolas; font-size: x-small;"><span># get a list of registered package sources</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>PS C:\</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>&gt;</strong></span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: #00007f; font-family: Consolas; font-size: x-small;"><span><strong>Get-PackageSource</strong></span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Name</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Location</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Provider</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>IsTrusted</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>----</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>--------</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>--------</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp; &nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>---------</strong></span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>chocolatey</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;</span></span><a href="http://chocolatey.org/api/v2" target="_blank"><span style="font-family: Consolas; font-size: x-small;"><span>http:/<strong>/</strong>chocolatey<strong>.</strong>org<strong>/</strong>api<strong>/</strong>v2</span></span></a><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Chocolatey</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>False</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: #007f00; font-family: Consolas; font-size: x-small;"><span># Let's go look for some packages.</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>PS C:\</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>&gt;</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: #00007f; font-family: Consolas; font-size: x-small;"><span><strong>find-package</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-</strong></span></span><span style="color: #00007f; font-family: Consolas; font-size: x-small;"><span><strong>Name</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: #a000a0; font-family: Consolas; font-size: x-small;"><span><strong>zoomit</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-</strong></span></span><span style="color: #00007f; font-family: Consolas; font-size: x-small;"><span><strong>AllVersions</strong></span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Name</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Version</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Status</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Source</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Summary</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>----</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-------</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>------</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>------</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-------</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>zoomit</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: #007f7f; font-family: Consolas; font-size: x-small;"><span>4.42</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Available</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>chocolatey</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp; &nbsp; &nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>ZoomIt</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>is</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>a&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>screen</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>zoom and...</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>zoomit</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: #007f7f; font-family: Consolas; font-size: x-small;"><span>4.5</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Available</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp; &nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>chocolatey</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>ZoomIt</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>is</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>a</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>screen</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>zoom</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>and...</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span> zoomit</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp; &nbsp; &nbsp; &nbsp;</span></span><span style="color: #007f7f; font-family: Consolas; font-size: x-small;"><span>4.50</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Available</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>chocolatey</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>ZoomIt</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>is</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>a</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>screen</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>zoom</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>and...</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: #007f00; font-family: Consolas; font-size: x-small;"><span># Install a package</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>PS C:\</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>&gt;</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: #00007f; font-family: Consolas; font-size: x-small;"><span><strong>Install-Package</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-</strong></span></span><span style="color: #00007f; font-family: Consolas; font-size: x-small;"><span><strong>name</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: #a000a0; font-family: Consolas; font-size: x-small;"><span><strong>zoomit</strong></span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Name</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Version</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Status</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Source</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Summary</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>----</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-------</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>------</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>------</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-------</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>zoomit</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: #007f7f; font-family: Consolas; font-size: x-small;"><span>4.50</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Installed</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>chocolatey</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>ZoomIt</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>is</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>a</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>screen</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>zoom and...</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: #007f00; font-family: Consolas; font-size: x-small;"><span># Show what packages are installed</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>PS</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>C</span></span><span style="color: #c0a030; font-family: Consolas; font-size: x-small;"><span>:</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>\</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>&gt;</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: #00007f; font-family: Consolas; font-size: x-small;"><span><strong>Get-Package</strong></span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Name</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Version</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Status</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Source</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Summary</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>----</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-------</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>------</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>------</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-------</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>cyg</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-</strong></span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>get</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: #007f7f; font-family: Consolas; font-size: x-small;"><span>1.1</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>.</strong></span></span><span style="color: #007f7f; font-family: Consolas; font-size: x-small;"><span>1</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Installed</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Local</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>File</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>A</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>utility</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>to</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>install</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Cygwin...</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>zoomit</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: #007f7f; font-family: Consolas; font-size: x-small;"><span>4.50</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Installed</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Local</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>File</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>ZoomIt</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>is</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>a</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>screen</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>zoom</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>and...</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: #007f00; font-family: Consolas; font-size: x-small;"><span># another way to show it.</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>PS</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>C</span></span><span style="color: #c0a030; font-family: Consolas; font-size: x-small;"><span>:</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>\</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>&gt;</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: #00007f; font-family: Consolas; font-size: x-small;"><span><strong>get-package</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>|</strong></span></span><span style="color: #00007f; font-family: Consolas; font-size: x-small;"><span><strong>format-table</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: #a000a0; font-family: Consolas; font-size: x-small;"><span><strong>status,name,Version</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: #00007f; font-family: Consolas; font-size: x-small;"><span><strong>-AutoSize</strong></span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Status</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Name</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Version</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>------</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>----</strong></span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-------</strong></span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Installed</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>cyg</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>-</strong></span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>get</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: #007f7f; font-family: Consolas; font-size: x-small;"><span>1.1</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span><strong>.</strong></span></span><span style="color: #007f7f; font-family: Consolas; font-size: x-small;"><span>1</span></span></span></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>Installed</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span><span style="color: black; font-family: Consolas; font-size: x-small;"><span>zoomit</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;&nbsp;</span></span><span style="color: #007f7f; font-family: Consolas; font-size: x-small;"><span>4.50</span></span><span style="color: gray; font-family: Consolas; font-size: x-small;"><span>&nbsp;</span></span></span></span></div>
</div>]]></content:encoded>
    </item>
    <item>
      <title>What do I think of Windows 8?</title>
      <link>https://docs.microsoft.com/archive/blogs/garretts/what-do-i-think-of-windows-8</link>
      <pubDate>Thu, 01 Mar 2012 17:20:23 GMT</pubDate>
      <dc:creator><![CDATA[Garrett Serack, MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/garretts/2012/03/01/what-do-i-think-of-windows-8/</guid>
      <description><![CDATA[After playing with Windows8 a bunch yesterday, all I have is a scene from &#8220;The Princess...]]></description>
      <content:encoded><![CDATA[After playing with Windows8 a bunch yesterday, all I have is a scene from &#8220;The Princess Bride&#8221; running thru my head: Inigo Montoya: MY NAME IS INIGO MONTOYA! YOU KILLED MY START MENU! PREPARE TO DIE! [Inigo corners Count Rugen, knocks his sword aside, and slashes his cheek, giving him a scar just like Inigo's] [...]]]></content:encoded>
    </item>
    <item>
      <title>Fixing WebRequest’s desire to throw exceptions instead of returning status</title>
      <link>https://docs.microsoft.com/archive/blogs/garretts/fixing-webrequests-desire-to-throw-exceptions-instead-of-returning-status</link>
      <pubDate>Fri, 02 Sep 2011 17:30:19 GMT</pubDate>
      <dc:creator><![CDATA[Garrett Serack, MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/garretts/2011/09/02/fixing-webrequests-desire-to-throw-exceptions-instead-of-returning-status/</guid>
      <description><![CDATA[My pappy always used to tell me &#8220;There are three kinds of men: The ones that learn by reading....]]></description>
      <content:encoded><![CDATA[My pappy always used to tell me &#8220;There are three kinds of men: The ones that learn by reading. The few who learn by observation. The rest of &#8216;em have to pee on the electric fence.&#8221; &#8230; somedays, I&#8217;m surprised how often I get to pee on the damn fence. So, here I am writing [...]]]></content:encoded>
    </item>
    <item>
      <title>A new full-time member for CoApp</title>
      <link>https://docs.microsoft.com/archive/blogs/garretts/a-new-full-time-member-for-coapp</link>
      <pubDate>Thu, 02 Jun 2011 08:31:51 GMT</pubDate>
      <dc:creator><![CDATA[Garrett Serack, MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/garretts/2011/06/02/a-new-full-time-member-for-coapp/</guid>
      <description><![CDATA[I’d like to introduce a new member of our team; Tim Rogers. &#160; Tim is a new full time employee...]]></description>
      <content:encoded><![CDATA[I’d like to introduce a new member of our team; Tim Rogers. &#160; Tim is a new full time employee at Microsoft who started this week, and as he just found out yesterday (his first day in the office), is going to be working as a full-time test resource for CoApp. &#160; Tim has a [...]]]></content:encoded>
    </item>
    <item>
      <title>Shallow-forking a project</title>
      <link>https://docs.microsoft.com/archive/blogs/garretts/shallow-forking-a-project</link>
      <pubDate>Mon, 09 May 2011 12:19:06 GMT</pubDate>
      <dc:creator><![CDATA[Garrett Serack, MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/garretts/2011/05/09/shallow-forking-a-project/</guid>
      <description><![CDATA[&#160; We’re nearing the point where we’re able to take open source projects and produce happy-shiny...]]></description>
      <content:encoded><![CDATA[&#160; We’re nearing the point where we’re able to take open source projects and produce happy-shiny packages for them—uh yeah, nearing.&#160; It’s gonna be a couple more weeks shaking out the tools that generate new Visual Studio project files for a given project and wire all that stuff up. The good news though, is that [...]]]></content:encoded>
    </item>
  </channel>
</rss>