Commit Graph

205 Commits

Author SHA1 Message Date
Alessio Franceschelli 320fadb756 HeaderPropagation Middleware: configuration per client (#10096)
* HeaderPropagation Middleware: configuration per client

* Renamed fields

* Renamed fields

* Fix sample

* Addressed feedback, cleaned up and added tests

* Addressed feedback on HeaderPropagationHttpClientBuilderExtensions

* Updated reference assemblies
2019-05-17 14:16:44 -07:00
Chris Ross b670246e3d
Add ForwardedHeaders to CreateDefaultBuilder #4135 (#10273) 2019-05-17 13:07:11 -07:00
Nate McMaster dc90e11c7a
Move obj and bin directories into repo root (#10063)
The Arcade SDK requires that the obj/ and bin/ folders be placed in the top-level artifacts/ folder of the repo. Although this PR does not complete our Arcade convergence, this is a step towards updating our repo to build with the Arcade SDK.

Changes:
* Set output path for build to artifacts/bin/$(ProjectName)/ 
* Set intermediate output path for build to artifacts/obj/$(ProjectName)/
* Cleanup .gitignore files (remove duplication between repo-root and tested gitignore files)
* Add code check which looks for project files that share the same name (could cause issues)
* Rename project files to have unique names (avoid race condition of build output)
* Update all locations which were hard-coded to expect bin/ and obj/ in the project directory
* Add overrides for tests which still assert test binaries exist in a given location relative to the source code
2019-05-15 13:44:55 -07:00
Nate McMaster 77e08c26d5
Replace all usages of RepositoryRoot with RepoRoot (#10267)
Preparing to adopt the Arcade SDK, which uses the shorter variable name instead
2019-05-15 12:00:19 -07:00
Mickaël Derriey 4a2bd2adbf Source server variables from IIS when running ANCM in-proc (#10022) 2019-05-15 08:26:29 -07:00
Bruno 124064ef47 Add option to limit domains on AddRedirectToWww (#9676) 2019-05-14 08:33:03 -07:00
Pranav K 3d79b9aa58
Add some caching to CORS (#9972)
* Add some caching to CORS
2019-05-13 11:52:16 -07:00
James Newton-King d5207af367
Improve TestServer support for Response.StartAsync (#10189) 2019-05-13 22:38:26 +12:00
Pranav K 8a3fdb4b21
Changes per PR comments 2019-05-11 06:22:19 -07:00
Pranav K 20982a947d
Add some caching to CORS 2019-05-11 05:43:44 -07:00
Nate McMaster b744814f06
Enhancements to Helix testing (#10007)
* Add Windows 7 and 8.1 testing on Helix
* Install SQL Server on-demand in Helix test queues
* Only install mssql on Windows runs
* Use exit /b
* Add targets to better support running helix locally
* Set maxretrycount to 2
* Handle IIS issues on win7/win8
* Make HelixPreCommand's fail the workitem
* Add a pre-generated test cert of IIS Express
* Update helix doc and ignore netsh script failures
* Fix bug in detecting Windows queues and disable Win 7 until we have queues ready
* Fix HttpSys functional tests on Helix
2019-05-10 15:04:16 -07:00
Ryan Nowak 0b590ff46f Fix #6764 EndpointConventionBuilder API review 2019-05-09 19:38:43 -07:00
Ryan Nowak 24784d0681 Fix #10066 2019-05-09 13:44:16 -07:00
Nate McMaster 3dbbb2994c
Upgrade yarn and cleanup npm commands (#10054)
* Add yarn.lock file for NodeServices
* Remove references to 'npm install' (causes double-download of node modules) and replace npm commands in package.json with yarn for consistency
* Upgrade yarn to 1.15.2
2019-05-08 15:07:25 -07:00
Ryan Nowak e401f35b45
Header propagation sample and UX improvements (#9793)
Creating a sample for the header propagation package and some various
misc UX improvements based on building the sample.

A small list:
- allow duplicate inbound names
- de-dupe based on outbound names
- add sugar for configuration
- simplify pattern for transforming values
- add error message for missing middleware

Also a few small perf things.

I started this out by wanting to remove the following from the
configuration pattern:
```C#
options.Headers.Add("X-TraceId", null);
```

This pattern with null is undiscoverable, but we didn't provide
something simpler. The most common case was to add a custom collection
type so we can define sugar methods.

The next realization is that in practical case (dist tracing sample) you
either way to *key* off of the same inbound header twice, or you don't
have an inbound header at all, and you will synthesize the value every
time. This means that the way we're treating inbound header names is a
bit wrong. We don't want inbound header names to be unique, we want
*outbound header names to be unique*.

Next, I want to consolidate DefaultValue and ValueFactory. The problems
I saw with this:
- DefaultValue is a trap. It's rare to use a static value.
- ValueFactory really wants the header name *and* value

I think what's there now is much more terse to work with.
2019-05-07 11:07:42 -07:00
Ben Adams bbf7ed2907 Lazy create ExceptionHandlerMiddleware statemachine (#9549) 2019-05-06 15:15:48 -07:00
Ben Adams 617bc1ac02 Reduce StaticFileContext allocation/struct copy (#9815) 2019-05-03 11:55:37 -07:00
Nate McMaster 8863ebfda1
Add --mutex option to yarn commands (#9919)
Attempt to improve reliability of running yarn commands. Our project structure might cause yarn to be launched multiple times. According to yarn docs, this option should avoid conflicts between multiple instances of yarn

https://yarnpkg.com/en/docs/cli/#toc-concurrency-and-mutex
2019-05-02 17:45:55 -07:00
James Newton-King da66edc8ff
Change IEndpointConventionBuilder extension methods to use generic argument (#8906) 2019-05-02 07:25:54 +12:00
Nate McMaster ae8e96f154
Remove API check baselines and related project settings (#9846) 2019-04-30 14:58:13 -07:00
Nate McMaster 0eb1fd7b50
Remove unnecessary restore feeds and update yarn.lock file (#9845) 2019-04-30 08:57:49 -07:00
Andrew Stanton-Nurse fe3dfe627b
Be more defensive in HtmlDirectoryFormatter (#9755)
Fixes aspnet/AspNetCore-Internal#2245

Our tests were flaking out due to this possible race where the directory browser middleware enumerates the directory but a file is deleted while we're formatting the response. This change just catches the FNF/DNF exceptions and suppresses the file from the directory listing
2019-04-29 11:25:26 -07:00
Ryan Brandenburg 1f7b5855f7
Check browser console errors (#9298)
Check browser console errors
2019-04-25 10:02:22 -07:00
dotnet-maestro[bot] 8eb2e8baec
[master] Update dependencies from dotnet/arcade (#9715)
* Update dependencies from https://github.com/dotnet/arcade build 20190423.2

- Microsoft.DotNet.GenAPI - 1.0.0-beta.19223.2

* Adjust to GenApi change in `enum` ordering
- was sorted by name, now by value
2019-04-24 19:21:37 +00:00
Ben Adams 19ce372887 Cache some Headers lookups (#9618) 2019-04-21 20:37:56 -07:00
Ben Adams 507a765dfb Lazy create StaticFileMiddleware statemachine (#9507) 2019-04-18 14:44:00 -07:00
Ben Adams 8fcadf72cd Allow headers to match on ReferenceEquals before OrdinalIgnoreCase (#9341) 2019-04-18 12:00:01 -07:00
David Fowler a8b67a2b98
Rename variable (#9461) 2019-04-17 20:56:06 -07:00
Pranav K 004ac25983
Remove AddRazorSupportForMvc from MVC and Blazor projects (#9446)
Fixes https://github.com/aspnet/AspNetCore/issues/9126
Fixes https://github.com/aspnet/AspNetCore/issues/9183
Fixes https://github.com/aspnet/AspNetCore/issues/9207
2019-04-16 20:46:51 -07:00
David Fowler 48f0a76ea9
Support plain text exception formatting (#9342)
- If there's no Accept: text/html then print the exception.ToString as plaintext
2019-04-16 18:34:07 -07:00
Pranav K e2477706b6
Always set flag in CorsMiddleware once it executes (#9440)
Fixes https://github.com/aspnet/AspNetCore/issues/9348
2019-04-16 16:28:27 -07:00
John Luo c2ee82b49e
Move ResponseCaching pubternal types to internal (#9392) 2019-04-16 15:14:59 -07:00
Alessio Franceschelli 19e0030710 HeaderPropagation Middleware: handle content headers 2019-04-16 08:47:29 -07:00
Javier Calvarro Nelson 5889aea06c
Enable custom restore of NPM dependencies for csproj files
Enables custom restore of NPM dependencies for csproj files that require it.
2019-04-14 15:02:37 +02:00
Pranav K ae34697797 Fix #9041 - Complain if auth hasn't been set up correctly (#9181) 2019-04-11 10:36:21 -07:00
Pranav K b93bc433db
Make AuthorizeFilter work in endpoint routing (#9099)
* Make AuthorizeFilter work in endpoint routing

Fixes https://github.com/aspnet/AspNetCore/issues/8387
2019-04-08 06:03:34 -07:00
Doug Bunting 1b50085835
Chain coherent dependencies up through Extensions to EF Core packages (#8877)
* Chain coherent dependencies up through Extensions to EF Core packages
- should reduce incoherent PRs we get from `darc`
- react to AspNetCore-Tooling breaking changes
  - use C# Preview version in Blazor integration tests
    - update `EnsureOptions_ConfiguresDefaultParseOptions` test to match new C# version default
  - react to new newline encoding behavior; thanx @ajaybhargavb!
  - update product code and tests to use new GetItem API; thanx @NTaylorMullen!
    - RazorProjectFileSystem breaking change
    - update ref assemblies
- react to EF Core breaking changes
  - react to EF Core method rename
  - react to aspnet/EntityFrameworkCore@ccfc5edbc7
  - react to aspnet/EntityFrameworkCore@6cb41531df breaking change
    - disable new analyzer in `ScratchDatabaseFixture`
- skip `MvcTemplate_NoAuthImplAsync(...)` test for F#
  - #8996
- exclude some runtime assemblies from crossgen; thanx @BrennanConroy!
- add direct references to Mvc in AzureAD samples
  - unclear why the reference is no longer pulled in transitively

* Run `darc` to grab the latest
- CoreFx packages with version 4.6.0-preview4.19204.1 to ensure coherency
- core-setup packages with version 3.0.0-preview4-27604-05 to ensure coherency
- Extensions packages with verisn 3.0.0-preview4.19204.2 to ensure coherency
- EntityFrameworkCore packages with version 3.0.0-preview4.19204.7 from build 20190404.7
- AspNetCore-Tooling packages with version 3.0.0-preview4.19204.2 from build 20190404.2
2019-04-05 10:54:04 -07:00
Javier Calvarro Nelson 98d8b9ab4a
[Infrastructure] Retry yarn install on failure (#9068)
* [Infrastructure] Retry yarn install on failure
2019-04-04 20:39:52 +02:00
Ryan Brandenburg fefffd7751
Test all links in templates (#8628)
Improve templating tests
2019-04-04 11:31:24 -07:00
Andrei Amialchenia 8274776efa Test name fixed (#8994)
Fixed #8922
2019-04-02 13:58:06 -07:00
Javier Calvarro Nelson 8499a27c7f
[Components] Relayer + Robust reconnect (#8911)
* [MVC][Components] Prerendering + Robust reconnect
* Relayers prerendering support on a separate package on top of MVC and
  components.
* Implements robust reconects with acknowledgements from the client.
* Improves interactive prerendering with the ability to reconnect to
  prerendered components.
* Removes the need to register components statically when prerendering
  them.
* Removes the need of using an element selector when prerendering an
  interactive component.
* Updates the templates to use the new fallback routing pattern and
  reenables the components test.
* Adds eslint to the Typescript project to help maintain a consistent
  style.
* Adds logging to support better debugging based on the pattern used by
  signalr.
* Fixes exception handling on the server to always report exceptions correctly to the client.
2019-04-02 19:17:03 +02:00
Kirill Rakhman 3cc3ab00c9 Reduce boxing in RedirectRule.cs (#8988) 2019-04-02 10:04:07 -07:00
David Fowler f4c61de490
Initial design for exception page filters (#8958)
- This change introduces the concept of an IDeveloperPageException filter that runs whenever the developer exception page has encountered an error. It follows the middleware pattern (chain of resposibility) which allows short circuiting or decorating the default logic.
- Added tests
2019-04-02 10:02:34 -07:00
Ryan Nowak 285110de91 Add missing ref-assembly for header propagation
I think this was missed because the PR predates ref assemblies :)
2019-03-30 11:50:34 -07:00
Alessio Franceschelli f28cf2bbc8 HeaderPropagation: propagate incoming request headers to outgoing HTTP requests (#7921)
* Ported HeaderPropagation from aspnet/Extensions

* Introduced Middleware

* Refactored middleware logic

* Refactored builder extensions

* Copyright notice

* Test for friendly exception on Builder

* Fixed header name selection when no output name specified

* Set comparer for the dictionary of headers

* Refactored configuration as Dictionary

* Renamed state objects

* renamed OutboundHeaderName in configuration

* Changed DefaultValuesGenerator to ValueFactory

* Missing docs

* Removed AlwaysAdd and added tests for null entry in configuration

* Improved docs

* Update src/Middleware/HeaderPropagation/src/DependencyInjection/HeaderPropagationExtensions.cs

Co-Authored-By: alefranz <alessio@franceschelli.me>

* Moved dependency injection extensions

* DI: reused ServiceCollection extension in the HttpClientBuilder one

* Moved service registration

* Update src/Middleware/HeaderPropagation/src/HeaderPropagationEntry.cs

Co-Authored-By: alefranz <alessio@franceschelli.me>

* more docs

* Improved docs

* Update src/Middleware/HeaderPropagation/src/HeaderPropagationValues.cs

Co-Authored-By: alefranz <alessio@franceschelli.me>

* Fixed build

* Update eng/SharedFramework.Local.props

Co-Authored-By: alefranz <alessio@franceschelli.me>

* Updated tests for null config

* Reversed condition on HeaderPropagationMessageHandler as suggested

* Added docs for HeaderPropagationMessageHandler

* Changed proj to ship package to NuGet
2019-03-29 12:00:46 -07:00
Ryan Nowak 658b37d2bd
Make UseEndpoints a thing (#8765)
* Make endpoint middleware explicit

This change makes the endpoint middleware explicit again, and updates
all of the templates.

The other change here is make UseEndpoints be the place where you
register endpoints. This is vital because it puts your code visually at
the point of the pipeline where it executes.

Lastly, I removed support for UseMvc with endpoint routing. This is
causing issues for some security features, and we're moving in the
direction of trying to make the middleware heavy implementation required
in 3.0. There are some issues we won't be able to fix in MVC if we can't
unambiguously know if UseMvc was used or the middleware.
2019-03-28 15:41:11 -07:00
Ryan Brandenburg 70cd5f5f9f
Mark tests flaky instead of skipped (#8727)
Mark tests flaky instead of skipped
2019-03-26 09:51:37 -07:00
Pranav K 9a35bbea03
Experience for Razor SDK (#8731)
* Experience for Razor SDK

* Remove Components.Build
* Update MVC projects and templates to use AddRazorSupportForMvc
* Update components templates to use .razor extension

Fixes https://github.com/aspnet/AspNetCore/issues/6392

* Update dependencies from https://github.com/aspnet/AspNetCore-Tooling build 20190321.3

- Microsoft.NET.Sdk.Razor - 3.0.0-preview4.19171.3
- Microsoft.CodeAnalysis.Razor - 3.0.0-preview4.19171.3
- Microsoft.AspNetCore.Razor.Language - 3.0.0-preview4.19171.3
- Microsoft.AspNetCore.Mvc.Razor.Extensions - 3.0.0-preview4.19171.3

* Update dependencies from https://github.com/dotnet/core-setup build 20190322.01

- Microsoft.NETCore.App - 3.0.0-preview4-27522-01

Dependency coherency updates

- Microsoft.Bcl.Json.Sources - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- Microsoft.CSharp - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- Microsoft.Win32.Registry - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.ComponentModel.Annotations - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Data.SqlClient - 4.7.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Diagnostics.EventLog - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.IO.Pipelines - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Net.Http.WinHttpHandler - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Net.WebSockets.WebSocketProtocol - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Reflection.Metadata - 1.7.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Runtime.CompilerServices.Unsafe - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Security.Cryptography.Cng - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Security.Cryptography.Pkcs - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Security.Cryptography.Xml - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Security.Permissions - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Security.Principal.Windows - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.ServiceProcess.ServiceController - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Text.Encodings.Web - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Threading.Channels - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- Microsoft.Extensions.DependencyModel - 3.0.0-preview4-27522-01 (parent: Microsoft.NETCore.App)
- Microsoft.NETCore.Platforms - 3.0.0-preview4.19164.7 (parent: Microsoft.NETCore.App)

* Update dependencies from https://github.com/aspnet/EntityFrameworkCore build 20190321.4

- Microsoft.EntityFrameworkCore.Tools - 3.0.0-preview4.19171.4
- Microsoft.EntityFrameworkCore.SqlServer - 3.0.0-preview4.19171.4
- dotnet-ef - 3.0.0-preview4.19171.4
- Microsoft.EntityFrameworkCore - 3.0.0-preview4.19171.4
- Microsoft.EntityFrameworkCore.InMemory - 3.0.0-preview4.19171.4
- Microsoft.EntityFrameworkCore.Relational - 3.0.0-preview4.19171.4
- Microsoft.EntityFrameworkCore.Sqlite - 3.0.0-preview4.19171.4

* Update dependencies from https://github.com/aspnet/Extensions build 20190321.4

- Mono.WebAssembly.Interop - 3.0.0-preview4.19171.4
- Microsoft.JSInterop - 3.0.0-preview4.19171.4
- Microsoft.Internal.Extensions.Refs - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Diagnostics.HealthChecks - 3.0.0-preview4.19171.4
- Microsoft.Extensions.DiagnosticAdapter - 3.0.0-preview4.19171.4
- Microsoft.Extensions.DependencyInjection.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.DependencyInjection - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.Xml - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.UserSecrets - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.KeyPerFile - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.Json - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.Ini - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.FileExtensions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.EnvironmentVariables - 3.0.0-preview4.19171.4
- Microsoft.Extensions.FileProviders.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.CommandLine - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.AzureKeyVault - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration - 3.0.0-preview4.19171.4
- Microsoft.Extensions.CommandLineUtils.Sources - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Caching.StackExchangeRedis - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Caching.SqlServer - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Caching.Memory - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Caching.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.ActivatorUtilities.Sources - 3.0.0-preview4.19171.4
- Microsoft.AspNetCore.Testing - 3.0.0-preview4.19171.4
- Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.0.0-preview4.19171.4
- Microsoft.AspNetCore.Analyzer.Testing - 3.0.0-preview4.19171.4
- Internal.AspNetCore.Analyzers - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.Binder - 3.0.0-preview4.19171.4
- Microsoft.Extensions.FileProviders.Composite - 3.0.0-preview4.19171.4
- Microsoft.Extensions.FileProviders.Embedded - 3.0.0-preview4.19171.4
- Microsoft.Extensions.FileProviders.Physical - 3.0.0-preview4.19171.4
- Microsoft.Extensions.WebEncoders - 3.0.0-preview4.19171.4
- Microsoft.Extensions.ValueStopwatch.Sources - 3.0.0-preview4.19171.4
- Microsoft.Extensions.TypeNameHelper.Sources - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Primitives - 3.0.0-preview4.19171.4
- Microsoft.Extensions.ParameterDefaultValue.Sources - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Options.DataAnnotations - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Options.ConfigurationExtensions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Options - 3.0.0-preview4.19171.4
- Microsoft.Extensions.ObjectPool - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.TraceSource - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.Testing - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.EventSource - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.Debug - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.Console - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.Configuration - 3.0.0-preview4.19171.4
- Microsoft.Extensions.FileSystemGlobbing - 3.0.0-preview4.19171.4
- Microsoft.Extensions.HashCodeCombiner.Sources - 3.0.0-preview4.19171.4
- Microsoft.Extensions.HostFactoryResolver.Sources - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Hosting - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Hosting.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Http - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Localization - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Localization.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.AzureAppServices - 3.0.0-preview4.19171.4

* Grab latest from other aspnet repos
- brings everything into coherence
- aspnet/Extensions packages with version 3.0.0-preview4.19172.1 from build 20190322.1
- aspnet/AspNetCore-Tooling packages with version 3.0.0-preview4.19172.2 from build 20190322.2
- aspnet/EntityFrameworkCore packages with version 3.0.0-preview4.19172.3 from build 20190322.3
2019-03-22 17:33:20 -07:00
Javier Calvarro Nelson 9f1a978230
[Infrastructure improvements] (#8275)
* Improved selenium start and tear down
  * Selenium is set up and torn down in an assembly fixture.
  * Selenium is initialized lazily and in a non-blocking way.
  * Selenium processes are tracked as part of the build and their pids
    written to a file on disk for cleanup in the event of unexpected
    termination of the test process.
  * Browser fixture retries with linear backoff to create a remote
    driver. Under heavy load (like when we are doing a simultaneous NPM
    restore) the selenium server can become unresponsive so we retry
    three times, with a longer comand timeout allowance each time up to
    a max of 3 minutes.
* Moved test project setup to build time instead of runtime.
  * Added target PrepareForTest to create the required files for testing
    * The template creation folder.
    * The template props file to use our built packages.
    * The folder for the custom hive.
  * Added assembly metadata attributes to find all the data we need to
    run the tests.
    * Path to the artifacts shipping packages folder.
    * Path to the artifacts non-shipping packages folder.
    * Path to the test templates creation folder.
    * Path to use for the custom templating hive used in tests.
  * Proper cleanup as part of the build
    * Remove the test templates creation folder.
    * Remove the test packages restore path.
    * Recreate the test templates creation folder.
    * Recreate the test packages restore path.
  * Generated Directory.Build.Props and Directory.Build.Targets in the
    test templates creation folder.
  * Cleaned up potentially stale templatetestsprops.
* Improved test flows
  * Initialization is done lazily and asynchronously.
    * Selenium
    * Browser fixture
    * Template initialization.
  * Flattened test flows to avoid assertions inside deep callstacks.
    * All assertions happen at the test level with improved error messages.
      * With the exception of the migrations assertions.
    * Assertions contain information about which step failed, for what
      project and what failure details.
  * Broke down tests to perform individual steps instead of mixing build
    and publish.
    * Publish project.
    * Build project. (Debug)
    * Run built project.
    * Run published project.
  * Concentrated build logic into the Project class.
    * Context between the different steps of a test is maintained in
      this class.
    * All operations that require coordination are performed within this
      class.
      * There is a lock for dotnet and a lock for nodejs. When building
        SPAs we acquire the nodejs lock to correctly prevent multiple
        runs of nodejs in parallel.

[ApiAuthorization template cleanups]
  * Fix preview3 issues with breaking changes on Entity framework by
    manually configuring the model in ApiAuthorizationDbContext.
  * Add app.db to the project file when using local db.
  * Fix linting errors on angular template.
  * Fix react tests
  * Add tests to cover new auth options in the SPA templates.
2019-03-20 08:44:20 +01:00
Doug Bunting bcead68f0c React to EntityFrameworkCore and AspNetCore-Tooling breaking changes
- avoid `[Obsolete]` EF Core method
- mirror recent `RazorIntegrationTestBase` changes in this repo
2019-03-18 19:36:09 -07:00