New features in MyGet Enterprise

The MyGet Enterprise plan was introduced a couple of months ago and has had several management options since then. After logging in to your MyGet Enterprise instance the main menu displays a Dashboard link which gives the plan administrator access to a management dashboard.

MyGet Enterprise administration

In the management dashboard, MyGet Enterprise administrators can view statistics on their instance (number of feeds, storage usage, some aggregates on consumption and so on) as well as manage several options for their instance such as managing users, feeds, Google Analytics integration, SymbolSource integration, SMTP settings and quota management. With the 1.6 release of MyGet, we’ve added several other options to this enterprise management dashboard. And of course, your MyGet Enterprise plan also contains all of the enhancements that were introduced on the public MyGet website as well (such as retention policies, feed activity logs, build services, download as ZIP and much more).

Block e-mail addresses not belonging to the organization

Enterprise users not using Active Directory integration but instead relying on social identity providers like Microsoft Account or Google Account previously had no option for blocking users not belonging to their organization from creating an account on their MyGet Enterprise instance. Starting today, domain names for e-mail addresses can be whitelisted or blacklisted.

image

If your enterprise has Google Account e-mail addresses which all end in “@acmecorp.com", adding a whitelist entry for “acmecorp.com” will allow only those users to create an account on your MyGet Enterprise plan. Multiple entries can be entered, separated by a semicolon.

Users can be made administrator

Before our 1.6 release, multiple administrators per MyGet Enterprise instance were already a possibility but could only be managed by sending our support people an e-mail. Because this is a common task, we now made it possible for existing MyGet Enterprise administrators to grant or revoke administration privileges to users in their organization.

image

User removal

What happens if a user for a MyGet Enterprise instance leaves the organization? With our new release, users can be deleted from a MyGet Enterprise instance by clicking the Delete button on the user management pages.

image

By default, the user and its feeds will be removed. This is not always something you will want to do: what if that user is the owner of a production MyGet feed? The delete user dialog allows you to transfer feed ownership for all of the user’s feed to another user in your organization.

More information about our MyGet Enterprise plan can be found on the MyGet Enterprise plan page.

Happy packaging!

Author: Maarten Balliauw on 01 Mar 2013

Support for feed names with dashes and underscores

An often requested feature for MyGet was support for feed names with dashes and/or underscores. With our 1.6 release we introduce just this: support for feed names with – and _ in their name.

Feed names with dashes and underscores

Many people asked us for this feature. The main scenario these users referred to was having feeds for development and production, having feeds per branch and so on with a recognizable prefix.

Since we deployed it in our staging environment, we’ve been using it continuously ourselves. Every support request that comes in and requires investigation is prefixed with “support-“. When we develop a new feature and test it on a given feed, we typically prefix those feeds with “dev-". I even saw a “chuck-norris-was-here” feed appearing during development. We hope you like this as much as we do!

Happy packaging!

Author: Maarten Balliauw on 27 Feb 2013

Release notes for MyGet 1.6

Many users have asked for us to provide release notes for everything we put online. Since that’s a great idea we’ll start doing this with the current 1.6 release which has been deployed earlier this week. But before we dive into that, let’s give you some hints about our development process and versioning system.

Our development process and versioning system

If you look at the footer of our website, you’ll have seen the following for the past few weeks already:

image

That’s right: we’ve been on (parts of) version 1.6.x for the past few weeks already. The reason for that is we version after our sprints and do continuous deployment of most things we work on. This means that when we start deploying features for our v1.7.x sprint, we’ll already update the version number in the footer to that number yet we’ll provide release notes only at the end of our sprint. So while today, you may already see v1.7.x mentioned in our footer because we've already deployed some features from that sprint, the following release notes are valid at time of writing this post.

Release notes for MyGet 1.6

MyGet 1.6 was released on February 25, 2013.

Features

MyGet

  • Minimum length for usernames has been decreased to 3 characters (previously 6). Shorter usernames are now possible.
  • A new menu item under feed: "Feed Settings" will contain settings specific to how MyGet handles packages for a given feed.
  • Feed settings contains an option to enable/disable overwriting of packages on the feed
  • Feed settings contains an option to enable/disable validation on the package version number with regards to Semantic Versioning
  • Dashes and underscores in feed names are supported. Feeds can be named foo-prod for example.
  • Download feed as ZIP.
  • Package Sources are out of beta.
  • API key in package source configuration is now masked

MyGet Enterprise

  • Block e-mail addresses not belonging to the organization.
  • Users can be made administrator.
  • User removal (with the option of transfering their resources to another user).

MyGet Build Services

  • Copy build log to clipboard.
  • Specify build configuration and platform (Release/Debug and Any CPU/Mixed Platforms/...)
  • Support incremental build numbers.
  • Support configuring the build number using a template. Register version number as an environment variable.
  • Support building Windows Phone 8 projects.
  • Hotlink commit on GitHub/BitBucket from the build list.
  • Refresh build status automatically.
  • Support creating tools packages.
  • Hanging build detection.
  • Install psake on the build servers.

Bug Fixes

  • Copy to clipboard on feed details page did not work in Chrome version 24.0.1312.57 and up.
  • Feed statistics are not updated in some situations.
  • NuGet Package Explorer always shows prerelease packages in the feed list.
  • Build Services: building from protected SVN repositories isn't always working.
  • Build Services: GitHub API only returns 30 repositories.

Happy packaging!

Author: Maarten Balliauw on 25 Feb 2013

We were down...

On 23 February 2013, we’ve been down for 8 hours. We received a monitoring alert (and some e-mails and tweets as well) at around 9:50 PM (CET) notifying us of this event. After looking into it, we discovered there was not much to do about this besides sit and wait… We do wish to apologize and clarify the events for this outage (our first since July 2012).

Windows Azure Storage outageThe root cause of this outage was a global outage of Windows Azure Storage. This service is one of the code building blocks of Windows Azure and has never in the past failed (that’s 4 years of no issues). This storage system works based on the HTTP protocol and has both http and https endpoints. Most applications built on top of Windows Azure, including the platform’s own building blocks, are using the https endpoints to prevent transport-level attacks, including MyGet. Unfortunately, most clusters of Windows Azure Storage were running an expired SSL certificate on this https endpoint, the reason for this global outage of Windows Azure and every application hosted on the platform, including MyGet and the official NuGet package source and every service directly depending on www.nuget.org.

MyGet runs in the Windows Azure Europe West region (Amsterdam), with a cold disaster recovery location in the Windows Azure Europe North region (Dublin). We can fail over to this location within hours if compute or storage in the main datacenter location fail. In case of a serious outage, we can restore a disaster recovery copy of our services in any Windows Azure region around the globe. Unfortunately, there’s nothing much we can do in case of a global outage…

Our status page can always be found at http://status.myget.org. For reference, here are our uptime numbers for the past year.

Name

Uptime
(avg.: 99.79%)

February 2013

98,44%

January 2013

100%

December 2012

99,99%

November 2012

99,94%

October 2012

99,99%

September 2012

99,92%

August 2012

99,98%

July 2012

99,56%

June 2012

99,94%

May 2012

100%

April 2012

99,69%

March 2012

99,99%

 

Again, we do apologize for the inconvenience caused and are debating around possible fallback scenarios in case a severe platform outage like this occurs again.

Happy packaging!

Author: Maarten Balliauw on 24 Feb 2013

Introducing activity streams

In a previous post we highlighted the new user profile page and briefly mentioned we are working on activity streams. If you look at the Activity tab of your profile, you'll still see that it is coming soon.

We are still working on the UI for this part, but before we introduce it to the masses we need to take care of a few more things. No worries, a clear communication about these changes will be done upfront, and we obviously will keep private feed activity secured. A lot of stuff is happening under the hood, really, in order for this feature to be rolled out smoothly. Our incremental and short release cycles are starting to pay off (or you'd end up with blank activity streams upon release).

However, you might notice that we already built an initial UI for the feed activity. Simply take a look at your feed details page and check the Feed Activity tab on the left menu.

We are working hard on providing you with historic information on packages and feeds throughout the site so expect more to come soon. We believe this will greatly improve the experience of both package publishers as consumers, as well as those interested to keep up with what's happening on the feed or with a specific package. There's some great stuff on some of the feeds in our Gallery and we'd like to give you the opportunity to get notified of the package repository events you want to track.

The below screenshot also gives you an idea of the kind of activity you might be interested in: adding or deleting packages, unlisting packages, pushing packages to an upstream package source (e.g. to NuGet.org), etc. The particular feed activity you can see below is the result of how we push the GoogleAnalyticsTracker package to NuGet.org.

Happy New Year & Happy Packaging!

Author: Maarten Balliauw on 07 Jan 2013

Cloning feeds is now supported

It happens that for some reason you require a full copy of an existing feed. You may want to do some upgrades. Maybe you just require your development feed to be copied as a production feed or vice-versa. Our latest deployment provides you with a fresh feature: cloning feeds.

From the feed list (www.myget.org/feed/list), simply click the “Clone” button next to a feed. Note that this will only be shown for feeds that are owned by you.

image

After a couple of minutes, your feed clone will be up and running.

image

Happy packaging!

Author: Maarten Balliauw on 25 Dec 2012

Introducing a new profile page

Our latest service deployment features a fresh user profile page. You’ll be able to see everything you need by just clicking the Profile link. You’ll be able to see your feeds, linked identity providers, payment history and more.

image

You can also look at other user profiles. Simply browse to the MyGet gallery and you’ll be able to find out who’s behind a given public feed.

image

Yes, you’re seeing what we’re up to: in one of our next releases, we’ll be providing you with activity streams that give you an overview of what’s happening on a given feed or by a specific user.

Happy packaging!

Author: Maarten Balliauw on 18 Dec 2012

Package retention policies

So you’re pushing your packages from your build server onto MyGet. That must result into a large number of packages! Or you want to keep only the latest 2 versions of a given package? Have no fear, package retention policies are here!

Under your feed, navigate to the Package Retention tab.

image

By default, we keep all package versions available on your feed. If you would like to do some automated housekeeping, you can now specify the number of stable and prerelease packages to keep on your feed. Whenever a package is added to your feed, we'll make sure these retention rules are respected.

Happy packaging!

Author: Maarten Balliauw on 18 Dec 2012