Commit Graph
100 Commits
Author SHA1 Message Date
Andrew Schwartzmeyer bc3096c94f Cache ~/.nuget on Travis
Should speed up builds by several minutes.
2016-02-26 11:05:09 -08:00
Andrew Schwartzmeyer af3e15a7bc Don't treat MMI warnings as errors on FullCLR
It can only build with warnings.

It will error if the full `SafeHandleZeroOrMinusOneIsInvalid` type is
used on FullCLR because the derivation is not completely implemented.
2016-02-24 16:35:07 -08:00
Andrew Schwartzmeyer 966be6a792 Treat C# warnings as errors 2016-02-24 16:33:17 -08:00
Andrew Schwartzmeyer 1b59a60550 Fix compiler warning about unused variable 2016-02-24 16:33:17 -08:00
Andrew Schwartzmeyer 91456111bf Fix current working directory for CMake
There is no way around this. The directory where CMake is invoked is
where it writes its build files, so we have to `pushd`. In case anything
fails, we `popd` in a finally block.
2016-02-24 11:50:56 -08:00
Andrew Schwartzmeyer 594bdacb6a Improve Start-PSBuild and Start-PSPackage functions
- Better comments
- Better indentation
- Working directory agnostic (uses `$PSScriptRoot`)
- Does not `cd`
- `PSPackage` does not call `PSBuild`
- Asserts that `bin/powershell` exists
- Derives version from `git describe` if not given
- Version parameter now a string to support metadata
2016-02-23 16:21:00 -08:00
Andrew Schwartzmeyer a18c2c43a3 Remove DSC submodule
Resolves #573.
2016-02-22 16:09:33 -08:00
Andrew Schwartzmeyer 31624ebd89 Use Start-PSBuild on AppVeyor 2016-02-22 11:29:03 -08:00
Andrew Schwartzmeyer a7177c24e2 Catch exception when used on FullCLR
This is the case when the module is used on FullCLR versions of
PowerShell (necessarily on Windows).
2016-02-22 11:29:03 -08:00
Andrew Schwartzmeyer 472b17d547 Add Start-PSPackage command to build deb/pkg packages
Deprecates `package.sh`. Committed necessary package symlink because
creating one with PowerShell is not yet implemented.
2016-02-22 11:29:03 -08:00
Andrew Schwartzmeyer 1453048674 Add cross-platform Start-PSBuild function
This can replace `build.ps1` and `build.sh`. However, we need to upload
packages so Travis can use PowerShell.
2016-02-22 11:29:03 -08:00
Andrew Schwartzmeyer 839ae08df1 Change package script to generate .deb 2016-02-22 11:29:03 -08:00
Andrew Schwartzmeyer 694ba284c8 Add basic package creation script
Creates a .pkg for OS X using Effing Package Management.

Can be easily modified to create a .deb or .rpm etc.
2016-02-22 11:29:03 -08:00
Andrew Schwartzmeyer de7b0eac08 Use deployed Pester module path instead of src 2016-02-22 11:29:03 -08:00
Andrew Schwartzmeyer d3c6d274ed Fix capitalization of GitHub in dev module's name 2016-02-22 11:29:03 -08:00
Andrew Schwartzmeyer c8891bb5a0 Copy user permissions to group and other in bin/*
Necessary for packages so that the libraries/deps files are readable,
even when owned by root (because it was installed from a package).
2016-02-22 11:29:03 -08:00
Andrew Schwartzmeyer 56ed87c108 Respect Console.BackGround color
This was bugging me. Instead of using the existing console's background
color, we were hard-coding "Black." Now we just leave it alone.
2016-02-22 11:29:03 -08:00
Andrew Schwartzmeyer b143465401 Remove banner from profile
When trying to use PowerShell a lot, this default banner gets annoying.
I don't think we need it any more. Also change the prompt to just "PS".
2016-02-22 11:29:03 -08:00
Andrew Schwartzmeyer 91765b3db3 Add Emacs-style readline bindings
Very simple implementation of C-(A,E,K,D,B,F,P,R,N,S,J,L) and Alt-(B,F).
2016-02-22 11:29:03 -08:00
Andrew Schwartzmeyer 41a236dc5b Improve pester.sh script
- Check if PowerShell has been built before trying to use it.
2016-02-19 14:59:01 -08:00
Andrew Schwartzmeyer 3f37dfa438 Improve build.sh script
- Check for cmake, g++, and dotnet programs.
- Check for project.lock.json.
- Check that libpsl-native was compiled.
2016-02-19 14:58:48 -08:00
Andrew Schwartzmeyer 15e01bd553 Improve debug.sh script
- Move to the `bin` directly so that SOS works properly.
- Check for LLDB and PowerShell programs.
- Display help text.
2016-02-19 14:58:42 -08:00
Andrew Schwartzmeyer 9f2ce63267 Fix xUnit tests for netstandardapp1.5
With the switch to `netstandardapp1.5` framework for the host, the xUnit
test runner broke. For `dotnet test` to work with the .NET Core xUnit
runner, it must continue to target `dnxcore50`. Fortunately, we can
import our project's framework, and make everything work again.

Also improved the `xunit.sh` script to check for dependencies.
2016-02-19 14:40:17 -08:00
Andrew Schwartzmeyer b257a2d2fc Reconcile rawui.cs with System.Console
With the latest packages, a lot more System.Console API is available.
This commit implements what is now available through the API.

Where an API functions correctly on Linux, the result of a call through
PowerShell works as expected. Where it is not, a nice
`PlatformNotSupported` exception is thrown (and displayed by
PowerShell).

On Linux:

- `$host.ui.RawUI.WindowTitle` can be set but cannot be get
- `$host.ui.RawUI.CusorPosition` can be set and get
- `$host.ui.RawUI.CursorSize` can be get but cannot be set
- `$host.ui.RawUI.MaxPhysicalWindowSize` can be get
- `$host.ui.RawUI.MaxWindowSize` can be get
- `$host.ui.RawUI.WindowPosition` can be get but cannot be set
- `$host.ui.RawUI.WindowSize` can be get but cannot be set
- `$host.ui.RawUI.ReadKey` can be be used, but is only approximate
2016-02-19 11:20:53 -08:00
Andrew Schwartzmeyer 2e90b29cc8 Bump .NET Core packages to rc3-23819
Brings in fix for #546 and so enables the use of the PowerShell in non
xterm terminal emulators (like Tmux and screen).
2016-02-19 09:57:21 -08:00
Andrew Schwartzmeyer 5c0abec45b Pin CLI to 1.0.0.001425 and update readme 2016-02-18 10:06:56 -08:00
Andrew Schwartzmeyer e6e4dcafbe Build with new framework and new CLI
All libraries now use the framework `netstandard1.5`, and import the
`dnxcore50` and `portable` frameworks. The app that is published,
Microsoft.PowerShell.Linux.Host, that is, the top-level dependency that
emits an executable, instead targets `netstandardapp1.5` and has a new
`runtimes` key so that .NET CLI's `restore` and `publish` commands know
which runtime implementations to resolve.

When switching to the new CLI, we needed to fix how we specified our
dependencies. In particular, the .NET CLI team helped me figure out how
to download packages that are reference assembly only on Linux, with
implementations on Windows. The result of this is the new `frameworks`
setup.

Additionally, we were incorrectly specifying our build dependencies;
that is, projects we also build (not packages). The solution was much
cleaner. We removed the `type: build` section and replaced it with the
version `1.0.0-*` that all our projects currently use.

The `project.json` files also had their names, descriptions,
indentation, and versions fixed.

The build scripts were simplified.
2016-02-18 10:06:56 -08:00
Andrew Schwartzmeyer 58ad5b66d9 Bump monad submodule with fix for Append<T>
Newest .NET Core implements this, so the reimplementation in PowerShell
was a conflicting type. It was removed.
2016-02-17 17:18:07 -08:00
Andrew Schwartzmeyer ae64f99c25 Bump .NET packages to 23817 2016-02-17 17:17:55 -08:00
Andrew Schwartzmeyer dae6e0ebd5 Use Linux.Host in xUnit tests
Make its internals visible to the `powershell-tests` assembly, and use its
`MyHost` and `Listener` classes instead of facades.
2016-02-17 17:03:59 -08:00
Andrew Schwartzmeyer 473ac41630 Initialize the ALC for the runspace tests
This initialization was moved out of the native host and into the
managed host, so the same setup must now be done before tests.
2016-02-17 17:03:59 -08:00
Andrew Schwartzmeyer 2ce694ebdd Add xUnit test runner script
Unfortunately a wrapper is needed because `LD_LIBRARY_PATH` must be set
to avoid having to place build artifacts (specifically
`libpsl-native.so`) out-of-tree to run tests.
2016-02-17 17:03:59 -08:00
Andrew Schwartzmeyer c68164f280 Remove Commands.Omi module
This was a temporary work-around that now needs to be removed (mostly
because the xUnit tests are out-of-date because we didn't have a runner,
and it's not worth it to fix them). Rather than let more cruft
accumulate, we need to remove it.

Resolves #551
2016-02-17 17:03:59 -08:00
Andrew Schwartzmeyer eb43300842 Update CorePsTypeCatalog 2016-02-17 17:03:59 -08:00
Andrew Schwartzmeyer 4d13ef1a29 Expose SMA internals to powershell-tests 2016-02-17 17:03:53 -08:00
Andrew Schwartzmeyer 9b9493241d Update xUnit dependencies for dotnet-test-xunit
Add `xunit` and `dotnet-test-xunit` packages. Import `portable-net45`
for `xunit`. Add `xunit` as `testRunner`.
2016-02-17 17:03:03 -08:00
Andrew Schwartzmeyer e19777103f Add cli-deps feed for dotnet-test-xunit
Although there is a dedicated `coreclr-xunit` feed for this package, it
is missing some needed dependencies. Rather than add yet another feed
(`aspnetvnext`), we'll use the `cli-deps` feed as it has all the
packages that `dotnet-test-xunit` needs, and is likely to stick around.
2016-02-17 16:20:17 -08:00
Andrew Schwartzmeyer 1436668fd1 Use CLI obtain script to install on AppVeyor 2016-02-17 14:20:15 -08:00
Andrew Schwartzmeyer 36bc1279a2 Pin dotnet-nightly package on Travis 2016-02-17 14:20:15 -08:00
Andrew Schwartzmeyer cc64b31741 Remove versions from frameworkAssemblies
It is odd, but they're unsupported here. If a version is given, it
causes every build/publish to think it needs to be restored again,
because the lock file doesn't end up with a version.
2016-02-12 10:32:59 -08:00
Andrew Schwartzmeyer 0ef4e90f9a Add readme to Linux.Host 2016-02-10 15:29:06 -08:00
Andrew Schwartzmeyer 5916b00261 Fix handling of bin directory 2016-02-10 13:05:46 -08:00
Andrew Schwartzmeyer dacaebefb8 Move Pester to submodule to Host/Modules
This way it can also be deployed automatically, removing the last manual
copy steps from our build scripts.

Travis and AppVeyor configurations updated for new submodule location.
2016-02-10 12:58:56 -08:00
Andrew Schwartzmeyer 79f5db71fe Add update-content.sh script 2016-02-10 12:52:36 -08:00
Andrew Schwartzmeyer 74a3855602 Add Modules to tree for content
Same as ps1xml files: already deployed in the wild, i.e. not source
code. Allows to remove recursive copies from build scripts and rely just
on CLI's behavior.
2016-02-10 12:48:46 -08:00
Andrew Schwartzmeyer 9f95aa3203 Use content to publish PSL_profile.ps1 2016-02-10 12:44:49 -08:00
Andrew Schwartzmeyer 9a2a8555e3 Copy ps1xml files into tree to use content
This allows us to remove the duplicated copying steps from our Windows
and Linux build scripts. These files are already distributed to users of
Windows, and so are not "source code."
2016-02-10 12:38:00 -08:00
Andrew Schwartzmeyer fcb2ce6d71 Remove registry stub
With latest changes to PowerShell source code, and better behaviors of
Get/Set-ExecutionPolicy, the Windows registry API stub can be removed.
2016-02-09 16:10:10 -08:00
Andrew Schwartzmeyer 5442346820 Update Get/Set-ExecutionPolicy tests
Test expected behaviors on both Windows and Linux.
2016-02-09 16:10:10 -08:00
Andrew Schwartzmeyer 4d9c7303b9 Bump monad with changes to ExecutionPolicy 2016-02-09 16:10:10 -08:00
Andrew Schwartzmeyer 426e70565a Clean up .gitignore files 2016-02-09 14:06:39 -08:00
Andrew Schwartzmeyer 9c0ee7072e Use NuGet instead of aspnetvnext for CodeAnalysis
The aspnetvnext MyGet feed was unreliable, and we should prefer NuGet
anyway. This should make automated builds fail less often.
2016-02-09 12:50:24 -08:00
Andrew Schwartzmeyer 65ccb3f49d Bump monad submodule with ClrFacade.Load refactor 2016-02-08 15:25:10 -08:00
Andrew Schwartzmeyer a694ab7770 Bump monad with merge from Source Depot 2016-02-08 14:00:55 -08:00
Andrew Schwartzmeyer 363c0ccfd1 Modernize our nuget.config
Use the V3 api, and use the clear directive instead of
`activePackageSources`.
2016-02-05 16:04:06 -08:00
Andrew Schwartzmeyer e0d81406d1 Update FullCLR ConsoleHost dependencies
Such that only one publish command is required.
2016-02-05 12:12:33 -08:00
Andrew Schwartzmeyer 89ad38beae Guard prompt function
Fixes #485.
2016-02-05 11:51:17 -08:00
Andrew Schwartzmeyer 39183cb4c3 Remove versions from frameworkAssemblies
This should fix bug #499 where building complains about a restore not
having been done, even when it has.
2016-02-05 11:13:09 -08:00
Andrew Schwartzmeyer def81cf9cc Update readme
- New links due to rename
- Better formatting
- More details
2016-02-05 10:18:23 -08:00
Andrew Schwartzmeyer 5845a56d89 Use $env:CORE_ROOT if set, otherwise AppContext.BaseDirectory
Otherwise the Json.NET DLL cannot be found when Pester tests are run
over PSRP.
2016-02-04 12:58:00 -08:00
Andrew Schwartzmeyer 17a50a9f91 Remove temporary dotnet-publish workaround
Latest dotnet-nightly packages have not required this.
2016-02-03 15:21:29 -08:00
Andrew Schwartzmeyer 89d62012e8 Set Pester error threshold to 0 2016-02-03 14:13:38 -08:00
Andrew Schwartzmeyer f42cf5985f Fix guard in MMI's AssemblyInfo 2016-02-03 11:03:13 -08:00
Andrew Schwartzmeyer 3d4509bef0 Add AppVeyor notifications to PSCore Slack #ci channel 2016-02-02 20:09:37 -08:00
Andrew Schwartzmeyer bea156b61c Move Travis CI notifications to PSCore Slack #ci channel 2016-02-02 19:57:04 -08:00
Andrew Schwartzmeyer a4fd57298d Revert "Skip BufferSize when not interactive"
This reverts commit 9a5c010f54.
2016-02-02 17:05:49 -08:00
Andrew Schwartzmeyer d31647f52c Bump monad submodule with use of NOETW 2016-02-02 16:48:03 -08:00
Andrew Schwartzmeyer 9cfe821bc2 Add NOETW preprocessor definition to Automation
This is necessary to disable Tracing on Core PowerShell until the
reimplementation of the Eventing library is ported to CLI.
2016-02-02 16:46:51 -08:00
Andrew Schwartzmeyer f1dc37bb37 Bump monad and windows-build submodules 2016-02-02 16:14:13 -08:00
Andrew Schwartzmeyer 801b347e5a Add ImplicitRemotingCommands and WebCmdlet to known issues 2016-02-02 16:14:13 -08:00
Andrew Schwartzmeyer 3cfa68caa0 Remove executable bit from build.ps1 2016-02-02 16:11:37 -08:00
Andrew Schwartzmeyer ef1c718782 Use --configuration Linux for CorePS build 2016-02-02 16:11:36 -08:00
Andrew Schwartzmeyer 75eba6fe88 Remove Computer.cs from Commands.Management 2016-02-02 16:11:36 -08:00
Andrew Schwartzmeyer c8351063ef Add file superset to Utility and Automation
To enable building on both Core and Full CLR with the same project.json
files, the superset of file dependencies for both builds must be
included. The set differences are applied by `CORECLR` preprocessor
guards around the files themselves.

The file name cases were corrected for case-sensitive filesystems.
2016-02-02 15:43:54 -08:00
Andrew Schwartzmeyer bd79884b81 Update AssemblyInfo files for FullCLR build 2016-02-02 15:43:54 -08:00
Andrew Schwartzmeyer 989b59c089 Add Microsoft.PowerShell.ConsoleHost
For the Windows console.
2016-02-02 15:43:54 -08:00
Andrew Schwartzmeyer 92127e4cfc Uses spaces instead of tabs in project.json files 2016-02-02 15:43:54 -08:00
Andrew Schwartzmeyer 172ddc6ad1 Refactor project.json dependencies
The packages are now dependencies of the `dnxcore50` framework itself,
rather than globally. The `compilationOptions` were pruned, with
`CORECLR` moved to frameworks, `_CORECLR` removed for all but
`Management.Infrastructure`, and `LINUX` moved to a new `Linux`
configuration, used only in `build.sh`. This configuration is
purposefully absent from libraries that do not use `LINUX`, so that it
is not relied upon without strong consideration. The dependencies
were pruned to reduce duplication.
2016-02-02 15:43:54 -08:00
Andrew Schwartzmeyer 3e1cdb7582 Decrease failed test threshold to 11
The updated packages fix our Start/Stop process tests, which were
failing intermittently due to the process name appearing incorrect.

See dotnet/corefx#5421 for further details.
2016-02-02 15:43:54 -08:00
Andrew Schwartzmeyer c7fb9d2158 Add System.Diagnostics.Process dependency
The new packages do not pull this in automatically.
2016-02-02 15:43:54 -08:00
Andrew Schwartzmeyer a8be633089 Bump packages to rc3-23729 2016-02-02 15:43:54 -08:00
Andrew Schwartzmeyer c162c1c19e Title case ExecuteHelper function 2016-02-01 13:12:29 -08:00
Andrew Schwartzmeyer ad064bf483 Use --noprofile for Pester tests 2016-02-01 13:12:29 -08:00
Andrew Schwartzmeyer bbadc64407 Add --noprofile option to host
Disables parsing of all profiles when used.
2016-02-01 13:12:29 -08:00
Andrew Schwartzmeyer 92b5d40f76 Bump monad submodule 2016-01-29 17:25:00 -08:00
Andrew Schwartzmeyer 3f1a1311fe Add missing cmdlets/modules to known issues 2016-01-29 17:24:49 -08:00
Andrew Schwartzmeyer 52a7095056 Use Modules instead of SnapIns
Proper deployment of the Modules we support allowed me to remove my
work-arounds using the deprecated SnapIn system to load all PowerShell
libraries via Modules.

I still don't like that this is done in build scripts, but we need
better asset support from .NET CLI to change how this is done.

PowerShell.Utility now deploys the CoreClr manifest, so unsupported
commands don't show up erroneously.
2016-01-29 17:24:49 -08:00
Andrew Schwartzmeyer fd782abe99 Make dotnet-nightly workaround version-agnostic
If the `Debug/dnxcore50` path does not exist, don't worry about it.
2016-01-29 17:24:49 -08:00
Andrew Schwartzmeyer 188598e4ca Temporarily fix build scripts due to CLI bug
Latest versions of .NET CLI ignore --output and instead publish to a
long path inside of it. Until this is resolved properly, we can work
around it by copying to the expected location.

Revert this when CLI is fixed.
2016-01-28 18:38:57 -08:00
Andrew Schwartzmeyer 6f6239aa60 Bump monad and windows-build submodules 2016-01-26 17:00:13 -08:00
Andrew Schwartzmeyer 71f670f86c Add packages required for updated sources
Commands.Utility now needs Microsoft.CodeAnalysis.CSharp, which doesn't
explicitly target `dnxcore50`, so now Commands.Utility and the packages
which depend on it now much `import` the Portable Windows framework.
This also required adding the aspnetvnext feed.

System.Management.Automation now requires System.Diagnostics.StackTrace.
2016-01-26 16:49:28 -08:00
Andrew Schwartzmeyer e125650e54 Update mapped compileFiles
Removed CorePsPlatform.cs from the build mapping so that I could perform
it before merging.

Note that SMA by default now builds with a bunch of tracing files for
ETW, which cannot be compiled on Linux and must be hand-removed from the
windows-build auto-generated compileFiles output.
2016-01-26 16:43:02 -08:00
Andrew Schwartzmeyer 05205ecac7 Realign project.json files 2016-01-26 15:47:22 -08:00
Andrew Schwartzmeyer d73d51cd70 Link Waffle.io scrum board in readme
Add note to skip CI tests for documentation changes.

[ci skip]
2016-01-25 10:38:35 -08:00
Andrew Schwartzmeyer 0bdd2e4182 Enable Travis CI
- Add badge to readme
- Use language 'cpp' because 'csharp' would bring in Mono
- Set to Trusty Tahr (Ubuntu 14.04)
- Only clone necessary submodules
- Use SSH for powershell-ci user access
- Install dotnet-cli
- Build PowerShell
- Run Pester tests
2016-01-22 14:33:34 -08:00
Andrew Schwartzmeyer cd81479b87 Add test failure threshold to pester.sh
Set to 14 because of non-tty and random process failures.
2016-01-22 14:32:04 -08:00
Andrew Schwartzmeyer 7061c87eb2 Move more Git notes to CONTRIBUTING.md 2016-01-21 13:06:51 -08:00
Andrew Schwartzmeyer 423e7da910 Add link to known issues 2016-01-20 12:33:42 -08:00
Andrew Schwartzmeyer 0dda6c34a1 More readme updates 2016-01-20 12:29:06 -08:00
Andrew Schwartzmeyer 0cdbe9a3aa Bump dsc submodule because of upstream rewrite 2016-01-20 11:47:39 -08:00