Build services: patching AssemblyVersion attribute

It already was possible to work with true incremental build numbers for packages produced using Build Services through the build source settings. A build counter starts with zero and increments with 1 on every build. You can also specify a version format (use '{0}' as a placeholder for the build counter) which will be generated during build.

Build Services recently got an update where the AssemblyVersion attribute can be patched with this version number. This can be enabled by checking the Automatically patch AssemblyInfo option in the build source configuration.

Patching AssemblyVersion during build

When enabled, MyGet Build Services will patch AssemblyVersion attributes in C# and VB.NET code. We are using Roslyn as the engine for parsing and updating attribute values. This approach is much more reliable than the regular expression based approaches most build systems use.

Two attributes will be patched: AssemblyVersion and AssemblyInformationalVersion.

  • The patched AssemblyVersion version is always in the form major.minor.patch. A package version 1.0.0 as well as 1.0.0-pre will yield an AssemblyVersion of 1.0.0.
  • The patched AssemblyInformationalVersion version supports semantic versioning and can be in the form major.minor.patch as well as major.minor.patch-prerelease.

Patching of these attributes will occur whenever the feature is enabled, no matter which build process is used (solution, project or build.bat).

Happy packaging!

Author: Maarten Balliauw on 19 Jun 2013

Switching to full HTTPS on July 1st, 2013

Important: a change is coming to URLs of MyGet. Please read through this post carefully as there may be some actions required on your side.

Protecting the security and privacy of our users is one of our most important tasks at MyGet. The fact that you can safely store your intellectual property on our servers is the best proof of that.

Currently, MyGet supports both http as well as https to communicate with our applications. To further improve our security, we're removing http access in the near future and will be switching to https only by July 1st, 2013, using a 2048-bit key certificate. By using only https, we can guarantee a secure communication channel between you and our servers.

Unfortunately, this change may require some action on your side. We will be discontinuing the http://www.myget.org URL in favor of https://www.myget.org. This means:

  • Your developers and/or clients may have to update their configuration
  • Your continuous integration servers may have to be reconfigured to make use of this new URL

This transition will happen in the following stages:

Actions required on your end:

  • Before July 1st - All links to MyGet have to be migrated to the https://www.myget.org URL if you are not on the Enterprise plan.

To help in updating feed URLs on developer machines, you can make use of package source discovery. https://docs.myget.org/docs/reference/package-source-discovery
In short, every developer can issue the following commands in his/her Visual Studio Package Manager Console to update feed URLs:

Install-Package DiscoverPackageSources
Discover-PackageSources -Url https://www.myget.org/Discovery/Feed/


We are confident this one-time change will make the entire MyGet experience even more secure.

Do not hesitate to contact us if you have additional questions.

Best regards,
the MyGet team

Author: Maarten Balliauw on 18 Jun 2013

A Glimpse into our toolbox

Every now and then, we like to give you some insight in our development and the tools we use. This time, let’s have a look at Glimpse. Glimpse gathers and presents detailed diagnostic information about the behavior and execution of your web application. It’s like Firebug, but for the server.

Glimpse can be installed by installing the Glimpse.Mvc4 package. Different packages exist for different frameworks. Once installed, we can navigate to the /glimpse.axd file to enable/disable Glimpse on our development machine. The links on this page are also bookmarklets which can be used to turn on/off Glimpse. Once enabled, here’s what we see: a nice overview of important timings for our current page.

Glimpse toolbar

We are using Glimpse on our development machines to get some simple diagnostics at a glance. And the fun fact of the day: Glimpse uses MyGet to publish nightlies. Interested in what’s going on with that project? Add their nightlies feed to Visual Studio through the Package Manager Console:

Install-Package DiscoverPackageSources
Discover-PackageSources -Url "https://www.myget.org/gallery/glimpsenightly"

 

From then on, you can add Glimpse from their nightlies feed. We’ve used these nightlies in the past weeks and discovered their new HUD (head-up-display) feature in there as well as a new look-and-feel for the Glimpse client.

We can click the Glimpse toolbar and explore our request. For example, we can fetch a list of all actions and attributes that are being executed in ASP.NET MVC:

ASP.NET MVC Pipeline

A complete timeline of our requests is available as well:

Glimpse request timeline

We are also able to intercept and debug AJAX requests. If you are using Entity Framework or ADO.NET, expect to see your queries in here. If you’re developing mobile web applications, expect to be able to intercept remote calls as well. And the best thing: this is open source!

Happy packaging! And happy Glimpsing!

Author: Maarten Balliauw on 11 Jun 2013

Build services: you decide if symbols are pushed or not

By default, when MyGet Build Services creates a build and produces packages, symbols packages (if any) are pushed to SymbolSource.org. In some scenarios, it may make sense to not push symbols packages, for example when creating early versions of a package or during prerelease phases.

Since our latest release, it’s now possible to change this default behavior. When creating or editing a build source, the Push symbols to symbol server option specifies if symbols should be pushed or not.

Configure symbol server behaviour in build services

Happy packaging!

Author: Maarten Balliauw on 29 May 2013

Automatically trigger a MyGet build using an HTTP POST hook

In addition to manually triggering a build within MyGet, it’s also possible to automatically trigger a build every time code is committed to your source control repository, by making use of HTTP POST hooks.

Once you have fully configured a build source for your MyGet feed, you will be able to manually trigger a build whenever you like. However, if you are trying to adopt the Continuous Integration Software Development Practice, then automatically triggering a MyGet Build whenever you commit some code to source control is one of the first steps in doing this.

The HTTP POST hook URL is a mechanism to allow your Source Code Repository to notify MyGet Build Services (via an HTTP POST to the given URL) when a commit has occurred. As soon as this has happened, a new build will automatically be triggered.

MyGet user gep13 has written a detailed tutorial on working with Build Services and HTTP POST hooks on our documentation website.

Happy packaging!

Author: Maarten Balliauw on 29 May 2013

Build services: support for build.cmd and build.ps1

Using MyGet Build Services, you have the opportunity to control exactly how your project gets built. MyGet Build Services will scan the contents of your source control and look for a file it can work with.

In short, the following files are searched for (in order of precedence):

  • build.bat, build.cmd or build.ps1
  • MyGet.sln
  • Any other *.sln file
  • *.csproj or *.vbproj
  • *.nuspec

Build.bat and build.cmd can be simple batch files which perform builds and packaging. Build.ps1 can be a PowerShell script which will be invoked. Our Build Services overview blog post provides more detail on environment variables and tools that can be used.

Happy packaging!

Author: Maarten Balliauw on 23 May 2013

New documentation site available

We’re proud to have our new documentation site online! This new documentation site can be found at docs.myget.org and will host our FAQ, articles around specific features, reference documentation and so on.

Our documentation is open source and accepting pull requests! To contribute to the docs, just clone our repository and work on the Markdown files in the Docs folder. For more details on the process, read our detailed instructions.

For each accepted Pull Request that closes an issue, you can claim a free one month extension of your current plan. If you're on the free plan you can claim a voucher for a free month on the Starter plan.

Special thanks goes out to gep13, an enthusiast MyGet user who has already contributed several documentation pages.

New documentation website

 

 

 

 

Happy packaging!

Author: Maarten Balliauw on 21 May 2013

New features in MyGet 1.7

We’re happy to announce we’ve completed another sprint. The main focus for this sprint was to start a redesign of our user experience. Next to that, new features have been introduced as well. Let’s have a look at what has changed and which cheese we moved.

A complete change log can be found on our new documentation site.

First steps in redesigning the MyGet experience

One of the first things you will notice when logging in to MyGet is that we’ve drastically changed the look and feel of the homepage. First of all, we decided the header we had earlier was too high and didn’t add much value. We’ve now condensed the header when authenticated. Your gravatar image will be shown and when hovering your username, a list of all feeds you have access to will be shown.

MyGet new design

The initial view you get is an activity stream. This provides the latest information about your feeds as well as the packages on it. On the right side, we’ve added quick navigation to all your feeds.

The feed details page now features a couple of additional buttons: you can clone a feed as well as delete a feed from that page.

Cheese has moved

We’re planning on further improvements in our next sprint!

New features and improvements

The following new features have been deployed:

In the coming days, we will be blogging about these features in more detail.

The page load speed of MyGet has improved as well. We’ve been working on optimizing file sizes, compression and are using CSS sprites for many of our images.

We hope you like this new drop. Let us know your thoughts in the comments below!

Happy packaging!

Author: Maarten Balliauw on 17 May 2013