Commit Graph

538 Commits

Author SHA1 Message Date
Pranav K 04ecd5539f
Merge pull request #23365 from dotnet-maestro-bot/merge/release/5.0-preview7-to-master
[automated] Merge branch 'release/5.0-preview7' => 'master'
2020-06-26 18:36:03 -07:00
Pranav K 23a3e845e5
Add RazorLangVersion 5.0 (#23408)
* Add RazorLangVersion 5.0

* Fixup more tests. Add a test for 3.1
2020-06-26 17:49:29 -07:00
Brennan e4158e8a59
Quarantine Publish_HostedApp_VisualStudio_WithSatelliteAssemblies and Publish_UpdatesFilesWhenSourcesChange (#23398)
* Update WasmPublishIntegrationTest.cs

* Update WasmCompressionTests.cs
2020-06-26 22:42:48 +00:00
Pranav K 65d9429a7d
Add workaround for https://github.com/mono/linker/issues/1298 (#23368) 2020-06-26 08:54:38 -07:00
Eric Erhardt 4891eadbbc
Remove the file extension in CreateBlazorTrimmerRootDescriptorFile (#23330)
The linker doesn't resolve assemblies correctly if the file extension (.dll) is included in the assembly name in the descriptor xml file.

See also https://github.com/mono/linker/issues/1294
2020-06-26 08:34:03 -07:00
Pranav K a93ff60904
SDK fixes (#23317)
* Fix up Blazor ILLink Descriptor files

1. Add the typegranularity file to TrimmerRootDescriptor.
2. Remove the application assembly descriptor file, since the application assembly is passed in as a RootAssembly already.

* Razor SDK fixups for blazor

* Only include dlls when generating type granular assemblies
* Write server-worker to the obj directory

Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
2020-06-25 08:52:53 -07:00
Pranav K f6a6e4bd07
Replat blazor on net5 (#23078)
* Replat blazor on net5

* Make all e2e tests pass

* Fixup

* Update js files

* Fixups

* Fixup

* Fixup

* Skip globalization tests

* Undo workarounds

* PR feedback

* Update dependencies from https://github.com/dotnet/runtime build 20200622.6

System.ComponentModel.Annotations , System.Diagnostics.DiagnosticSource , System.Diagnostics.EventLog , Microsoft.Extensions.Logging.Configuration , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Logging.EventLog , Microsoft.Extensions.Logging.EventSource , Microsoft.Extensions.Logging.TraceSource , Microsoft.Extensions.Options , Microsoft.Extensions.Options.ConfigurationExtensions , Microsoft.Extensions.Options.DataAnnotations , Microsoft.Extensions.Primitives , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging , Microsoft.Extensions.Internal.Transport , Microsoft.Extensions.Http , Microsoft.Extensions.Caching.Abstractions , Microsoft.Extensions.Caching.Memory , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.Binder , Microsoft.Extensions.Configuration.CommandLine , Microsoft.Extensions.Configuration.EnvironmentVariables , Microsoft.Extensions.Configuration.FileExtensions , Microsoft.Extensions.Configuration.Ini , Microsoft.Extensions.Configuration.Json , Microsoft.Extensions.Configuration.UserSecrets , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyInjection.Abstractions , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileProviders.Composite , Microsoft.Extensions.FileProviders.Physical , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.HostFactoryResolver.Sources , Microsoft.Extensions.Hosting , Microsoft.Extensions.Hosting.Abstractions , Microsoft.Extensions.Configuration.Xml , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.Platforms , Microsoft.Win32.Registry , Microsoft.Win32.SystemEvents , Microsoft.NETCore.App.Internal , Microsoft.NETCore.App.Ref , System.Drawing.Common , System.ServiceProcess.ServiceController , System.Text.Encodings.Web , System.Text.Json , System.Threading.Channels , System.Windows.Extensions , System.Security.Principal.Windows , System.Security.Permissions , System.Security.Cryptography.Xml , System.IO.Pipelines , System.Net.Http.Json , System.Net.Http.WinHttpHandler , System.Net.WebSockets.WebSocketProtocol , System.Reflection.Metadata , System.Runtime.CompilerServices.Unsafe , System.Security.Cryptography.Cng , System.Security.Cryptography.Pkcs
 From Version 5.0.0-preview.7.20321.2 -> To Version 5.0.0-preview.7.20322.6

* Update js file

* Fix version

* Fixup

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2020-06-23 18:19:55 -07:00
Doug Bunting ab7f3f2018
Enable `/warnAsError` (#23072)
* Enable `/warnAsError` in Windows builds
  - already enabled in non-Windows builds because override existed only in build.ps1
* Allow some warnings related to closed issues
  - common `<NoWarn>$(NoWarn);CS1591</NoWarn>` case unchanged
    - /Directory.Build.props ensures that warning remains a warning but doesn't hide it
* !fixup! Root build.sh _does_ disable warnings as errors
  - variable eng/common/tools.sh uses named `warn_as_error`
2020-06-18 15:59:34 -07:00
Doug Bunting c4c6e25a06
Add missing doc files and cleanup nits (#22931)
* nit: Remove useless `$(HasReferenceAssembly)` settings
  - set in /Directory.Build.targets
    - `true` only in `$(IsAspNetCoreApp)` projects
* nit: Remove useless `$(CompileUsingReferenceAssemblies)` settings
  - no current versioning differences between ref/ and src/ assemblies when targeting default TFM
* Add more `$(GenerateDocumentationFile)` settings
  - increases the number of generated doc files, mostly without problems
- !fixup! correct typo in `DebugProxyHost` doc comments
    - was not generating a doc file before
  - remove previous (ineffective) src/Components/Directory.Build.targets setting
  - nit: remove a duplicate `$(GenerateDocumentationFile)` setting
* nit: Remove useless `$(IsPackable)` settings
  - only analyzers and implementation projects are packable by default
    - main use case for explicit setting is projects shipping only in shared framework
  - conditional setting in src/Mvc/Directory.Build.props just subset logic in /Directory.Build.targets
* nit: Remove useless `$(IsProjectReferenceProvider)` settings
  - only implementation projects are providers by default
* nit: Remove useless `$(IsTestAssetProject)` settings
  - set in src/Mvc/test/WebSites/Directory.Build.props
* !fixup! Looks like `InProcessNewShimWebSite` must compile w/o ref/ assemblies
  - restore `$(CompileUsingReferenceAssemblies)` in this one project
2020-06-17 13:04:45 -07:00
N. Taylor Mullen 538c462c05 Enable Helix tests for Microsoft.AspNetCore.Mvc.Razor.Extensions.* projects.
- Enabled Helix for:
    - `Microsoft.AspNetCore.Mvc.Razor.Extensions.Test`
    - `Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X.Test`
    - `Microsoft.AspNetCore.Mvc.Razor.Extensions.Version2_X.Test`
- These tests depended on our MVC shim project's deps.json's to exist in the test bin directory during publish. Therefore added an additional target copy over those assets at publish time.
- There were some tests that were relying on source positions from a string to match a runtime generated source position. In Helix dll's are built on Windows (string's get compiled with \r\n) and then deployed to potentially non-Windows boxes resulting in mismatches of expectations. To address this I changed the test that had this dependency to dynamically generate the input string.
- Our common language test project used to rely on test files being on disk. At some point in the past those test files started being embedded in the assembly but we maintained directory checking logic to ensure various directories existed on disk (no longe required). Changed the logic to not enforce directories to be on disk (they aren't in Helix) and instead only rely on the embedded TestFiles.

dotnet/aspnetcore#22100
2020-06-17 11:49:49 -07:00
Todd Grunke 56374ab393 use var where appropriate 2020-06-15 13:15:38 -07:00
Todd Grunke 2c594199c3 Fix a bug in DefaultRazorSourceLineCollection.GetLineStarts 2020-06-12 17:56:19 -07:00
Todd Grunke a1dd898994 Get rid of LineTrackingStringBuffer class and instead use the line information provided by RazorSourceDocument.
This additionally gets rid of an extra whole buffer allocation in the ParserContext. The most complex bit of the change is around avoiding TextLineCollection.GetLocation.

Overall, I'm seeing a pretty big win here, about 35% less time spent in RazorSyntaxTree.Parse for the typing scenario I was doing in a very large file.
2020-06-12 17:22:24 -07:00
Todd Grunke 073cd0aa40
Merge pull request #22877 from dotnet/dev/toddgrun/MorePerfOptimizations
Dev/toddgrun/more perf optimizations
2020-06-12 13:25:31 -07:00
Todd Grunke 43a628e9fb Small memory allocation optimization in DefaultRazorTagHelperBinderPhase.TrySplitNamespaceAndType
This method allocated multiple strings on every invocation when they were rarely needed. With this change, I see a reduction in memory allocated during RazorProjectEngine.ProcessDesignTime of 1.4%.
2020-06-12 12:04:47 -07:00
Javier Calvarro Nelson 53696e4228
Quarantine static web assets tests so we can capture more data for diagnostics (#22876) 2020-06-12 10:14:22 -07:00
Todd Grunke 9cf611b9e2 Revert change to EndLocation as it was incorrectly changed. 2020-06-12 08:28:32 -07:00
Todd Grunke 904fd19605 A couple more perf optimizations focused around memory allocations.
This is the last of the easy wins that I could find for typing in large razor files (minus the logged bug to move the divergence checker code off the UI thread). In the profile for the large document editing, these changes reduce allocated memory during RazorSyntaxTree.Parse by about 25%. CPU wise, the win isn't quite as dramatic, only a couple percent improvement under RazorSyntaxTree.Parse.
2020-06-11 18:11:29 -07:00
Pranav K 0a42cca945
Razor SDK build ordering issues (#22684)
* Razor SDK build ordering issues

* Build the SDK completely regardless of the MSBuild runtime type
* Split SDK integration tests into a separate project. Clean up project file

* Add project to sln

* Update Microsoft.NET.Sdk.Razor.csproj

* Fixup tests

* Avoid rebuilding dependencies if they appear up to date. Fixup tests

* Fixup

* Update CSharp.Common.props

* Cleanup the build
2020-06-11 21:16:05 +00:00
Todd Grunke 73f04eecac
Add mechanism where IR token generation can defer allocation of it's … (#22792)
* Add mechanism where IR token generation can defer allocation of it's content.

It turns out that many IR tokens access their content, and thus allocating it is unnecessary. In particular, with this change against a large file, I've seen allocations under SyntaxNodeExtensions.GetContent reduced by about 33%. Performance wise, I've seen the number of CPU samples in the profile under GetContent reduce by about 40% (in my sample I typed 26 characters and there was about 600 ms less spent in GetContent)

* ContentGetter => ContentFactory

* Make tests happy with the switch from IntermediateToken to IntermediateTokenWithDeferreedContentAllocation

* IntermediateTokenWithDeferredContentAllocation => LazyIntermediateToken
2020-06-11 18:20:41 +00:00
Todd Grunke 837c639041 Expand the SyntaxTokenCache to contain more than just whitespace tokens. 2020-06-08 15:37:35 -07:00
Todd Grunke a5d433103c Stop boxing to compare the SyntaxKind enum during tokenization
This accounts for a significant portion of razor's allocations during parsing.
2020-06-08 10:45:11 -07:00
John Luo 836001cf96
Set PublishWindowsPdb for Razor tooling packages (#22605) 2020-06-05 23:38:17 +00:00
dotnet-maestro[bot] cdb87ee776
[master] Update dependencies from dotnet/runtime (#22571)
* Update dependencies from https://github.com/dotnet/runtime build 20200605.1

System.ComponentModel.Annotations , System.Diagnostics.DiagnosticSource , System.Diagnostics.EventLog , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Configuration , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Logging.EventLog , Microsoft.Extensions.Logging.EventSource , Microsoft.Extensions.Logging.TraceSource , Microsoft.Extensions.Options , Microsoft.Extensions.Options.ConfigurationExtensions , Microsoft.Extensions.Options.DataAnnotations , Microsoft.Extensions.Primitives , Microsoft.Extensions.Logging , Microsoft.Extensions.Internal.Transport , Microsoft.Extensions.Http , Microsoft.Extensions.Hosting.Abstractions , Microsoft.Extensions.Caching.Abstractions , Microsoft.Extensions.Caching.Memory , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.Binder , Microsoft.Extensions.Configuration.CommandLine , Microsoft.Extensions.Configuration.EnvironmentVariables , Microsoft.Extensions.Configuration.FileExtensions , Microsoft.Extensions.Configuration.Ini , Microsoft.Extensions.Configuration.UserSecrets , Microsoft.Extensions.Configuration.Xml , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyInjection.Abstractions , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileProviders.Composite , Microsoft.Extensions.FileProviders.Physical , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.Hosting , Microsoft.Extensions.Configuration.Json , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.Win32.Registry , Microsoft.Win32.SystemEvents , Microsoft.NETCore.Platforms , Microsoft.NETCore.App.Internal , Microsoft.NETCore.App.Ref , System.Drawing.Common , System.Text.Encodings.Web , System.Text.Json , System.Threading.Channels , System.Windows.Extensions , System.ServiceProcess.ServiceController , System.Security.Principal.Windows , System.IO.Pipelines , System.Net.Http.Json , System.Net.Http.WinHttpHandler , System.Net.WebSockets.WebSocketProtocol , System.Reflection.Metadata , System.Runtime.CompilerServices.Unsafe , System.Security.Cryptography.Cng , System.Security.Cryptography.Pkcs , System.Security.Cryptography.Xml , System.Security.Permissions
 From Version 5.0.0-preview.7.20303.11 -> To Version 5.0.0-preview.7.20305.1

* Use the array overload of Task.WhenAny

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Ajay Bhargav Baaskaran <ajbaaska@microsoft.com>
2020-06-05 21:22:58 +00:00
Pranav K 1656b4bfcf
Update SDK tests (#22560)
* Add some test for MVC 3.1 \ Blazor 3.1
* Remove tests and testapps for 1.1 \ 2.2
2020-06-05 11:19:17 -07:00
Todd Grunke da52d6b636
Move IsSpacingToken perf optimizations down to base class (#22555)
This gives the HtmlMarkupParser the same non-allocating behavior for it's IsSpacing* method invocations. Profile from following feedback ticket showed ~100ms time spent doing these allocations: https://developercommunity.visualstudio.com/content/problem/1006207/vs-2019-constant-freezing-please-wait-for-an-edito.html?childToView=1065769
2020-06-04 23:56:50 +00:00
Ajay Bhargav B c329dc555a
Quarantined flaky RazorSDK tests (#22553) 2020-06-04 22:24:23 +00:00
Pranav K e89abd13d4
Reduce Razor SDK copy retries (#22448)
* Retry fewer times when building locally
* Fail as usual when building in CI
2020-06-03 16:04:29 -07:00
Pranav K 9eaef28b31
Attempt to capture binlogs when test times out (#22468) 2020-06-03 10:02:03 -07:00
Brennan 381ac51af6
Fix nullable warning in IntegrationTestBase (#22487) 2020-06-03 07:48:35 -07:00
Brennan b5e37866d5
Quarantine flaky tests (#22450) 2020-06-02 13:01:54 -07:00
Ajay Bhargav B d68ff6182e
Add IVT from Razor.Language to LanguageServerClient.Razor assembly (#22474) 2020-06-02 19:21:44 +00:00
John Luo 79d3e3e701
Add migrated projects to Razor.sln (#22378) 2020-06-01 13:17:55 -07:00
Tanay Parikh d117dde356
Minor Documentation Grammar Fix 2020-05-29 17:53:29 -07:00
John Luo a65a466173
Add a transport package for Mvc.Razor.Extensions pdbs (#22299)
* Add a transport package for Mvc.Razor.Extensions pdbs

* Feedback

* Add two more pdbs
2020-05-28 19:45:52 -07:00
John Luo b73662ec4f
Always copy Mvc.Razor.Extensions.dll to razor sdk output (#22327) 2020-05-28 14:36:20 -07:00
John Luo 68fea5b9c2 Remove files that should stay in aspnetcore-tooling
Also address some lingering feedback
2020-05-27 16:05:14 -07:00
John Luo 7b56497d5e Merge branch 'master' of ..\aspnetcore-tooling2\ 2020-05-27 15:14:25 -07:00
John Luo 297c82f7a4 Fix build 2020-05-27 12:23:09 -07:00
Pranav K 58cc148ada Skipping flaky tests (dotnet/aspnetcore-tooling#1926)
* Skipping flaky tests

* Update StaticWebAssetsIntegrationTest.cs\n\nCommit migrated from beba53c682
2020-05-26 22:17:26 -07:00
Pranav K ed132be5fe Update StaticWebAssetsIntegrationTest.cs (dotnet/aspnetcore-tooling#1923)
\n\nCommit migrated from aa8bade12e
2020-05-26 22:17:26 -07:00
John Luo 335364165f Fix race in build 2020-05-26 18:10:34 -07:00
John Luo 50f3a16571 aspnetcore-tooling migration fixups 2020-05-26 12:31:49 -07:00
John Luo c565c2a4f1 Merge branch 'master' of ..\AspNetCore-Tooling\ into johluo/tooling-soncolidation-source-2 2020-05-16 17:50:17 -07:00
Todd Grunke d782a06462 Decrease allocations from using method groups (dotnet/aspnetcore-tooling#1896)
* Previous optimization didn't help as much as intended.

By specifying a method group as the arguments to method like ReadWhile, an allocation was still occurring. Instead, cache the Func as a member in the class and use it instead of the method group.\n\nCommit migrated from 2e6aa150bc
2020-05-13 16:00:34 -07:00
Todd Grunke 016fd1ee9e Improve CSharpLanguageCharacteristics.MapKeyword performance (dotnet/aspnetcore-tooling#1879)
* Improve CSharpLanguageCharacteristics.MapKeyword performance

The razor typing perf test profile I'm looking at has 156 ms of CPU cycles spent in this method, mostly in Enum.ToString()
\n\nCommit migrated from e821a4642e
2020-05-11 12:42:39 -07:00
Todd Grunke a70de6b67b Small perf improvement in TokenizerBackedParser.Accept and ReadWhile. (dotnet/aspnetcore-tooling#1882)
In the razor perf typing test, Accept was showing 27 ms allocating enumerators. Additionally, modified ReadWhile to only allocate if it would return a non-empty collection (and to not use the complexity introduced by using yield enumerators)\n\nCommit migrated from 27a14af36a
2020-05-11 10:28:31 -07:00
Todd Grunke 485924edd2 Improve Annotation and SpanContext performance. (dotnet/aspnetcore-tooling#1881)
The razor perf test shows about 70 ms CPU of WithSpanContext is in allocation. GetAnnotation similarly is showing about 60 ms in allocation (of which this only partly improves)\n\nCommit migrated from a060f129ff
2020-05-11 10:27:40 -07:00
Todd Grunke d1e7d8e466 Improve HtmlTokenizer.AtToken performance. (dotnet/aspnetcore-tooling#1880)
Our razor typing test measured 153 CPU ms in this method. Optimized by fewer calls to CurrentCharacter, not checking '<' twice, and uswing a switch stmt.\n\nCommit migrated from c601c2f11e
2020-05-11 10:26:56 -07:00
dotnet-maestro[bot] f701a188c2 [master] Update dependencies from dotnet/arcade dotnet/runtime (dotnet/aspnetcore-tooling#1873)
* Update dependencies from https://github.com/dotnet/runtime build 20200507.11

- Microsoft.Extensions.Logging: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20257.11
- Microsoft.Extensions.Configuration.Json: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20257.11
- Microsoft.Extensions.DependencyModel: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20257.11
- Microsoft.NETCore.App.Runtime.win-x64: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20257.11
- Microsoft.NETCore.Platforms: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20257.11
- Microsoft.NETCore.App.Internal: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20257.11
- Microsoft.NETCore.App.Ref: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20257.11
- System.Diagnostics.DiagnosticSource: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20257.11
- System.Text.Encodings.Web: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20257.11
- System.Reflection.Metadata: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20257.11

* Update dependencies from https://github.com/dotnet/arcade build 20200506.5

- Microsoft.DotNet.Arcade.Sdk: 5.0.0-beta.20228.4 -> 5.0.0-beta.20256.5

* Update SDKs and TFMs

* Try fixing SDK target

* Try removing reference to xunit?

* Try again?

* Revert test tfm

* Remove more xunit references

* Update dependencies from https://github.com/dotnet/runtime build 20200508.3

- Microsoft.Extensions.Logging: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20258.3
- Microsoft.Extensions.Configuration.Json: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20258.3
- Microsoft.Extensions.DependencyModel: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20258.3
- Microsoft.NETCore.App.Runtime.win-x64: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20258.3
- Microsoft.NETCore.Platforms: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20258.3
- Microsoft.NETCore.App.Internal: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20258.3
- Microsoft.NETCore.App.Ref: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20258.3
- System.Diagnostics.DiagnosticSource: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20258.3
- System.Text.Encodings.Web: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20258.3
- System.Reflection.Metadata: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20258.3

* Use `dotnet msbuild` in CI builds

* Update dependencies from https://github.com/dotnet/runtime build 20200509.5

- Microsoft.Extensions.Logging: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20259.5
- Microsoft.Extensions.Configuration.Json: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20259.5
- Microsoft.Extensions.DependencyModel: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20259.5
- Microsoft.NETCore.App.Runtime.win-x64: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20259.5
- Microsoft.NETCore.Platforms: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20259.5
- Microsoft.NETCore.App.Internal: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20259.5
- Microsoft.NETCore.App.Ref: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20259.5
- System.Diagnostics.DiagnosticSource: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20259.5
- System.Text.Encodings.Web: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20259.5
- System.Reflection.Metadata: 5.0.0-preview.5.20253.7 -> 5.0.0-preview.5.20259.5

* Try undoing `$(EnableFrameworkPathOverride) workaround

* Fix windows builds

* Fix NET.sdk.Razor.Test

* Try fix codecheck

* Skip tests failing with CS1701

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: John Luo <johluo@microsoft.com>
Co-authored-by: Doug Bunting <6431421+dougbu@users.noreply.github.com>\n\nCommit migrated from a60b721dbb
2020-05-11 02:32:33 +00:00
Todd Grunke b0d819f1e8 Several changes targeted to improving perf of RazorSyntaxTree.Parse (dotnet/aspnetcore-tooling#1874)
* Several changes targeted to improving perf of RazorSyntaxTree.Parse

1) Modify ParserHelpers.IsNewLine to use a switch instead of Array.IndexOf
2) Modify Tokenizer.CreateToken to take in an array of RazorDiagnostics rather than an IReadOnlyList as that was causing a ToArray call on an empty diagnostics very often (during a SyntaxFactory.Token call)
3) Modify TokenizerBackedParser.Putback to allow an IReadOnlyList as a parameter to not require creation of a reverse enumerator.
4) Cut down allocations in HtmlMarkupParser.GetParserState by:
    a) Using an IReadOnlyList instead of IEnumerable to get rid of the allocations from the .any calls
    b) Don't allocate while reading initial spacing
    c) Inline the IsSpacingToken code so cut down on code executed and need to allocate a separate Func
5) Modify CSharpCodeParser.IsSpacingToken to now be a set of methods instead of a single method that allocates a Func. This is a very high traffic method.
6) Implement a fairly rudimentary Whitespace token cache, as they can be reused. This was based off Roslyn's SyntaxNodeCache, but simplified significantly. It's probably worth investigating whether you should more fully embrance token caching outside of whitespace.

* PR feedback and added one more optimization in LocateOwner that's been bugging me for years. Assuming all chidlren are contained within a nodes span, we can short-circuit the DFS this code was doing significantly cutting time in this method which is important as it's exercised on the main thread during typing.

* missed a space

* StringTextToSnapshot's switch to IsNewLine needed to use start as the index to begin the search, not zero.\n\nCommit migrated from 45411f7526
2020-05-09 06:06:13 -07:00
N. Taylor Mullen ed7338c15a Remove RazorDeveloperTools because they were infrequently used and caused problems.
\n\nCommit migrated from c2d717bc98
2020-05-08 16:52:27 -07:00
Todd Grunke c027fcf8e6 Missed a minor optimization as I wasn't using a parameter for the binary search method. The files I've opened don't actually hit the code path (they always hit the optimization for checking the previous/next/current line)
\n\nCommit migrated from 75f34eec60
2020-05-07 20:44:15 -07:00
Todd Grunke 069b409dd4 Fix perf issue in LineTrackingStringbuffer.ScanLines.
I noticed several hundred ms spent in this method from a customer profile. Primarilly, the method was doing a linear scan of all lines trying to find one that contained the requested position. I changed this to a binary search, but kept/improved the optimization around checking next/previous lines before instigating the search.

Note, there was also a bug where the old code did:

else if (absoluteIndex > _currentLine.Index && _currentLine.Index + 1 < _lines.Count)

but it should have been coparing absoluteIndex with _currentLine.Start
\n\nCommit migrated from 32a0f28708
2020-05-07 17:35:41 -07:00
N. Taylor Mullen 4bdf89bdf9 Fix more policheck failures in MSN.cshtml\n\nCommit migrated from c2507ca208 2020-05-04 13:49:38 -07:00
Javier Calvarro Nelson 7eca4ab2ec [Static web assets] Use prebuilt packages in tests
* Avoids running dotnet restore and dotnet pack during tests which caused test hangs\n\nCommit migrated from 300eeb08d2
2020-05-04 12:19:08 -07:00
Javier Calvarro Nelson 1af2060d53 [Fixes dotnet/aspnetcore-tooling#17233 dotnet/aspnetcore-tooling#18543 dotnet/aspnetcore-tooling#18707 dotnet/aspnetcore-tooling#18561][Static web assets] Improve test reliability (dotnet/aspnetcore-tooling#1844)
* Improves the reliability of the affected tests with retries
* Pack and restore fail/hang in some occasions. The retries minimize
  the chances of these happening.
* For pack, we retry a few times but we ultimately continue as we've
  seen the package gets generated when pack hangs and looks correct.
  If that were not to be the case in the future, the test will fail.\n\nCommit migrated from 0d03b57617
2020-04-28 10:25:49 -07:00
N. Taylor Mullen 986d465c19 Fix PoliCheck failures.
Addresses:
- https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1111066
- https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1111067
- https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1111068
\n\nCommit migrated from 9603451af9
2020-04-27 13:38:52 -07:00
Jan Joneš 1d56c516f8 Implement `EmptyOrWhiteSpaceWriter.Encoding` 2020-04-08 11:59:18 -07:00
Kevin Pilch f34033a415 Add .vsconfig files in root and beside slns 2020-03-31 14:25:44 -07:00
Ryan Brandenburg 36c2448bd3 Serialize project state from VS to project.razor.json (dotnet/aspnetcore-tooling#1711)
Serialize project state to project.razor.json\n\nCommit migrated from fef50ba623
2020-03-31 11:07:08 -07:00
Ryan Brandenburg 0c84b3abd5 Serialize project state from VS to project.razor.json (dotnet/aspnetcore-tooling#1711)
Serialize project state to project.razor.json\n\nCommit migrated from fef50ba623
2020-03-31 11:07:08 -07:00
N. Taylor Mullen 926bbfa14b Update Roslyn tooling versions.
- Moved from 3.4.0 Roslyn to 3.6.0-3.20168.4 for tooling builds.
- As part of this change I found that our package versions were starting to get really confusing for which Roslyn packages were runtime vs. which ones were tooling. Therefore, I rebranded each of the versions to be `Tooling_` or `Runtime_` accordingly. Moved all `VSIX_` => `Tooling_`.
- Roslyn's bits depended on a newer `StreamJsonRpc`, `Microsoft.VisualStudio.Threading` and `Microsoft.VisualStudio.LanguageServer.Client` packages so updated those dependencies to not have version conflicts.
- This new update brought in loads of new analyzers. Went through the warnings and either applied the fix or suppressed.
- This is in preparation for consuming new pieces from latest Roslyn packages.
\n\nCommit migrated from df5261e418
2020-03-24 12:08:32 -07:00
Tanay Parikh 26c5807c98 <text> Tag IntelliSense Support (dotnet/aspnetcore-tooling#1675)
* <text> Tag IntelliSense Implementation

* Text node language context support

* Added Tests\n\nCommit migrated from a0f99cd14f
2020-03-12 22:45:50 -07:00
N. Taylor Mullen d69938f36d Initialize LSP documents earlier.
- Prior to this we would start tracking LSP documents when an `ITextView` was associated with our `ITextBuffer`. The issue with this is when the `ILanguageClient` infrastructure initializes itself before we do and starts our `LanguageServer` it's we start retrieving requests that require access to our `LSPDocumentManager`. That's an issue because our `LSPDocumentManager` may not have been initialized yet resulting in failure to fulfill requests.
- Changed how we initialize `ITextBuffer`s. Before we were setting up all of the logic to change the content type of a text buffer and populate its properties at the `EditorFactory` layer; however, how we were doing it (waiting for the ITextBuffer to load) resulted in `ITextDocumentListener` events firing prior to our content type changes would occur. This is a problem becasue the `ILanguageaClient` infrastructure will start making its decision to turn on LSP features for your `ITextBuffer` at the point and time. Now we change the `ITextBuffer`s content type (and set properties) during the `ITextDocumentListener` created pipeline.

This resulted in almost all of our logic in our editor factory to be split out into two classes.
  1. `LSPEditorFeatureDetector`, we needed to be able to detect the "enabledness" of features in two locations. Once at the `EditorFactory` layer to ensure we know when to disallow other editor factories participation in the `ITextBuffer` creation and a second at the `ITextDocumentListener` layer when we inspect an `ITextDocument` and need to determine if we want to "initialize" it (change its content type etc.).
  2. `RazorLSPTextDocumentCreatedListener`, this is our `ITextDocumentListener` i've been referring to. It now houses the logic on how to change the content type and populate the `ITextBuffer`'s properties.

- Changed our `LSPDocumentManager` to no longer depend on `ITextView`s for ref counting documents. Instead we just take an `ITextBuffer` and keep an internal count of how many times we've been asked to track a document. In practice this number never goes past 1 however it doesn't hurt to be defensive.
- Added IVT from CodeAnalysis.Razor to our LanguageServerClient project in order to enable the retrieval of our `FilePathComparison` type.
- Given the new refactoring of our feature detector and the `ITextDocumentListener` pieces I was able to add extensive testing to ensure all things work as expected.

Fixes dotnet/aspnetcoredotnet/aspnetcore-tooling#19160
\n\nCommit migrated from d0a7dfce09
2020-03-02 20:09:03 -08:00
N. Taylor Mullen b89d98da19 Split Razor Language Server into library and executable.
- This is a pre-requisite work item to run our language server in-process in Visual Studio. VS is a .NET framework application so we can't have a language server which targets netcoreapp be loaded. Therefore, in order to account for this I needed to re-target our language server library to netstandard2.0 so it can be referenced via a netcoreapp (rzls.exe) and a .NET framework app.
- Added a new `rzls` project to be the maintainer of our OOP language server
- Had to make adjustments to the existing language server project to be compatible with netstandard2.0.
- Created a new `RazorLanguageServer` type to initiate our Language Server but not start and initialize it. To enable a consumer to initialize the new language server I had to use private reflection to `Initialize` O#'s internal type. This is a temporary measure which I intend to expand the O# lib to make their Initialize method public.

dotnet/aspnetcoredotnet/aspnetcore-tooling#19185
\n\nCommit migrated from 79841b9371
2020-02-28 22:32:47 -08:00
Ajay Bhargav B d41276b0fa Publish generated HTML in the client (dotnet/aspnetcore-tooling#1633)
* Publish generated HTML in the client

* feedback

* fix
\n\nCommit migrated from a666c6f5e3
2020-02-27 14:49:52 -08:00
Ajay Bhargav B b84fc9b3b6 Generate pure HTML document as part of Razor code generation (dotnet/aspnetcore-tooling#1624)
* Generate pure HTML document as part of Razor code generation

* feedback
\n\nCommit migrated from 478e2ceda8
2020-02-25 13:40:08 -08:00
John Luo a5fc9defc4 Regenerate ref assemblies 2020-02-20 16:53:07 -08:00
John Luo 5f9f1ce183 Merge branch 'master' into johluo/migrating-extensions 2020-02-20 16:44:06 -08:00
John Luo 7d1f5d8c0b Updates for extensions migrations
- Multi-target ObjectPool
- Move Embedded.Manifest.Task.Internal.Entry to the public namespace
- Remove ref assemblies from AspNetCore.Testing
- Skip TestPathUtilitiesTest since it's a pattern we want to migrate away from
- Fix FileProviders.Abstractions version in Embedded.*.nuspec
- Add workarounds for project references to FileProviders.Embedded
2020-02-20 14:00:29 -08:00
Brennan Conroy 2d066dcd3e Apply some fixes 2020-02-19 14:18:29 -08:00
Ajay Bhargav Baaskaran f2dd6d4598 Add back DownloadFile.cs
Revert Razor.Runtime.Manual.cs and regenerate ref assemblies
2020-02-18 15:52:34 -08:00
Stephen Halter 88073f86ff Merge branch 'release/3.1' into master 2020-02-18 13:46:51 -08:00
Ajay Bhargav B f1ccf855eb LSP Razor formatting for Razor code block directives (dotnet/aspnetcore-tooling#1573)
LSP Razor formatting for Razor code block directives
- Support for @code/@functions block formatting
    - Except when it contains Markup or other Razor constructs
- Added a RazorFormattingService which is invoked by the RazorFormattingEndpoint.
- Added a custom razor/rangeFormatting command that the server can use to ask the client to format a range of the projected C# or HTML document
- Added a CSharpFormatter and HTMLFormatter that invoke the above mentioned command
- Added FormattingSpan and its corresponding visitor to represent Razor understanding of indentation
- Moved the document mapping code to a separate RazorDocumentMappingService service for ease of use
- Added necessary extension methods for convenience. Some of them were copied from Roslyn
- Some cleanup
- Added a C# test formatter to enable unit testing. Right now it calls Roslyn APIs directly. As far as I've seen its behavior is the same as OmniSharp formatting except it doesn't remove trailing whitespace and empty lines. I am following up with people to understand why that is the case.
Added/updated tests
\n\nCommit migrated from 62051b9ad7
2020-02-13 16:37:15 -08:00
Doug Bunting a6c43b14a1
Mark AspNetCore projects that aren't packaged explicitly (#18767)
* Mark AspNetCore projects that aren't packaged explicitly
- avoid NU5104 warnings due to confusing versioning
- `$(IsShippingPackage)` was semantically incorrect in any case

* Remove redundant `$(IsShippingPackage)` settings in `$(IsAspNetCoreApp)` projects
- default is `true` for all implementation projects

* Use `$(IsPackable)` when deciding how `$(IsAspNetCoreApp)` projects are handled
- remove all use of `$(IsShippingPackage)` for shared framework composition
- update documentation to match these changes

nits:
- remove odd default for `$(IsPackable)` in Directory.Build.targets
  - no longer relevant since all `$(IsAspNetCoreApp)` projects are `$(IsShippingPackage)` too
- include more information in docs/ProjectProperties.md

* Add direct System.Text.Json references
- avoid MSB3277 warnings
2020-02-13 15:51:27 -08:00
Ajay Bhargav Baaskaran 3bf16941eb Merge branch 'release/3.1'
\n\nCommit migrated from abc26b91c6
2020-02-12 13:11:09 -08:00
Ajay Bhargav Baaskaran ca63634583 unskip test
\n\nCommit migrated from e5c0e3fbb3
2020-02-11 13:00:00 -08:00
Ajay Bhargav Baaskaran e4fb1d44ce Revert "Remove 1.x tests (dotnet/aspnetcore-tooling#1169)"
This reverts commit dotnet/aspnetcore-tooling@bd71bcf87b.
\n\nCommit migrated from 61b1896d00
2020-02-11 13:00:00 -08:00
Ajay Bhargav B 2be31713ce Upgrade roslyn deps to 3.4.0 (dotnet/aspnetcore-tooling#1564)
\n\nCommit migrated from 6cd4f21348
2020-02-10 12:56:51 -08:00
Ryan Brandenburg 718a130b3f Fix # in FilePath (dotnet/aspnetcore-tooling#1553)
Fix # in FilePath
\n\nCommit migrated from d29c3b2f12
2020-02-06 16:44:48 -08:00
Ajay Bhargav B a32887aec4 Sync client settings with LSP server (dotnet/aspnetcore-tooling#1549)
* Sync client settings with LSP server

* feedback

* Skip flaky test https://github.com/dotnet/aspnetcore/issues/18707

* Cleanup

* Make it abstract for consistency
\n\nCommit migrated from 9a05bd16c6
2020-01-30 18:24:32 -08:00
Ryan Brandenburg 07fcf46959 Supply the `PropertyName` for Context TagHelper results. (dotnet/aspnetcore-tooling#1545)
Supply the PropertyName for Context TagHelper results
\n\nCommit migrated from d5b77f46f9
2020-01-28 17:17:47 -08:00
N. Taylor Mullen 3dd1427ad8 Skip Publish_NoBuild_CopiesStaticWebAssetsToDestinationFolder.
- This test has around a pretty high failure rate. Always find myself having to retry builds to work around this. Skipping for now until flakyness can be resolved.

dotnet/aspnetcoredotnet/aspnetcore-tooling#18561
\n\nCommit migrated from 09514f5b4d
2020-01-24 11:45:40 -08:00
N. Taylor Mullen ef4151425a Skip Publish_CopiesStaticWebAssetsToDestinationFolder_PublishSingleFile. (dotnet/aspnetcore-tooling#1532)
This test has around a 50% pass rate. Always find myself having to retry builds to work around this. Skipping for now until flakyness can be resolved.

dotnet/AspNetCoredotnet/aspnetcore-tooling#18543\n\nCommit migrated from 4187049b4f
2020-01-23 13:50:59 -08:00
Kevin Pilch a30ed5c841 Update links for repo moves (dotnet/aspnetcore-tooling#1531)
\n\nCommit migrated from 6b8cdab2f3
2020-01-23 12:20:49 -08:00
Pranav K 3ce497f20d Avoid restoring RID specific packs that don't exist.
\n\nCommit migrated from 1826963086
2020-01-17 10:35:11 -08:00
dotnet-maestro[bot] 4520c6498a [release/3.1] Update dependencies from dotnet/extensions (dotnet/aspnetcore-tooling#1496)
* Update dependencies from https://github.com/dotnet/extensions build 20200115.6

- Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.1.2-servicing.20065.6
- Microsoft.AspNetCore.Testing - 3.1.2-servicing.20065.6
- Microsoft.Extensions.CommandLineUtils.Sources - 3.1.2-servicing.20065.6
- Microsoft.Extensions.NonCapturingTimer.Sources - 3.1.2-servicing.20065.6
- Microsoft.Extensions.HashCodeCombiner.Sources - 3.1.2-servicing.20065.6
- Microsoft.Extensions.Logging - 3.1.2

Dependency coherency updates

- Microsoft.NETCore.App.Runtime.win-x64 - 3.1.2 (parent: Microsoft.Extensions.Logging)
- Microsoft.Extensions.DependencyModel - 3.1.2 (parent: Microsoft.Extensions.Logging)
- Microsoft.NETCore.App.Internal - 3.1.2-servicing.20064.4 (parent: Microsoft.Extensions.Logging)

* Update dependencies from https://github.com/dotnet/extensions build 20200115.7

- Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.1.2-servicing.20065.7
- Microsoft.AspNetCore.Testing - 3.1.2-servicing.20065.7
- Microsoft.Extensions.CommandLineUtils.Sources - 3.1.2-servicing.20065.7
- Microsoft.Extensions.NonCapturingTimer.Sources - 3.1.2-servicing.20065.7
- Microsoft.Extensions.HashCodeCombiner.Sources - 3.1.2-servicing.20065.7
- Microsoft.Extensions.Logging - 3.1.2

Dependency coherency updates

- Microsoft.NETCore.App.Runtime.win-x64 - 3.1.2 (parent: Microsoft.Extensions.Logging)
- Microsoft.Extensions.DependencyModel - 3.1.2 (parent: Microsoft.Extensions.Logging)
- Microsoft.NETCore.App.Internal - 3.1.2-servicing.20064.4 (parent: Microsoft.Extensions.Logging)

* Update dependencies from https://github.com/dotnet/extensions build 20200115.8

- Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.1.2-servicing.20065.8
- Microsoft.AspNetCore.Testing - 3.1.2-servicing.20065.8
- Microsoft.Extensions.CommandLineUtils.Sources - 3.1.2-servicing.20065.8
- Microsoft.Extensions.NonCapturingTimer.Sources - 3.1.2-servicing.20065.8
- Microsoft.Extensions.HashCodeCombiner.Sources - 3.1.2-servicing.20065.8
- Microsoft.Extensions.Logging - 3.1.2

Dependency coherency updates

- Microsoft.NETCore.App.Runtime.win-x64 - 3.1.2 (parent: Microsoft.Extensions.Logging)
- Microsoft.Extensions.DependencyModel - 3.1.2 (parent: Microsoft.Extensions.Logging)
- Microsoft.NETCore.App.Internal - 3.1.2-servicing.20065.7 (parent: Microsoft.Extensions.Logging)

* Update dependencies from https://github.com/dotnet/extensions build 20200115.9

- Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.1.2-servicing.20065.9
- Microsoft.AspNetCore.Testing - 3.1.2-servicing.20065.9
- Microsoft.Extensions.CommandLineUtils.Sources - 3.1.2-servicing.20065.9
- Microsoft.Extensions.NonCapturingTimer.Sources - 3.1.2-servicing.20065.9
- Microsoft.Extensions.HashCodeCombiner.Sources - 3.1.2-servicing.20065.9
- Microsoft.Extensions.Logging - 3.1.2

Dependency coherency updates

- Microsoft.NETCore.App.Runtime.win-x64 - 3.1.2 (parent: Microsoft.Extensions.Logging)
- Microsoft.Extensions.DependencyModel - 3.1.2 (parent: Microsoft.Extensions.Logging)
- Microsoft.NETCore.App.Internal - 3.1.2-servicing.20065.9 (parent: Microsoft.Extensions.Logging)

* Update dependencies from https://github.com/dotnet/extensions build 20200116.2

- Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.1.2-servicing.20066.2
- Microsoft.AspNetCore.Testing - 3.1.2-servicing.20066.2
- Microsoft.Extensions.CommandLineUtils.Sources - 3.1.2-servicing.20066.2
- Microsoft.Extensions.NonCapturingTimer.Sources - 3.1.2-servicing.20066.2
- Microsoft.Extensions.HashCodeCombiner.Sources - 3.1.2-servicing.20066.2
- Microsoft.Extensions.Logging - 3.1.2

Dependency coherency updates

- Microsoft.NETCore.App.Runtime.win-x64 - 3.1.2 (parent: Microsoft.Extensions.Logging)
- Microsoft.Extensions.DependencyModel - 3.1.2 (parent: Microsoft.Extensions.Logging)
- Microsoft.NETCore.App.Internal - 3.1.2-servicing.20066.1 (parent: Microsoft.Extensions.Logging)

* Add System.Text.Json to nuget.config

* Update dependencies from https://github.com/dotnet/extensions build 20200116.3

- Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.1.2-servicing.20066.3
- Microsoft.AspNetCore.Testing - 3.1.2-servicing.20066.3
- Microsoft.Extensions.CommandLineUtils.Sources - 3.1.2-servicing.20066.3
- Microsoft.Extensions.NonCapturingTimer.Sources - 3.1.2-servicing.20066.3
- Microsoft.Extensions.HashCodeCombiner.Sources - 3.1.2-servicing.20066.3
- Microsoft.Extensions.Logging - 3.1.2

Dependency coherency updates

- Microsoft.NETCore.App.Runtime.win-x64 - 3.1.2 (parent: Microsoft.Extensions.Logging)
- Microsoft.Extensions.DependencyModel - 3.1.2 (parent: Microsoft.Extensions.Logging)
- Microsoft.NETCore.App.Internal - 3.1.2-servicing.20066.1 (parent: Microsoft.Extensions.Logging)

* fix nuget.config

* Update dependencies from https://github.com/dotnet/extensions build 20200116.5

- Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.1.2-servicing.20066.5
- Microsoft.AspNetCore.Testing - 3.1.2-servicing.20066.5
- Microsoft.Extensions.CommandLineUtils.Sources - 3.1.2-servicing.20066.5
- Microsoft.Extensions.NonCapturingTimer.Sources - 3.1.2-servicing.20066.5
- Microsoft.Extensions.HashCodeCombiner.Sources - 3.1.2-servicing.20066.5
- Microsoft.Extensions.Logging - 3.1.2

Dependency coherency updates

- Microsoft.NETCore.App.Runtime.win-x64 - 3.1.2 (parent: Microsoft.Extensions.Logging)
- Microsoft.Extensions.DependencyModel - 3.1.2 (parent: Microsoft.Extensions.Logging)
- Microsoft.NETCore.App.Internal - 3.1.2-servicing.20066.6 (parent: Microsoft.Extensions.Logging)

* fixup nuget.config

* Rely on regular restores for RID-specific package restores (dotnet/aspnetcore-tooling#1502)

* Rely on regular restores for RID-specific package restores

* Pin the runtime to a previously shippped version in SDK tests

* Update src/Razor/test/testapps/Directory.Build.targets

Co-authored-by: William Godbe <wigodbe@microsoft.com>
Co-authored-by: Pranav K <prkrishn@hotmail.com>
\n\nCommit migrated from 5fd301284e
2020-01-16 17:55:52 -08:00
Pranav K 427ec8a4c7 Rely on regular restores for RID-specific package restores (dotnet/aspnetcore-tooling#1502)
* Rely on regular restores for RID-specific package restores

* Pin the runtime to a previously shippped version in SDK tests

* Update src/Razor/test/testapps/Directory.Build.targets
\n\nCommit migrated from b0a60a0231
2020-01-16 17:49:21 -08:00
Justin Kotalik 18830cb2fe Update BuildIntrospectionTest.cs\n\nCommit migrated from 6712efc3af 2020-01-15 10:31:41 -08:00
Justin Kotalik 97c847b5f0 Merge branch 'release/3.1'
\n\nCommit migrated from 0ef68536ee
2020-01-15 10:01:46 -08:00
Artak c0bf414494 Merge pull request dotnet/aspnetcore-tooling#1383 from dotnet/javiercn/update-manifest-generation
[StaticWebAssets] Updates manifest generation to allow multiple content roots under the same base path for a single project\n\nCommit migrated from 5e957b4c3b
2020-01-15 09:02:47 -08:00
Artak c2cfbc87ab Merge pull request dotnet/aspnetcore-tooling#1442 from dotnet/javiercn/swa-publish-no-build
[StaticWebAssets][Fixes #AspNetCore/17426] Publish no build doesn't copy static web assets from referenced projects\n\nCommit migrated from 45a6c10276
2020-01-14 18:46:50 -08:00
Artak 631578fd74 Merge pull request dotnet/aspnetcore-tooling#1394 from dotnet/prkrishn/17308
Load the netcoreapp3.1 compiled task when running in Core MSBuild\n\nCommit migrated from a661e043e3
2020-01-14 18:46:22 -08:00
N. Taylor Mullen 8ea0f36d39 Remove Test variant Newtonsoft.Json.
- Our Newtonsoft.Json versions are now aligned.
\n\nCommit migrated from e7a506b1f4
2020-01-14 14:35:13 -08:00
Kevin Pilch 52b9fd85a2 Update links for repo moves/renames (dotnet/aspnetcore-tooling#1474)
\n\nCommit migrated from fae9a5fdbc
2020-01-08 16:51:55 -08:00
Ryan Brandenburg 91efa9310f TagHelper QuickInfo (dotnet/aspnetcore-tooling#1443)
Add Hover support for TagHelpers and Components\n\nCommit migrated from c7815ea4f2
2019-12-13 16:58:27 -08:00
Javier Calvarro Nelson 541323631f [StaticWebAssets] Updates manifest generation to allow multiple content
roots under the same base path for a given project.
\n\nCommit migrated from 5e68cb88e4
2019-12-13 05:30:38 -08:00
Doug Bunting 7ba757265f
Merge branch 'release/3.1' into merge/release/3.0-to-release/3.1
- upgrade Arcade SDK to '1.0.0-beta.19607.3'
- regenerate eng/ProjectReferences.props and ref/ projects
2019-12-11 20:03:03 -08:00
Doug Bunting cf6b5028c3
Improve generation and use of ref/ projects (#17311)
* Remove useless src/PackageArchive files
- not used outside 2.x branches

* Improve use of ref/ assemblies
- compile against ref/ assemblies but do not change package metadata
  - update the metadata of implementation projects to include the ref/ assembly path
  - update `@(ReferenceAssembly)` metadata for Extensions packages, not `@(PackageReference)`
  - can be disabled using `$(CompileUsingReferenceAssemblies)` e.g. when generating ref/ projects
- include ref/ projects in source build by default
  - remove `$(ExcludeFromSourceBuild)` overrides from ref/ project files
- use latest package references and use project references even when _not_ building the targeting packs
- restore previous `@(Reference)` -> `@(PackageReference)` logic
  - add build-only Microsoft.Internal.Extensions.Refs package reference in most cases
- remove IndirectReferences.props and `@(_ExtensionInternalRefAssemblies)`; no longer needed

* Improve ref/ project generation
- use ../src/**/AssemblyInfo.cs files instead of including attributes in *.Manual.cs files
  - for same reason, copy `@(InternalsVisibleto)` items from src/ to ref/ projects
- use eng/targets/CSharp.ReferenceAssembly.props instead of ref/Directory.Build.props files
- use TFM-specific *.Manual.cs files in ref/ project files instead of ref/Directory.Build.props files

optimizations and usability improvements:
- add `$(BuildMainlyReferenceProviders)` property to focus on reference providers when generating ref/ projects
- disable `$(UseReferenceAssemblyInImplementation)` to avoid using ref/ projects while generating them

nits:
- clean up whitespace and remove blank lines in ref/ project files

* Perform smaller cleanup
- remove `$(IsTargetingPackPatching)`; use only `$(IsTargetingPackBuilding)`
- remove `$(DisableServicingFeatures)`; enable the servicing features we need
  - suppress baseline references even in servicing builds
- restore `$(AdditionalGenApiCmdOptions)`; useful when updating *.Manual.cs files

nits:
- simplify conditions using `$(HasReferenceAssembly)`
- correct spelling in comments
- shorten long lines

* Use a response file for GenAPI commands
- work around dotnet/arcade#4021 and help with additional ref assemblies
- mimic 111462e0c2 and integrate w/ other changes here

* Undo some manual ref/ project changes
- now done automatically or centrally
- remove manual `[TypeForwardedTo]` and `[InternalsVisibleTo]` attributes
  - fully qualify a type now that `using` is gone
- remove dupe `@(Compile)` items for *.Manual.cs files; included in the ref/ project files
- remove redundant `$(AllowUnsafeBlocks)` and `$(NoWarn)` settings

nits:
- rename a *.Manual.cs file that's not TFM-specific
- remove `private` members

* Correct use of `@(ProjectReference)` items for reference providers
- use `@(Reference)` instead

* Remove recently-added `@(Compile)` and `@(Reference)` items
- were added due to missing `[InternalsVisibleTo]` attributes in ref/ assemblies or as early workarounds
  - plus, now transitive references **Just Work™️**
- expose `ClosedGenericMatcher` in the usual (*.Manual.cs) way
- also undo Microsoft.Extensions.ApiDescription.Server workaround

* Remove `private` members from ref/ *.Manual.cs files
- not useful and bloat the ref/ assemblies

* Cleanup warnings
- avoid "CSC warning CS2008: No source files specified." building site extensions
- correct warnings (as errors) about `RenderToStringResult` being obsolete
  - add Microsoft.AspNetCore.SpaServices.Tests to Middleware solution

* Remove `@(RuntimeHostConfigurationOption)` workarounds
- deps files are unaffected by new ref/ assembly handling and test projects aren't special-cased
- also execute a test previously skipped due to deps file problems

* Regenerate ref/ projects
- pick up the latest generation changes

(unclear why Mvc.RazorPages/ref/Microsoft.AspNetCore.Mvc.RazorPages.netcoreapp3.0.cs changed but works)

* Fill in missing `internal` types 1 of n
- rename Microsoft.AspNetCore.Components.netstandard2.0.Manual.cs; need `RenderTreeFrame` type everywhere
- add types needed in unit and perf tests to *.Manual.cs files

* Clean up recent commits
- remove recently-added `private` members
- restore `_dummyPrimitive` fields in Microsoft.AspNetCore.Server.HttpSys.Manual.cs

* Add *.Manual.cs files for more projects

* !fixup! fields in *.Manual.cs `struct`s
- GenAPI sometimes generates `_dummy` and `_dummyPrimitive` fields _instead of_ visible members
- what GenAPI generates sometimes have the right length but actual fields don't hurt
  - that is, using the real fields corrects both the visible API and `struct`s' sizes

nits:
- consolidate `namespace`s in Microsoft.AspNetCore.Mvc.Core.Manual.cs

* Remove special case for generating ref/ projects on non-Windows
- referenced issue was closed with no action but workaround still not required
- no tabs in generated content

* Only create ref/ projects for assemblies in the shared framework
- restrict when `$(HasReferenceAssembly)` is `true` by default
- add warnings when `$(IsAspNetCoreApp)` or `$(HasReferenceAssembly)` have unexpected values

* Remove "extra" ref/ projects
- associated implementation projects no longer have `$(HasReferenceAssembly)` set to `true`

* Add a few GenAPI exclusions
- see dotnet/arcade#4488
- generation for these members leads to NREs

* Add more `internal` types and members
- Identity/Core
- Identity/Extensions.Core
- Mvc/Mvc.ViewFeatures

* Add direct dependencies to work around CS1705 errors
- add direct references to some test and sample projects to make intent clear i.e. address CS1705 root cause
  - these projects must use implementation assemblies for those direct references
  - requirement also applies to anything depending on them e.g. functional tests
  - for simplicity, use `$(CompileUsingReferenceAssemblies)` instead of targeted `@(Reference)` metadata
- leads to ~40 projects that do not themselves add ref/ metadata
  - this is _not_ transitive i.e. it applies only to projects that override `$(CompileUsingReferenceAssemblies)`

* nits: Remove a few more `private` members in *.Manual.cs files

* !fixup! correct namespaces of a few types in *.Manual.cs files

* Try another way to fix Microsoft.AspNetCore.Blazor.Build.Tests

* Try another way to fix missing targets in Web.JS.npmproj
2019-12-11 07:36:59 -08:00