My Opinion on Open Source PowerShell and what this means to the PowerShell community

Ryan YatesConsultant

Just a person in their 30's doing things in Tech & trying to break the stigma's around talking about Mental Health

If you’ve been under a rock the last few days (or for days/weeks/months depending on when your reading this blog post) then you would have missed that on Thursday August 18th 2016 -  Microsoft Open Sourced PowerShell!

Not only did they Open Source PowerShell they have released a Cross-Platform alpha version that can be installed on a variety of Linux Distros as well as a Mac OSX version.

You can read about it in more detail from the Jeffery Snover himself from over at https://azure.microsoft.com/en-us/blog/powershell-is-open-sourced-and-is-available-on-linux/

You can also read the PowerShell Teams blog (which has some great links too) on this at https://blogs.msdn.microsoft.com/powershell/2016/08/18/powershell-on-linux-and-open-source-2/

But what does this really mean to you, me, & all the other PowerSheller’s across the globe?

Firstly

  • Well done – you picked to learn a technology, which celebrates its 10 year old anniversary later this year (November 14th) and that was considered a “Windows only” tool and now it’s not this now means that you could start working with other platforms – increasing your value to your employer *cough maybe its time for that payrise*
  • PowerShell is likely to start to change even quicker (I’m speculating past the Server 2016 launch here)
  • If you don’t want to get involved and help with building PowerShell v6 (& fixing any bugs you find) then you can let this announcement pass you by a little and await an actual real release in the future

However if you do

  • You need to start learning some more new things and not just start learning PowerShell as there is now an even bigger ecosystem of tools that you need to learn to be really efficient and successful in IT going forward.
  • You need to learn how to work with source control and I will recommend git like I do to every one else. Check out https://help.github.com/articles/good-resources-for-learning-git-and-github/ for some resources but a google search will get you some others too.
  • You need to learn how to work with Github Issues and search and be able to file an issue that has enough information to be useful for the person reading it. Some of this is helped by Issue Templates but these don’t always capture all the possible required information so be prepared to be asked for more info.
  • You need to start attending User Groups & Conferences and train for your IT Future as the world of IT is undergoing a massive change and this isn’t going to stop anytime soon and if anything the rate of change is going to start getting quicker and quicker.

So where are we right now?

Currently the release of PowerShell to Github is an Alpha release – this means that it is not supported in any case for any production uses at all! Basically its out there for you to “kick the tyres” so to speak.

It also means that at least for now and the near future you may think that you have 2 places to raise issues. Github & UserVoice.

However The Guidance from the PowerShell team is this at present

Customers and Enterprise users should still raise these on UserVoice as this is still where issues relating to the PowerShell Engine that are contained within Windows Client and Server Systems including WMF releases should be raised.

Basically this means for issues that relate to anything PowerShell v5.1 and below should be raised on UserVoice.

My understanding of this is because these versions of PowerShell haven’t been released to Github (we have the changes that have occurred since PowerShell 5.1 was rolled up for WMF 5.1) so changes to them can only be done by the PowerShell team – plus we do need to remember that Server 2016 is still yet to RTM and the Source code for that will have been sealed in preparation for launch. So any fixes to the PowerShell engine included in Server 2016 or the RTM version of WMF 5.1 will come either by hotfixes or a recommendation to upgrade to a stable version of PowerShell 6 once released as we currently have alpha releases available on GitHub.

However For Developers and those that feel comfortable to do so then they can raise issues on Github.

This is where current guidance from the PowerShell team could easily bring a little confusion to some but we have to remember that this is new ground for the PowerShell Team so they will need to have some time to sort out how they work with the different streams. It is likely (& I’m just speculating here) that the team has an internal consolidated issue tracker that tracks UserVoice and all of the PowerShell Repo’s, however be on the look out for a blog post from the PowerShell team at https://blogs.msdn.microsoft.com/powershell in the next few weeks where they will be detailing how they interact with the community across these mediums.

So What does the future hold for PowerShell?

Over the course of the upcoming months we will see a number of further alpha releases as well as a stronger emphasis on making use of the PowerShell RFC Process for any changes to how the PowerShell Engine works. The PowerShell RFC Process can be found at https://github.com/PowerShell/PowerShell-RFC and there are a few new additions to this already from outside of the PowerShell Team.

But the interesting thing from this point on is that there will be more and more of the PowerShell Eco System open sourced including 1 module that I’ve been waiting to tear apart – PowerShellGet – which Jason Shirk confirmed is planned to happen in the future in this Issue https://github.com/PowerShell/PowerShell/issues/1979 – It is also worth noting that a number of the modules that we have inbox on Windows 10 Machines are not written by the PowerShell team so there is likely a chance that the module, cmdlet or function that you have ideas to improve (New-Item is one I’d like to see be a bit more intelligent with folder creation) may not be open sourced – however I think it is a matter of time before we see there be demand for these to be open sourced as well and there are already calls for other modules from other teams to be Open Sourced including the SQLServer module (was SQLPS) which shows where the ecosystem has been going for some time now.

Overall I’m incredibly proud to be working with such an amazing product that now has opened even more doors to me than what it had available to it before. You never know what the future will hold but now I have skill that can be used cross platform that means to me that the possibilities in the upcoming months & years of my IT Career are even more prosperous than they were last week.

If you haven’t yet picked up PowerShell I would seriously urge you to do so!

If your struggling on how to pick up this language and understand the benefits that it can bring you and are interested in learning more, here is a number of resources that you may find useful.

I’m looking forward to seeing how the future pans out with xplat PowerShell – what are you looking forward to the most with this?