* Stifle progress output in build.psm1 for some operations
Modify test failure presentation to use platform available XML methods
* Add timeout support for returning runtime parsing errors
Some of the language/parser tests have been hanging in a non-reproducable manner which
causes the CI system to invalidate the entire run. This change adds support for timeout
which will fail a test if it runs to long, rather than invalidate the entire run.
current behavior is still supported, and is not done in a new session:
PS> get-runtimeerror -src '1/'
At line:1 char:3
+ 1/
+ ~
You must provide a value expression following the '/' operator.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ExpectedValueExpression
Adding a timeout will do the operation in a async powershell session
PS> get-runtimeerror -src '1/' -timeout 5
You must provide a value expression following the '/' operator.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ExpectedValueExpression
If the operation takes longer than the supplied timeout, a timeout error will be returned
PS> get-runtimeerror -src 'start-sleep 6' -timeout 2
get-runtimeerror : Operation Timed Out ('start-sleep 6')
At line:1 char:1
+ get-runtimeerror -src 'start-sleep 6' -timeout 2
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Get-RuntimeError
* Modify native linux command tests to skip on Windows and pending on Mac
* remove verbose and progress output from help tests
* Be sure that Feature Counter tests only run on Windows
Also, only call add-type in CounterTestHelperFunctions.ps1 if we're going to actually run the tests
* do not run any get-computerinfo tests on non-windows systems
* suppress progress output from PowerShell Get tests
* remove -quiet from API and CRON Builds
Travis watches output from the build to ensure that it hasn't hung
we need to find a balance between too much output and not enough output.
A run which has too much output is killed because it looks like an error loop
A run which has too little output is killed because it looks like a hang
* Remove commented line in Import-Counter.Tests.ps1
Remove extraneous extra line in PowerShellGet.Tests.ps1
* Change `-as "type"` to `-as [type]` in build.psm1
Alter timeout to 10 seconds to be improve chances of not timing out for runtime parser checks
improve logic for counter tests to also skip for IoT
* use the existing function of SkipCounterTests rather than duplicate the logic in import-counter.tests.ps1
* Initial support for Fedora 24
This commit adds initial support for the Fedora distribution,
starting with Fedora 24.
Whereever possible, build tooling for CentOS has been reused.
Until the next release of PowerShell is compiled against .NET 1.1,
the Docker release image uses the CentOS 7 build, but loads
in the CentOS 7 version of `libicu50` via LD_LIBRARY_PATH.
* Update Dockerfile
Fix typos
* Adding windows server names to the windows packages + Misc formatting fix
Misc fixes are:
- Added Get-PackageSemanticVersion function
- Added New-ZipPackage function to separate the Zip packaging code
- Removed ending ';' in hashtable syntax since entries are on new lines
- Standardized the variable name from $Source to $PackageSourcePath for
various packaging functions
- Removed 'return' in the function end to output the variable value
- Added -verbose to Write-Verbose to show the paths of various packages
* update
* Adding windows server names to the windows packages + Misc formatting fix
Misc fixes are:
- Added Get-PackageSemanticVersion function
- Added New-ZipPackage function to separate the Zip packaging code
- Removed ending ';' in hashtable syntax since entries are on new lines
- Standardized the variable name from $Source to $PackageSourcePath for
various packaging functions
- Removed 'return' in the function end to output the variable value
- Added -verbose to Write-Verbose to show the paths of various packages
* update
* Addressing review feedback
* Removed the $PackageVersion variable per review feedback
* Error message fix
* Rebase onto .NET Core 1.1
Modify `Build.psm1` and `project.json` files to use .NET Core 1.1.
.NET Core 1.1 ships with an older dotnet/cli than has currently been used,
so we revert to use case-sensitive directory names for dependencies.
.NET Core 1.1 is a pre-requisite for supporting Fedora 24.
* PSReadLine: Bump major version of PSReadline to 6.0.0-*
* Microsoft.PowerShell.Commands.Utility: Bump major version of Microsoft.CodeAnalysis.Csharp
* Microsoft.PowerShell.SDK: Revert attempt to import netcoreapp1.1 instead of dnxcore
* build.psm1: Restore ability to specify version of dotnet-install.sh
* modify Start-PSPester to accept -Quiet to eliminate Pester output
also modify travis.ps1 to include -Quiet for Pester args to reduce
stdout log size which should hopefully allow daily builds to run
without being cancelled due to too much output
* Add error detail information as part of Test-PSPesterResults
Test-PSPesterResults will now also emit information about the errors
found during a test run rather than just the number of failed tests.
Created a new errorlog function so the output of errors will be red.
- Updated Restore-PSModule function to delete the PSGetModuleInfo.xml so that this file will not be included in the PowerShell release.
- Since PackageManagement module gets installed with PowerShellGet module, removed PackageManagement module name in Restore-PSModule command invocation.
# The first commit's message is:
Changed to PSModuleRestore switch, i.e., by default no PSModule install
# This is the commit message #2:
install PowerShell modules to publish folder as well as one level up
# This is the commit message #3:
removed workaround
* Add OpenCover PS Module to collect code coverage
OpenCover PS Module helps is collecting Code Coverage using the OpenCover
toolset. The module helps in comparing two code coverage runs as well.
* Change OpenCover.psd1 to ASCII
* Fix an error in path for OpenCover
Fixed an error on path for OpenCover. Also used ZipFile class instead of
cmdlet as it might not be available on CI system.
* Convert module to be Powershell v4 compliant
Changed implementation from classes to PSObjects and implemented
Expand-ZipArchive.
* Added CodeCoverage as a configuration to project.json files
Added CodeCoverage as the new configuration for all the project.json
files. When Start-PSBuild is executed with configuration as CodeCoverage,
we change the degubType to 'full' as required by OpenCover toolset.
Also made changes to appveyor.psm1 to build a CodeCoverage package on
daily builds and publish it as a zip.
* Addressed code review comments
Changed from Add-Member to use pscustomobject type accelator. Removed
[gc]::collect.
* Added explicit garbage collection
* Addressed code review comments
- Make sure that the build Start-PSPackage gets is not a code coverage
build
- Add debugType = full for FullCLR
- Remove configurations from PackageManagement files as it is not needed.
- Build CodeCoverage build first in AppVeyor.
* Resolve merge conflict
* Fix indentation
* Fix newline at end of file
* Added command discovery for locating OpenCover.console.exe
Native library also changed from System.Security.Cryptography.Native.dylib
to System.Security.Cryptography.Native.OpenSsl.dylib
See discussion in #2510
* Fixes#2534 by replacing expensive WMI query with Win32 API calls
* fix break on unix build
* added tests for #2535
* although test passed, fixing exception that shows up
* fixed Describe text
* addressing code review feedback
* addressing review feedback to comment on why sleep is needed
added check that test processes are created before we try to kill them
* fixed test to timeout and pending fix for #2561
* Remove crossgen'ed IL assemblies and then rename NI assemblies to the same as the corresponding IL images.
This is to make sure:
1. The dependency existence check by powershell.exe will pass for all TPAs.
2. CoreCLR by default will load the NI images even though it's using names of the IL images.
* Update the comment to make it easy to understand
- Add RequireAdminOnWindows to the list of blessed tags
- Fix a bug in Get-PesterTag where we accepted 'Slow' as a proper priority
- Fix missed comma in Start-PSPester parameters
- Add documentation about new Pester tag
- Fix finishing logic for Start-PSPester -Unelevate
* Improve Start-PSPackage to support zip package, downlevel packages for win-plat. Fix the version issue and package name for creating msi and appx
* Address comments about New-PSOptions
* Update Start-PSPackage to not show the warning from New-PSOptions
Again, .NET Core expects users to forcibly link the third party OpenSSL
libraries into system directories, which the Homebrew team advises
strongly against (and attempts to prevent). This also affects the
System.Net.Http library, and results in runtime errors during SSL
certificate validation. So instead, we patch what we can, when we can.
Now that I finally have a decent list of dependencies (though it may
still be too many), I have expanded the dependencies of the package so
that users get better error messages.
I've removed ca-certificates as that's not *necessarily* required (but
needed on Docker to download over HTTPS). This may be true of other
packages too.
* Rename Publish-EchoArgs to Publish-PSTestTools so it can be used
for other tools as well in the future
* Publish EchoArgs to the bin directory instead of run to match
convention
* Add source URL to EchoArgs header comment
* Use wildcard of "*.nuget.props" to match
"test/csharp/csharp.nuget.props" in .gitignore
So that it can be reinstalled separately if desired.
Also removed the set validation as it was now wrong,
and removed the warning about no Invoke-WebRequest on Core PowerShell
(it is ported now).
I don't like the duplicate parameter logic,
especially around -NoSudo.
* Working directory fix for submodule update
The git submodule update for googletest must be run from the script's root directory
* Added try-finally block around Push-Location
Great recommendation from @vors!
The edit is a best practice incase the user Ctrl-C's out of the script.
Tested locally by exiting out of:
try { Push-Location C:\Users\; Start-Sleep -Seconds 60 } finally { Pop-Location }
* spelling: comments in src/Microsoft.Management.Infrastructure.CimCmdlets
* spelling: comments in src/Microsoft.PackageManagement.ArchiverProviders
* spelling: comments in src/Microsoft.PackageManagement.CoreProviders
* spelling: comments in src/Microsoft.PackageManagement.MetaProvider.PowerShell
* spelling: comments in src/Microsoft.PackageManagement.MsiProvider
* spelling: comments in src/Microsoft.PackageManagement.MsuProvider
* spelling: comments in src/Microsoft.PackageManagement.NuGetProvider
* spelling: comments in src/Microsoft.PackageManagement.PackageSourceListProvider
* spelling: comments in src/Microsoft.PackageManagement
* spelling: comments in src/Microsoft.PowerShell.Activities
* spelling: comments in src/Microsoft.PowerShell.Commands.Diagnostics
* spelling: comments in src/Microsoft.PowerShell.Commands.Management
* spelling: comments in src/Microsoft.PowerShell.Commands.Utility
* spelling: comments in src/Microsoft.PowerShell.ConsoleHost
* spelling: comments in src/Microsoft.PowerShell.Core.Activities
* spelling: comments in src/Microsoft.PowerShell.CoreCLR.AssemblyLoadContext
* spelling: comments in src/Microsoft.PowerShell.CoreCLR.Eventing
* spelling: comments in src/Microsoft.PowerShell.Diagnostics.Activities
* spelling: comments in src/Microsoft.PowerShell.GraphicalHost
* spelling: comments in src/Microsoft.PowerShell.LocalAccounts
* spelling: comments in src/Microsoft.PowerShell.Management.Activities
* spelling: comments in src/Microsoft.PowerShell.PSReadLine
* spelling: comments in src/Microsoft.PowerShell.PackageManagement
* spelling: comments in src/Microsoft.PowerShell.ScheduledJob
* spelling: comments in src/Microsoft.PowerShell.Security.Activities
* spelling: comments in src/Microsoft.PowerShell.Security
* spelling: comments in src/Microsoft.PowerShell.Utility.Activities
* spelling: comments in src/Microsoft.PowerShell.Workflow.ServiceCore
* spelling: comments in src/Microsoft.WSMan.Management.Activities
* spelling: comments in src/Modules
* spelling: comments in src/Schemas
* spelling: comments in src/libpsl-native
* spelling: comments in src/powershell-native
* spelling: comments in build.psm1
* spelling: comments in src/System.Management.Automation/CoreCLR
* spelling: comments in src/System.Management.Automation/DscSupport
* spelling: comments in src/System.Management.Automation/cimSupport
* spelling: comments in src/System.Management.Automation/commands
* spelling: comments in src/System.Management.Automation/engine/Modules
* [build.psm1] - mc.exe input file needs quotes
For filenames that have spaces or paths to that file that have spaces, the input filename needs to have quotes around it.
* Quoted more paths so tests run from directories with spaces
Found a few locations where paths weren't qutoed or escaped with '& ...' that are needed to get tests to run from build directories with spaces in them.
- .NET Core RID suffixes removed
- `el7.centos` suffix added to RPM
- `1ubuntu1.14.04.1` iteration used for DEB packages
`~` cannot be used after `ubuntu1` because GitHub release renames it to
a `.`; additionally, no packages lack the final suffix `.1`. While my
machine is `.5` I could find no packages that went past `.3`, so let's
use this to indicate that it works for `14.04.1` and forward.
We are *not* recreating the alpha.9 packages, but will we rename them
accordingly. This means that the filenames will be "correct" but the
meta-data will be out-of-date.
Moved Unix package code into New-UnixPackage, switching on $Types to
call the appropriate function given the list of types.
Also fixed bug with chmod on a symlink; it was unnecessary.
Start-PSPester must ensure that the environment variable `PSMODULEPATH`
is not set before starting the new PowerShell process.
If it is set, then the tests are not guaranteed to be correct,
as they will be operating with the host process's `PSMODULEPATH`,
thus ignoring their own modules.
I also refactored the Start-PSPester command setup code.
Due to https://github.com/Homebrew/brew/pull/597,
.NET Core's installation instructions of `brew link --force openssl` are
now invalid (for good reasons, due to security holes). Until .NET Core
updates their libraries to find the OpenSSL libraries correctly, we can
update them as part of `Start-PSBootstrap`.
See https://github.com/dotnet/cli/issues/3964
- introduce SDK project with our dependencies and CoreCLR framework
for runtime.
- Move dependencies for Full from ConsoleHost to powershell-win-full
- make powershell-win-full Top-level project
- Change build.psm1 to do publish for -FullCLR build
- Update docs
- Replace src\powershell top level project by two
new root-level projects:
- src\powershell-unix
- src\powershell-windows
- Break src\Modules into more granular structure:
- Shared
- Windows+Unix-Core
- Windows-Core
- Windows-Core+Full
- Windows-Full
- To be created: Unix-Core. We will do it as a separate PR
- Fix#1122 : Platform-specific set of Modules (and assemblies)
- Fix Start-TypeGen to work with new top level folders layout
This is somewhat temporary as we're about to investigate using upstream
Pester without needing to have it as a submodule, and failing that,
moving it to a vendor folder.
This is temporary. We need to rewrite the test context to ensure the
AssemblyLoadContext is used properly, since the default can no longer be
initialized.
- Add Start-PSBuild -Clean
- Normalize $env:PATH references in .\build.psm1
- Add more logging in Resolve-Xaml for troubleshooting
- Always use msbuild from the Microsoft.NET v4.0.30319
- Rename Resolve-Xaml into Start-XamlGen for consistency with Start-TypeGen and Start-ResGen
- Disable pwrshplugin build temporarely
New function smartly adds the probable location of the .NET CLI tools to
the path if `dotnet` is not found. If it is still not found, it restores
the path. All functions using `dotnet` should call `Find-Dotnet` first.
Submodule adds unnessesary complexity.
This commit removes dependency on pre-generated C# bindings.
Start-PsBuild -ResGen will call Start-ResGen.
It also has auto-detect logic to simplify first time expirience.
- Split mappings.json into mappings.json for every project (folder under
src)
- Throw away src\monad prefix, now it's not relevant
- Remove New-MappingsFile
- Rename Copy-SubmoduleFiles to Copy-MappedFiles
- Make Copy-MappedFiles flexible about set of mappings.json that it
uses
Linux and OS X no longer install packages, instead they download the
1.0.0 uninstall and install scripts provided by .NET CLI, uninstall all
existing `dotnet` packages, and "install" the latest 1.0.0 preview2
version of `dotnet` to `~/.dotnet`, which `Start-PSBuild` automatically
picks up.
Additionally, `Start-PSBootstrap` only attempts to install dependencies
when it detects that it is on Ubuntu 14.04, otherwise it warns that
dependencies must be installed manually, and still installs `dotnet` via
their obtain script. This makes `Start-PSBootstrap` safe to run on
Debian, and usable on CentOS.
* Last PR had a typo in "TestAruments" which caused the configuration
not to get picked up
* Now bails appropriately if PowerShell wasn't built, instead of
rebuilding it every time
* Passes `-verbose` to the xUnit runner, not dotnet, so we can see which
test failed
This project was removed and provided as a package in the windows-build
submodule. The artifact uploading to AppVeyor fails because this was not
updated.