diff --git a/.github/workflows/dotnet-core-desktop.yml b/.github/workflows/dotnet-core-desktop.yml new file mode 100644 index 000000000..194ac738e --- /dev/null +++ b/.github/workflows/dotnet-core-desktop.yml @@ -0,0 +1,64 @@ +name: .NET Core Desktop + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + + build: + + strategy: + matrix: + configuration: [Debug, Release] + + runs-on: windows-latest # For a list of available runner types, refer to + # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on + + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Cache node modules + uses: actions/cache@v2 + env: + cache-name: cache-node-modules + with: + # npm cache files are stored in `~/.npm` on Linux/macOS + path: ~/.npm + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + + - name: Install .NET Core + uses: actions/setup-dotnet@v1 + with: + dotnet-version: 3.1.x + + - name: Use Node.js 12 + uses: actions/setup-node@v1 + with: + node-version: 12 + + - name: Setup MSBuild.exe + uses: microsoft/setup-msbuild@2008f912f56e61277eefaac6d1888b750582aa16 + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: true + + - name: Build + run: msbuild build.proj /p:PackageOutputDir="${{ env.GITHUB_WORKSPACE }}/nuget-output" /p:Configuration=${{ matrix.configuration }} + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: true + Configuration: ${{ matrix.configuration }} + + - name: Upload build artifacts + uses: actions/upload-artifact@v1 + with: + name: Nuget Package + path: "${{ env.GITHUB_WORKSPACE }}/nuget-output" diff --git a/.gitignore b/.gitignore index 279183051..b32bd32fb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ _old/ src/SharedAssemblyVersionInfo.cs *.nupkg +*.snupkg src/**/*.nuspec !src/template.nuspec site/jekyll/_site diff --git a/README.md b/README.md index b481d6438..8a6674e56 100644 --- a/README.md +++ b/README.md @@ -1,55 +1,44 @@ # [ReactJS.NET](http://reactjs.net/) -ReactJS.NET is a library that makes it easier to use [Babel](http://babeljs.io/) along with Facebook's [React](http://facebook.github.io/react/) and [JSX](http://facebook.github.io/react/docs/jsx-in-depth.html) from C#. +ReactJS.NET is a library that makes it easier to use [Babel](http://babeljs.io/) along with Facebook's [React](https://reactjs.org/) and [JSX](https://reactjs.org/docs/jsx-in-depth.html) from C#. -[![Build status](https://img.shields.io/appveyor/ci/Daniel15/react-net/master.svg)](https://ci.appveyor.com/project/Daniel15/react-net/branch/master)  +![.NET Core Desktop](https://github.com/reactjs/React.NET/workflows/.NET%20Core%20Desktop/badge.svg) [![NuGet version](http://img.shields.io/nuget/v/React.Core.svg)](https://www.nuget.org/packages/React.Core/) [![Download count](https://img.shields.io/nuget/dt/React.Core.svg)](https://www.nuget.org/packages/React.Core/) # Features -- On-the-fly [JSX to JavaScript compilation](http://reactjs.net/getting-started/usage.html) via [Babel](http://babeljs.io/) - -* JSX to JavaScript compilation via popular minification/combination - libraries: - - [ASP.NET Bundling and Minification](http://reactjs.net/bundling/weboptimizer.html) - - [Cassette](http://reactjs.net/bundling/cassette.html) - - [Webpack](http://reactjs.net/bundling/webpack.html) - - [MSBuild](http://reactjs.net/bundling/msbuild.html) -* [Server-side component rendering](http://reactjs.net/features/server-side-rendering.html) - to make your initial render super-fast (experimental!) -* [Runs on Windows, OS X and Linux](http://reactjs.net/getting-started/chakracore.html) via .NET Core and ChakraCore -* Supports both ASP.NET 4.0/4.5 and ASP.NET Core -* Server-side style rendering with CSS-in-JS libraries +- On-the-fly [JSX to JavaScript compilation](http://reactjs.net/getting-started/usage.html) via [Babel](http://babeljs.io/) + +* JSX to JavaScript compilation via popular minification/combination + libraries: + - [ASP.NET Bundling and Minification](http://reactjs.net/bundling/weboptimizer.html) + - [Cassette](http://reactjs.net/bundling/cassette.html) + - [Webpack](http://reactjs.net/bundling/webpack.html) + - [MSBuild](http://reactjs.net/bundling/msbuild.html) +* [Server-side component rendering](http://reactjs.net/features/server-side-rendering.html) + to make your initial render super-fast, including support for: + - [CSS-in-JS libraries](https://reactjs.net/features/css-in-js.html) + - [React Router](https://reactjs.net/features/react-router.html) + - [React Helmet](https://reactjs.net/features/react-helmet.html) + - Custom JS logic via implementing [IRenderFunctions](https://github.com/reactjs/React.NET/blob/c93921f059bfe9419ad7094c184979da422a4477/src/React.Core/IRenderFunctions.cs) and passing to [Html.React](https://github.com/reactjs/React.NET/blob/c93921f059bfe9419ad7094c184979da422a4477/src/React.AspNet/HtmlHelperExtensions.cs#L71) +* [Runs on Windows, OS X and Linux](http://reactjs.net/getting-started/chakracore.html) via .NET Core and ChakraCore +* Supports both ASP.NET 4.0/4.5 and ASP.NET Core # Quick Start -Install the package - ``` -Install-Package React.Web.Mvc4 # For ASP.NET MVC 4 or 5 -Install-Package React.AspNet   # For ASP.NET Core MVC +dotnet new -i React.Template +dotnet new reactnet-vanilla +dotnet run ``` -Create JSX files - -```javascript -// /Scripts/HelloWorld.jsx -const HelloWorld = (props) => { - return (
Hello {props.name}
); -}; -``` - -Reference the JSX files from your HTML - -```html - -``` +#### Planning on using `require` or `import` module syntax in your application? Use the `reactnet-webpack` template instead for webpack support. -Now you can use the `HelloWorld` component. +See also: -For information on more advanced topics (including precompilation and -server-side rendering), check out [the documentation](http://reactjs.net/docs) +- [Getting Started](https://reactjs.net/getting-started/aspnetcore.html) +- [Tutorial](https://reactjs.net/tutorials/aspnetcore.html) ## Building Manually and Contributing diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index e331cbe19..000000000 --- a/appveyor.yml +++ /dev/null @@ -1,13 +0,0 @@ -version: '{build}' -os: Visual Studio 2017 -install: - - set PATH=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\;%PATH% - - ps: Install-Product node 10 - - npm install --global npm -build: - project: build.proj - verbosity: normal -test_script: - - dotnet test --configuration Release --no-build tests/React.Tests/React.Tests.csproj -artifacts: - - path: output\*.nupkg diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f53288ced..2c176e021 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,12 +1,14 @@ trigger: - - master + - main + - ci-updates pool: - vmImage: 'VS2017-Win2016' + vmImage: 'windows-2019' variables: buildPlatform: 'Any CPU' buildConfiguration: 'Release' + buildType: 'Release' steps: - task: NodeTool@0 @@ -15,6 +17,12 @@ steps: - script: npm install --global npm + - task: UseDotNet@2 + displayName: 'Use .NET Core sdk' + inputs: + packageType: 'sdk' + version: '3.1.x' + - task: VSBuild@1 inputs: solution: 'build.proj' diff --git a/build.proj b/build.proj index b8b1d9724..afbf537d6 100644 --- a/build.proj +++ b/build.proj @@ -10,8 +10,8 @@ of patent rights can be found in the PATENTS file in the same directory. 5 - 0 - 0-alpha4 + 2 + 13 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks @@ -31,6 +31,7 @@ of patent rights can be found in the PATENTS file in the same directory. + @@ -57,7 +58,7 @@ of patent rights can be found in the PATENTS file in the same directory. Command="npm install" /> @@ -99,7 +100,6 @@ of patent rights can be found in the PATENTS file in the same directory. - @@ -113,7 +113,22 @@ of patent rights can be found in the PATENTS file in the same directory. /> - + + + + + + + + + + + + + + + + @@ -125,6 +140,11 @@ of patent rights can be found in the PATENTS file in the same directory. /> + + + + + diff --git a/global.json b/global.json deleted file mode 100644 index 9a66d5edc..000000000 --- a/global.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "projects": [ "src", "test" ] -} diff --git a/renovate.json b/renovate.json index ded6828f0..f197b0de8 100644 --- a/renovate.json +++ b/renovate.json @@ -25,6 +25,15 @@ "https://github.com/aspnet/AspNetCore" ], "groupName": "ASP.NET Core packages" + }, + { + "packagePatterns": ["^React"], + "groupName": "React.NET packages" } - ] + ], + "separateMinorPatch": true, + "automerge": false, + "patch": { + "automerge": true + } } diff --git a/runs-msbuild.bat b/runs-msbuild.bat index d56d5c22c..360f79b15 100644 --- a/runs-msbuild.bat +++ b/runs-msbuild.bat @@ -4,9 +4,10 @@ set BUILDTYPE="%~1" set ACTION="%~2" for %%s in ( - "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" - "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe" - "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe" + "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe" + "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe" + "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe" + "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Preview\MSBuild\Current\Bin\MSBuild.exe" ) do ( if exist %%s ( echo %%s build.proj %ACTION% %BUILDTYPE% @@ -16,7 +17,7 @@ for %%s in ( ) :notfound -echo Could not find MSBuild.exe. Make sure Visual Studio 2017 is installed and try again. +echo Could not find MSBuild.exe. Make sure Visual Studio 2019 is installed and try again. :done pause diff --git a/site/jekyll/Gemfile.lock b/site/jekyll/Gemfile.lock index b4e661a58..60c113656 100644 --- a/site/jekyll/Gemfile.lock +++ b/site/jekyll/Gemfile.lock @@ -10,7 +10,7 @@ GEM colorator (0.1) commander (4.1.6) highline (~> 1.6.11) - crass (1.0.2) + crass (1.0.6) fast-stemmer (1.0.2) ffi (1.9.18) ffi (1.9.18-x64-mingw32) @@ -39,21 +39,21 @@ GEM rb-inotify (>= 0.9) rb-kqueue (>= 0.2) maruku (0.7.0) - mini_portile2 (2.1.0) + mini_portile2 (2.4.0) multi_json (1.12.1) - nokogiri (1.7.1) - mini_portile2 (~> 2.1.0) - nokogiri (1.7.1-x64-mingw32) - mini_portile2 (~> 2.1.0) - nokogumbo (1.4.10) - nokogiri + nokogiri (1.10.9) + mini_portile2 (~> 2.4.0) + nokogiri (1.10.9-x64-mingw32) + mini_portile2 (~> 2.4.0) + nokogumbo (2.0.2) + nokogiri (~> 1.8, >= 1.8.4) parslet (1.5.0) blankslate (~> 2.0) posix-spawn (0.3.13) pygments.rb (0.5.4) posix-spawn (~> 0.3.6) yajl-ruby (~> 1.1.0) - rack (1.6.5) + rack (1.6.12) rb-fsevent (0.9.8) rb-inotify (0.9.8) ffi (>= 0.5.0) @@ -61,10 +61,10 @@ GEM ffi (>= 0.5.0) redcarpet (2.3.0) safe_yaml (1.0.4) - sanitize (4.4.0) + sanitize (5.2.1) crass (~> 1.0.2) - nokogiri (>= 1.4.4) - nokogumbo (~> 1.4.1) + nokogiri (>= 1.8.0) + nokogumbo (~> 2.0) sass (3.4.23) sprockets (2.12.4) hike (~> 1.2) diff --git a/site/jekyll/_layouts/default.html b/site/jekyll/_layouts/default.html index 93ff780bb..d59c8b506 100644 --- a/site/jekyll/_layouts/default.html +++ b/site/jekyll/_layouts/default.html @@ -58,7 +58,7 @@