Compare commits

..

72 Commits

Author SHA1 Message Date
Bjarke Berg 15c02ce828 Merge remote-tracking branch 'origin/v8/dev' into vx/feature/unicore 2019-05-31 11:40:15 +02:00
Bjarke Berg 1fe02af841 Moved more stuff into Abstractions 2019-05-28 16:23:52 +02:00
Bjarke Berg 7aca2e3217 Fixed tests that expected file to be in Umbraco.Core 2019-05-27 14:28:24 +02:00
Bjarke Berg e9324055e9 Moved event stuff 2019-05-27 13:53:53 +02:00
Bjarke Berg 00a121188a Moved more abstractions of models 2019-05-27 12:58:51 +02:00
Bjarke Berg dcf022ffaa Moved more abstractions of models 2019-05-27 11:45:35 +02:00
Bjarke Berg 408b00a737 Moved more abstractions of models 2019-05-27 11:20:33 +02:00
Bjarke Berg e571f51750 Merge remote-tracking branch 'origin/v8/dev' into vx/feature/unicore 2019-05-27 10:21:26 +02:00
Bjarke Berg 85eb44ecc3 Moved more abstractions of models 2019-05-27 10:16:07 +02:00
Bjarke Berg 489bb7f3e9 Added netstandard to web.config. 2019-05-27 09:58:15 +02:00
Bjarke Berg ff71d89415 Moved more files and removed modelsbuilder from UI project 2019-05-27 08:57:57 +02:00
Carole Rennie Logan cd93ebe7c1 moving intextensions and removing unused imports
moving intextensions and removing unused imports
2019-05-21 10:48:59 +01:00
Lars-Erik Aabech 917efc4d9a Bump lang level to 7.3 2019-05-20 18:43:27 +02:00
Shannon 3f2dd88325 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 18:40:27 +02:00
Shannon d42b2492b7 Moves more utilities 2019-05-20 18:40:13 +02:00
Lars-Erik Aabech 98f3035b5c Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 18:39:45 +02:00
Lars-Erik Aabech dccee475f2 Moved several configuration abstractions including IUmbracoSettingsSection. 2019-05-20 18:39:41 +02:00
Bjarke Berg 8bf90bae91 Started moving caches.. 2019-05-20 18:28:35 +02:00
Stephan 34648fc8aa Umbraco.Abstractions default namespace is Umbraco.Core 2019-05-20 18:25:25 +02:00
Lars-Erik Aabech 5f76bb82cd Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 18:23:43 +02:00
Shannon a0506622b4 dirty tracking, entities, cloning moved 2019-05-20 18:23:22 +02:00
Lars-Erik Aabech 1256512a1d Set language level to 7.1 for abstractions project for now 2019-05-20 18:23:21 +02:00
Shannon 46cb6e2329 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 18:08:09 +02:00
Shannon e58588801e fixes csproj merge 2019-05-20 18:07:57 +02:00
Lars-Erik Aabech 185c453c00 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 17:58:27 +02:00
Lars-Erik Aabech 152ba318bf Removed Semver dependency by copying the class from the original repo. 2019-05-20 17:58:22 +02:00
Shannon 708f4d89c7 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 17:57:43 +02:00
Shannon 57ff36452e Moves Strings and extensions to abstractions (where possible) 2019-05-20 17:57:28 +02:00
Stephan 2495df5573 Move collections to abstractions 2019-05-20 17:50:31 +02:00
Carole Rennie Logan e0fd6fa8ee Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 16:48:13 +01:00
Carole Rennie Logan 79e447239f moving custombooleantypeconverter
moving custombooleantypeconverter to abstractions
2019-05-20 16:48:08 +01:00
Lars-Erik Aabech 74865740e0 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 17:39:30 +02:00
Lars-Erik Aabech f8bc25a2dd Moved runtime abstractions and added SemVer + extensions to abstractions. 2019-05-20 17:39:11 +02:00
Carole Rennie Logan 4da063369d moving SafeCallContext to abstractions
moving SafeCallContext to abstractions
2019-05-20 16:38:42 +01:00
Bjarke Berg facf13f6d5 FIX 2019-05-20 17:29:04 +02:00
Carole Rennie Logan 98afb9a030 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 16:26:25 +01:00
Lars-Erik Aabech f8462a739c Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 17:25:59 +02:00
Lars-Erik Aabech 837a7b506e Moved first core DI abstractions 2019-05-20 17:25:55 +02:00
Lars-Erik Aabech d576be3593 Made DataTableExtensions and made it/methods public. 2019-05-20 17:25:49 +02:00
Carole Rennie Logan 20282edba4 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 16:25:38 +01:00
Bjarke Berg 8fa3f8e06a Moved more stuff 2019-05-20 17:25:29 +02:00
Carole Rennie Logan b85fc649ea moving core items to abstractions
moving core items to abstractions
2019-05-20 16:25:08 +01:00
Stephan deefad4b89 Move ILogger/IProfiler/IProfilingLogger to abstractions 2019-05-20 17:24:46 +02:00
Lars-Erik Aabech 888390d86b Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 17:20:56 +02:00
Lars-Erik Aabech 99d2509eaa Moved several poco extensions and removed BindingRedirects 2019-05-20 17:20:52 +02:00
Bjarke Berg e0c0da802d Moved more stuff 2019-05-20 17:20:15 +02:00
Bjarke Berg f238f37508 Moved InvalidCompositionException 2019-05-20 17:12:54 +02:00
Bjarke Berg 2e2a275ea4 Merge remote-tracking branch 'origin/vx/feature/unicore' into vx/feature/unicore 2019-05-20 17:09:54 +02:00
Bjarke Berg a13723cc7e Moved media 2019-05-20 17:09:45 +02:00
Carole Rennie Logan 30add94906 uditype move to abstractions
uditype move to abstractions
2019-05-20 16:09:37 +01:00
Carole Rennie Logan e61cd0fbba Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 16:06:21 +01:00
Carole Rennie Logan 69407caea8 move upgradeablereadlock
moving to abstractions.
2019-05-20 16:06:09 +01:00
Lars-Erik Aabech dd9cfa7abf Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 17:05:10 +02:00
Lars-Erik Aabech 9122bbdd45 Moved IDiscoverable and Dashboards.* 2019-05-20 17:05:04 +02:00
Stephan 295d2d73e3 Move DisposableObjectSlim to abstractions 2019-05-20 17:04:33 +02:00
Carole Rennie Logan 709babc95b Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 15:59:27 +01:00
Bjarke Berg cab1462d51 Merge remote-tracking branch 'origin/vx/feature/unicore' into vx/feature/unicore 2019-05-20 16:59:07 +02:00
Bjarke Berg cad3e8a635 Moved MacroErrorBehaviour.cs 2019-05-20 16:58:47 +02:00
Carole Rennie Logan 9bac6a4074 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 15:57:51 +01:00
Carole Rennie Logan 49a38f2824 HashCodeCombiner
move hashcodecombiner to abstractions
2019-05-20 15:57:42 +01:00
Lars-Erik Aabech e19cfe575b Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 16:57:40 +02:00
Lars-Erik Aabech c007757564 Moved code annotations 2019-05-20 16:57:14 +02:00
Bjarke Berg 0b77f8c244 Merge remote-tracking branch 'origin/vx/feature/unicore' into vx/feature/unicore 2019-05-20 16:56:19 +02:00
Bjarke Berg f470c4cd3f Moved read and writelock 2019-05-20 16:56:03 +02:00
Shannon 651d48e5c8 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 16:54:30 +02:00
Shannon 1f70e67ac1 moved more utilities 2019-05-20 16:54:20 +02:00
Lars-Erik Aabech 2ef03a2c24 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 16:48:22 +02:00
Shannon 04b319ecb2 moves 4 more utilities 2019-05-20 16:48:12 +02:00
Lars-Erik Aabech fb608d5131 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 16:45:17 +02:00
Lars-Erik Aabech dff06bde30 Moved most exceptions to abstractions. Added abstractions to web and tests. 2019-05-20 16:45:12 +02:00
Shannon 30c1c76263 Moved Attempt and updated project refs 2019-05-20 16:40:11 +02:00
Bjarke Berg 61cb7ac769 Moved ICompletable into abstractions for Project UniCore 🦄 2019-05-20 16:34:10 +02:00
1221 changed files with 15738 additions and 18976 deletions
-35
View File
@@ -1,35 +0,0 @@
# Contributing to Umbraco CMS
When youre considering creating a pull request for Umbraco CMS, we will categorize them in two different sizes, small and large.
The process for both sizes is very similar, as [explained in the contribution document](CONTRIBUTING.md#how-do-i-begin).
## Small PRs
Bug fixes and small improvements - can be recognized by seeing a small number of changes and possibly a small number of new files.
Were usually able to handle small PRs pretty quickly. A community volunteer will do the initial review and flag it for Umbraco HQ as “community tested”. If everything looks good, it will be merged pretty quickly [as per the described process](REVIEW_PROCESS.md).
### Up for grabs
Umbraco HQ will regularly mark newly created issues on the issue tracker with the `Up for grabs` tag. This means that the proposed changes are wanted in Umbraco but the HQ does not have the time to make them at this time. We encourage anyone to pick them up and help out.
If you do start working on something, make sure leave a small comment on the issue saying something like: "I'm working on this". That way other people stumbling upon the issue know they don't need to pick it up, someone already has.
## Large PRs
New features and large refactorings - can be recognized by seeing a large number of changes, plenty of new files, updates to package manager files (NuGets packages.config, NPMs packages.json, etc.).
We would love to follow the same process for larger PRs but this is not always possible due to time limitations and priorities that need to be aligned. We dont want to put up any barriers, but this document should set the correct expectations.
Please make sure to describe your idea in an issue, it helps to put in mockup screenshots or videos.
If the change makes sense for HQ to include in Umbraco CMS we will leave you some feedback on how wed like to see it being implemented.
If a larger pull request is encouraged by Umbraco HQ, the process will be similar to what is described in the [small PRs process](#small-prs) above, we strive to feedback within 14 days. Finalizing and merging the PR might take longer though as it will likely need to be picked up by the development team to make sure everything is in order. Well keep you posted on the progress.
It is highly recommended that you speak to the HQ before making large, complex changes.
### Pull request or package?
If it doesnt fit in CMS right now, we will likely encourage you to make it into a package instead. A package is a great way to check out popularity of a feature, learn how people use it, validate good usability and to fix bugs.
Eventually, a package could "graduate" to be included in the CMS.
+1 -1
View File
@@ -12,7 +12,7 @@ thoroughly. Then, proceed by filling out the rest of the details in the issue
template below. The more details you can give us, the easier it will be for us
to determine the cause of a problem.
See: https://github.com/umbraco/Umbraco-CMS/blob/v8/dev/.github/CONTRIBUTING.md
See: https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/.github/CONTRIBUTING.md
-->
-25
View File
@@ -1,25 +0,0 @@
# Review process
You're an awesome person and have sent us your contribution in the form of a pull request! It's now time to relax for a bit and wait for our response.
In order to set some expectations, here's what happens next.
## Review process
You will get an initial reply within 48 hours (workdays) to acknowledge that weve seen your PR and well pick it up as soon as we can.
You will get feedback within at most 14 days after opening the PR. Youll most likely get feedback sooner though. Then there are a few possible outcomes:
- Your proposed change is awesome! We merge it in and it will be included in the next minor release of Umbraco
- If the change is a high priority bug fix, we will cherry-pick it into the next patch release as well so that we can release it as soon as possible
- Your proposed change is awesome but needs a bit more work, well give you feedback on the changes wed like to see
- Your proposed change is awesome but.. not something were looking to include at this point. Well close your PR and the related issue (well be nice about it!)
## Are you still available?
We understand you have other things to do and can't just drop everything to help us out.
So if were asking for your help to improve the PR well wait for two weeks to give you a fair chance to make changes. Well ask for an update if we dont hear back from you after that time.
If we dont hear back from you for 4 weeks, well close the PR so that it doesnt just hang around forever. Youre very welcome to re-open it once you have some more time to spend on it.
There will be times that we really like your proposed changes and well finish the final improvements wed like to see ourselves. You still get the credits and your commits will live on in the git repository.
+3 -4
View File
@@ -14,7 +14,6 @@
<summary>Contains the core assemblies needed to run Umbraco Cms</summary>
<language>en-US</language>
<tags>umbraco</tags>
<repository type="git" url="https://github.com/umbraco/umbraco-cms" />
<dependencies>
<group targetFramework="net472">
@@ -45,7 +44,7 @@
<dependency id="Umbraco.SqlServerCE" version="[4.0.0.1,4.999999)" />
<dependency id="NPoco" version="[3.9.4,3.999999)" />
</group>
</dependencies>
</metadata>
<files>
@@ -53,9 +52,9 @@
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.dll" target="lib\net472\Umbraco.Core.dll" />
<!-- docs -->
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.xml" target="lib\net472\Umbraco.Core.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.xml" target="lib\Umbraco.Core.xml" />
<!-- symbols -->
<file src="$BuildTmp$\bin\Umbraco.Core.pdb" target="lib\net472\Umbraco.Core.pdb" />
<file src="$BuildTmp$\bin\Umbraco.Core.pdb" target="lib" />
</files>
</package>
+6 -7
View File
@@ -14,7 +14,6 @@
<summary>Contains the core assemblies needed to run Umbraco Cms</summary>
<language>en-US</language>
<tags>umbraco</tags>
<repository type="git" url="https://github.com/umbraco/umbraco-cms" />
<dependencies>
<group targetFramework="net472">
@@ -44,7 +43,7 @@
<dependency id="System.Threading.Tasks.Dataflow" version="[4.9.0,4.999999)" />
</group>
</dependencies>
</metadata>
<files>
@@ -54,12 +53,12 @@
<file src="$BuildTmp$\WebApp\bin\Umbraco.Examine.dll" target="lib\net472\Umbraco.Examine.dll" />
<!-- docs -->
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.xml" target="lib\net472\Umbraco.Web.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.UI.xml" target="lib\net472\Umbraco.Web.UI.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Examine.xml" target="lib\net472\Umbraco.Examine.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.xml" target="lib\Umbraco.Web.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.UI.xml" target="lib\Umbraco.Web.UI.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Examine.xml" target="lib\Umbraco.Examine.xml" />
<!-- symbols -->
<file src="$BuildTmp$\bin\Umbraco.Web.pdb" target="lib\net472\Umbraco.Web.pdb" />
<file src="$BuildTmp$\bin\Umbraco.Examine.pdb" target="lib\net472\Umbraco.Examine.pdb" />
<file src="$BuildTmp$\bin\Umbraco.Web.pdb" target="lib" />
<file src="$BuildTmp$\bin\Umbraco.Examine.pdb" target="lib" />
</files>
</package>
+1 -2
View File
@@ -14,7 +14,6 @@
<summary>Installs Umbraco Cms in your Visual Studio ASP.NET project</summary>
<language>en-US</language>
<tags>umbraco</tags>
<repository type="git" url="https://github.com/umbraco/umbraco-cms" />
<dependencies>
<group targetFramework="net472">
@@ -26,7 +25,7 @@
not want this to happen as the alpha of the next major is, really, the next major already.
-->
<dependency id="Microsoft.AspNet.SignalR.Core" version="[2.4.0, 2.999999)" />
<dependency id="Umbraco.ModelsBuilder.Ui" version="[8.1.0]" />
<dependency id="Umbraco.ModelsBuilder.Ui" version="[8.0.4]" />
<dependency id="ImageProcessor.Web" version="[4.10.0.100,4.999999)" />
<dependency id="ImageProcessor.Web.Config" version="[2.5.0.100,2.999999)" />
<dependency id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="[2.0.1,2.999999)" />
+7 -7
View File
@@ -1,11 +1,11 @@
888
888
888 888 88888b.d88b. 88888b. 888d888 8888b. .d8888b .d88b.
888 888 888 "888 "88b 888 "88b 888P" "88b d88P" d88""88b
888 888 888 888 888 888 888 888 .d888888 888 888 888
Y88 88Y 888 888 888 888 d88P 888 888 888 Y88b. Y88..88P
"Y888P" 888 888 888 88888P" 888 "Y888888 "Y8888P "Y88P"
888
888
888 888 88888b.d88b. 88888b. 888d888 8888b. .d8888b .d88b.
888 888 888 "888 "88b 888 "88b 888P" "88b d88P" d88""88b
888 888 888 888 888 888 888 888 .d888888 888 888 888
Y88b 888 888 888 888 888 d88P 888 888 888 Y88b. Y88..88P
"Y88888 888 888 888 88888P" 888 "Y888888 "Y8888P "Y88P"
------------------------------------------------------------------
+7 -8
View File
@@ -1,13 +1,12 @@
888
888
888 888 88888b.d88b. 88888b. 888d888 8888b. .d8888b .d88b.
888 888 888 "888 "88b 888 "88b 888P" "88b d88P" d88""88b
888 888 888 888 888 888 888 888 .d888888 888 888 888
Y88 88Y 888 888 888 888 d88P 888 888 888 Y88b. Y88..88P
"Y888P" 888 888 888 88888P" 888 "Y888888 "Y8888P "Y88P"
_ _ __ __ ____ _____ _____ ____
| | | | \/ | _ \| __ \ /\ / ____/ __ \
| | | | \ / | |_) | |__) | / \ | | | | | |
| | | | |\/| | _ <| _ / / /\ \| | | | | |
| |__| | | | | |_) | | \ \ / ____ | |___| |__| |
\____/|_| |_|____/|_| \_/_/ \_\_____\____/
------------------------------------------------------------------
----------------------------------------------------
Don't forget to build!
@@ -8,7 +8,7 @@
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" xdt:Locator="Match(factoryType)" xdt:Transform="SetAttributes(factoryType)" />
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" xdt:Locator="Match(factoryType)" xdt:Transform="SetAttributes(factoryType)" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="Umbraco.Web.PublishedContentModels" xdt:Transform="InsertIfMissing" />
@@ -18,13 +18,13 @@
<system.web>
<pages
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
xdt:Locator="Match(pageParserFilterType,pageBaseType,userControlBaseType)"
xdt:Transform="SetAttributes(pageParserFilterType,pageBaseType,userControlBaseType)">
<controls>
<add assembly="System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" xdt:Locator="Match(namespace)" xdt:Transform="SetAttributes(assembly)" />
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" xdt:Locator="Match(namespace)" xdt:Transform="SetAttributes(assembly)" />
</controls>
</pages>
</system.web>
+4 -21
View File
@@ -18,20 +18,9 @@ if ($project) {
# Copy umbraco and umbraco_files from package to project folder
$umbracoFolder = Join-Path $projectPath "Umbraco"
New-Item -ItemType Directory -Force -Path $umbracoFolder
New-Item -ItemType Directory -Force -Path $umbracoFolder
$umbracoFolderSource = Join-Path $installPath "UmbracoFiles\Umbraco"
Write-Host "copying files to $umbracoFolder ..."
# see https://support.microsoft.com/en-us/help/954404/return-codes-that-are-used-by-the-robocopy-utility-in-windows-server-2
robocopy $umbracoFolderSource $umbracoFolder /is /it /e
if (($lastexitcode -eq 1) -or ($lastexitcode -eq 3) -or ($lastexitcode -eq 5) -or ($lastexitcode -eq 7))
{
write-host "Copy succeeded!"
}
else
{
write-host "Copy failed with exit code:" $lastexitcode
}
robocopy $umbracoFolderSource $umbracoFolder /is /it /e /xf UI.xml /LOG:$copyLogsPath\UmbracoCopy.log
$copyWebconfig = $true
$destinationWebConfig = Join-Path $projectPath "Web.config"
@@ -51,11 +40,7 @@ if ($project) {
}
}
}
Catch
{
Write-Host "An error occurred:"
Write-Host $_
}
Catch { }
}
if($copyWebconfig -eq $true)
@@ -89,9 +74,7 @@ if ($project) {
}
Catch
{
# Not a big problem if this fails, let it go
# Write-Host "An error occurred:"
# Write-Host $_
# Not a big problem if this fails, let it go
}
}
+10 -10
View File
@@ -15,7 +15,7 @@
[Parameter(Mandatory=$false)]
[Alias("doc")]
[switch] $docfx = $false,
# keep the build directories, don't clear them
[Parameter(Mandatory=$false)]
[Alias("c")]
@@ -392,13 +392,13 @@
&$this.BuildEnv.NuGet Pack "$nuspecs\UmbracoCms.Core.nuspec" `
-Properties BuildTmp="$($this.BuildTemp)" `
-Version "$($this.Version.Semver.ToString())" `
-Verbosity detailed -outputDirectory "$($this.BuildOutput)" > "$($this.BuildTemp)\nupack.cmscore.log"
-Symbols -SymbolPackageFormat snupkg -Verbosity detailed -outputDirectory "$($this.BuildOutput)" > "$($this.BuildTemp)\nupack.cmscore.log"
if (-not $?) { throw "Failed to pack NuGet UmbracoCms.Core." }
&$this.BuildEnv.NuGet Pack "$nuspecs\UmbracoCms.Web.nuspec" `
-Properties BuildTmp="$($this.BuildTemp)" `
-Version "$($this.Version.Semver.ToString())" `
-Verbosity detailed -outputDirectory "$($this.BuildOutput)" > "$($this.BuildTemp)\nupack.cmsweb.log"
-Symbols -SymbolPackageFormat snupkg -Verbosity detailed -outputDirectory "$($this.BuildOutput)" > "$($this.BuildTemp)\nupack.cmsweb.log"
if (-not $?) { throw "Failed to pack NuGet UmbracoCms.Web." }
&$this.BuildEnv.NuGet Pack "$nuspecs\UmbracoCms.nuspec" `
@@ -429,37 +429,37 @@
Write-Host "Prepare Azure Gallery"
$this.CopyFile("$($this.SolutionRoot)\build\Azure\azuregalleryrelease.ps1", $this.BuildOutput)
})
$ubuild.DefineMethod("PrepareCSharpDocs",
{
Write-Host "Prepare C# Documentation"
$src = "$($this.SolutionRoot)\src"
$tmp = $this.BuildTemp
$out = $this.BuildOutput
$DocFxJson = Join-Path -Path $src "\ApiDocs\docfx.json"
$DocFxSiteOutput = Join-Path -Path $tmp "\_site\*.*"
#restore nuget packages
$this.RestoreNuGet()
# run DocFx
$DocFx = $this.BuildEnv.DocFx
& $DocFx metadata $DocFxJson
& $DocFx build $DocFxJson
# zip it
& $this.BuildEnv.Zip a -tzip -r "$out\csharp-docs.zip" $DocFxSiteOutput
})
$ubuild.DefineMethod("PrepareAngularDocs",
{
Write-Host "Prepare Angular Documentation"
$src = "$($this.SolutionRoot)\src"
$out = $this.BuildOutput
$this.CompileBelle()
"Moving to Umbraco.Web.UI.Client folder"
+2 -2
View File
@@ -18,5 +18,5 @@ using System.Resources;
[assembly: AssemblyVersion("8.0.0")]
// these are FYI and changed automatically
[assembly: AssemblyFileVersion("8.2.0")]
[assembly: AssemblyInformationalVersion("8.2.0")]
[assembly: AssemblyFileVersion("8.1.0")]
[assembly: AssemblyInformationalVersion("8.1.0")]
@@ -1,12 +1,10 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
namespace Umbraco.Core
{
internal static class AssemblyExtensions
public static class AssemblyExtensions
{
/// <summary>
/// Returns the file used to load the assembly
@@ -21,7 +21,7 @@ namespace Umbraco.Core
// been closed, the Semaphore system object is destroyed - so in any case
// an iisreset should clean up everything
//
internal class AsyncLock
public class AsyncLock
{
private readonly SemaphoreSlim _semaphore;
private readonly Semaphore _semaphore2;
@@ -67,34 +67,31 @@ namespace Umbraco.Core
: new NamedSemaphoreReleaser(_semaphore2);
}
//NOTE: We don't use the "Async" part of this lock at all
//TODO: Remove this and rename this class something like SystemWideLock, then we can re-instate this logic if we ever need an Async lock again
public Task<IDisposable> LockAsync()
{
var wait = _semaphore != null
? _semaphore.WaitAsync()
: _semaphore2.WaitOneAsync();
//public Task<IDisposable> LockAsync()
//{
// var wait = _semaphore != null
// ? _semaphore.WaitAsync()
// : _semaphore2.WaitOneAsync();
return wait.IsCompleted
? _releaserTask ?? Task.FromResult(CreateReleaser()) // anonymous vs named
: wait.ContinueWith((_, state) => (((AsyncLock) state).CreateReleaser()),
this, CancellationToken.None,
TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default);
}
// return wait.IsCompleted
// ? _releaserTask ?? Task.FromResult(CreateReleaser()) // anonymous vs named
// : wait.ContinueWith((_, state) => (((AsyncLock) state).CreateReleaser()),
// this, CancellationToken.None,
// TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default);
//}
public Task<IDisposable> LockAsync(int millisecondsTimeout)
{
var wait = _semaphore != null
? _semaphore.WaitAsync(millisecondsTimeout)
: _semaphore2.WaitOneAsync(millisecondsTimeout);
//public Task<IDisposable> LockAsync(int millisecondsTimeout)
//{
// var wait = _semaphore != null
// ? _semaphore.WaitAsync(millisecondsTimeout)
// : _semaphore2.WaitOneAsync(millisecondsTimeout);
// return wait.IsCompleted
// ? _releaserTask ?? Task.FromResult(CreateReleaser()) // anonymous vs named
// : wait.ContinueWith((_, state) => (((AsyncLock)state).CreateReleaser()),
// this, CancellationToken.None,
// TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default);
//}
return wait.IsCompleted
? _releaserTask ?? Task.FromResult(CreateReleaser()) // anonymous vs named
: wait.ContinueWith((_, state) => (((AsyncLock)state).CreateReleaser()),
this, CancellationToken.None,
TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default);
}
public IDisposable Lock()
{
@@ -25,7 +25,7 @@ namespace Umbraco.Core.Cache
/// This is much better for performance when we're not running in a load balanced environment so we can refresh the cache
/// against a already resolved object instead of looking the object back up by id.
/// </remarks>
interface ICacheRefresher<T> : ICacheRefresher
public interface ICacheRefresher<T> : ICacheRefresher
{
void Refresh(T instance);
void Remove(T instance);
@@ -3,7 +3,7 @@
/// <summary>
/// A cache refresher that supports refreshing or removing cache based on a custom Json payload
/// </summary>
interface IJsonCacheRefresher : ICacheRefresher
public interface IJsonCacheRefresher : ICacheRefresher
{
/// <summary>
/// Refreshes, clears, etc... any cache based on the information provided in the json
@@ -3,7 +3,7 @@
/// <summary>
/// A cache refresher that supports refreshing cache based on a custom payload
/// </summary>
interface IPayloadCacheRefresher<TPayload> : IJsonCacheRefresher
public interface IPayloadCacheRefresher<TPayload> : IJsonCacheRefresher
{
/// <summary>
/// Refreshes, clears, etc... any cache based on the information provided in the payload
@@ -6,7 +6,7 @@ namespace Umbraco.Core.CodeAnnotations
/// Attribute to add a Friendly Name string with an UmbracoObjectType enum value
/// </summary>
[AttributeUsage(AttributeTargets.All, AllowMultiple = false, Inherited = false)]
internal class FriendlyNameAttribute : Attribute
public class FriendlyNameAttribute : Attribute
{
/// <summary>
/// friendly name value
@@ -6,7 +6,7 @@ namespace Umbraco.Core.CodeAnnotations
/// Attribute to associate a GUID string and Type with an UmbracoObjectType Enum value
/// </summary>
[AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = false)]
internal class UmbracoObjectTypeAttribute : Attribute
public class UmbracoObjectTypeAttribute : Attribute
{
public UmbracoObjectTypeAttribute(string objectId)
{
@@ -3,7 +3,7 @@
namespace Umbraco.Core.CodeAnnotations
{
[AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = false)]
internal class UmbracoUdiTypeAttribute : Attribute
public class UmbracoUdiTypeAttribute : Attribute
{
public string UdiType { get; private set; }
@@ -5,7 +5,7 @@ namespace Umbraco.Core.Collections
/// <summary>
/// Represents a composite key of (Type, Type) for fast dictionaries.
/// </summary>
internal struct CompositeTypeTypeKey : IEquatable<CompositeTypeTypeKey>
public struct CompositeTypeTypeKey : IEquatable<CompositeTypeTypeKey>
{
/// <summary>
/// Initializes a new instance of the <see cref="CompositeTypeTypeKey"/> struct.
@@ -10,7 +10,7 @@ namespace Umbraco.Core.Collections
/// A List that can be deep cloned with deep cloned elements and can reset the collection's items dirty flags
/// </summary>
/// <typeparam name="T"></typeparam>
internal class DeepCloneableList<T> : List<T>, IDeepCloneable, IRememberBeingDirty
public class DeepCloneableList<T> : List<T>, IDeepCloneable, IRememberBeingDirty
{
private readonly ListCloneBehavior _listCloneBehavior;
@@ -1,6 +1,6 @@
namespace Umbraco.Core.Collections
{
internal enum ListCloneBehavior
public enum ListCloneBehavior
{
/// <summary>
/// When set, DeepClone will clone the items one time and the result list behavior will be None
@@ -7,7 +7,7 @@ namespace Umbraco.Core.Collections
/// and is customizable to keep the newest or oldest equatable item
/// </summary>
/// <typeparam name="T"></typeparam>
internal class OrderedHashSet<T> : KeyedCollection<T, T>
public class OrderedHashSet<T> : KeyedCollection<T, T>
{
private readonly bool _keepOldest;
@@ -8,7 +8,7 @@ namespace Umbraco.Core.Collections
/// </summary>
/// <remarks>Types in the list are, or derive from, or implement, the base type.</remarks>
/// <typeparam name="TBase">The base type.</typeparam>
internal class TypeList<TBase>
public class TypeList<TBase>
{
private readonly List<Type> _list = new List<Type>();
@@ -30,4 +30,4 @@ namespace Umbraco.Core.Collections
return _list.Contains(type);
}
}
}
}
@@ -0,0 +1,49 @@
namespace Umbraco.Core.Composing
{
/// <summary>
/// Specifies the lifetime of a registered instance.
/// </summary>
public enum Lifetime
{
/// <summary>
/// Always get a new instance.
/// </summary>
/// <remarks>Corresponds to Transient in LightInject, Castle Windsor
/// or MS.DI, PerDependency in Autofac.</remarks>
Transient,
/// <summary>
/// One unique instance per request.
/// </summary>
// TODO: review lifetimes for LightInject vs other containers
// currently, corresponds to 'Request' in LightInject which is 'Transient + disposed by Scope'
// but NOT (in LightInject) a per-web-request lifetime, more a TransientScoped
//
// we use it for controllers, httpContextBase and umbracoContext
// - so that they are automatically disposed at the end of the scope (ie request)
// - not sure they should not be simply 'scoped'?
//
// Castle has an extra PerWebRequest something, and others use scope
// what about Request before first request ie during application startup?
// see http://blog.ploeh.dk/2009/11/17/UsingCastleWindsor'sPerWebRequestlifestylewithASP.NETMVConIIS7/
// Castle ends up requiring a special scope manager too
// see https://groups.google.com/forum/#!topic/castle-project-users/1E2W9LVIYR4
//
// but maybe also - why are we requiring scoped services at startup?
Request,
/// <summary>
/// One unique instance per container scope.
/// </summary>
/// <remarks>Corresponds to Scope in LightInject, Scoped in MS.DI
/// or Castle Windsor, PerLifetimeScope in Autofac.</remarks>
Scope,
/// <summary>
/// One unique instance per container.
/// </summary>
/// <remarks>Corresponds to Singleton in LightInject, Castle Windsor
/// or MS.DI and to SingleInstance in Autofac.</remarks>
Singleton
}
}
@@ -12,7 +12,7 @@ namespace Umbraco.Core.Composing
/// A utility class for type checking, this provides internal caching so that calls to these methods will be faster
/// than doing a manual type check in c#
/// </summary>
internal static class TypeHelper
public static class TypeHelper
{
private static readonly ConcurrentDictionary<Tuple<Type, bool, bool, bool>, PropertyInfo[]> GetPropertiesCache
= new ConcurrentDictionary<Tuple<Type, bool, bool, bool>, PropertyInfo[]>();
@@ -25,7 +25,7 @@ namespace Umbraco.Core.Composing
/// Based on a type we'll check if it is IEnumerable{T} (or similar) and if so we'll return a List{T}, this will also deal with array types and return List{T} for those too.
/// If it cannot be done, null is returned.
/// </summary>
internal static IList CreateGenericEnumerableFromObject(object obj)
public static IList CreateGenericEnumerableFromObject(object obj)
{
var type = obj.GetType();
@@ -323,7 +323,7 @@ namespace Umbraco.Core.Composing
return MatchType(implementation, contract, new Dictionary<string, Type>());
}
internal static bool MatchType(Type implementation, Type contract, IDictionary<string, Type> bindings, bool variance = true)
public static bool MatchType(Type implementation, Type contract, IDictionary<string, Type> bindings, bool variance = true)
{
if (contract.IsGenericType)
{
@@ -1,5 +1,4 @@
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
namespace Umbraco.Core.Configuration.Grid
{
@@ -0,0 +1,10 @@
namespace Umbraco.Core.Configuration
{
/// <summary>
/// Represents an Umbraco configuration section which can be used to pass to UmbracoConfiguration.For{T}
/// </summary>
public interface IUmbracoConfigurationSection
{
}
}
@@ -6,7 +6,7 @@ namespace Umbraco.Core
/// <summary>
/// Allows for converting string representations of 0 and 1 to boolean
/// </summary>
internal class CustomBooleanTypeConverter : BooleanConverter
public class CustomBooleanTypeConverter : BooleanConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
@@ -1,7 +1,4 @@
using Newtonsoft.Json;
using Umbraco.Core.Manifest;
namespace Umbraco.Core.Dashboards
namespace Umbraco.Core.Dashboards
{
/// <summary>
/// Represents an access rule.
@@ -1,23 +1,15 @@
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading;
namespace Umbraco.Core
{
/// <summary>
/// Static and extension methods for the DataTable object
/// </summary>
internal static class DataTableExtensions
public static class DataTableExtensions
{
/// <summary>
/// Creates a DataTable with the specified alias and columns and uses a callback to populate the headers.
/// </summary>
@@ -65,7 +57,7 @@ namespace Umbraco.Core
/// <remarks>
/// This is for legacy code, I didn't want to go creating custom classes for these
/// </remarks>
internal static List<System.Tuple<IEnumerable<KeyValuePair<string, object>>, IEnumerable<KeyValuePair<string, object>>>> CreateTableData()
public static List<System.Tuple<IEnumerable<KeyValuePair<string, object>>, IEnumerable<KeyValuePair<string, object>>>> CreateTableData()
{
return new List<System.Tuple<IEnumerable<KeyValuePair<string, object>>, IEnumerable<KeyValuePair<string, object>>>>();
}
@@ -79,7 +71,7 @@ namespace Umbraco.Core
/// <remarks>
/// This is for legacy code, I didn't want to go creating custom classes for these
/// </remarks>
internal static void AddRowData(
public static void AddRowData(
List<System.Tuple<IEnumerable<KeyValuePair<string, object>>, IEnumerable<KeyValuePair<string, object>>>> rowData,
IEnumerable<KeyValuePair<string, object>> standardVals,
IEnumerable<KeyValuePair<string, object>> userVals)
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
@@ -16,7 +15,7 @@ namespace Umbraco.Core
/// <returns></returns>
public static string ToIsoString(this DateTime dt)
{
return dt.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
return dt.ToString("yyyy-MM-dd HH:mm:ss");
}
public static DateTime TruncateTo(this DateTime dt, DateTruncate truncateTo)
@@ -12,7 +12,7 @@ namespace Umbraco.Core
///<summary>
/// Extension methods for Dictionary & ConcurrentDictionary
///</summary>
internal static class DictionaryExtensions
public static class DictionaryExtensions
{
/// <summary>
@@ -1,4 +1,4 @@
namespace Umbraco.Core.Persistence.DatabaseModelDefinitions
namespace Umbraco.Core
{
public enum Direction
{
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Umbraco.Core.Persistence.DatabaseModelDefinitions;
namespace Umbraco.Core
{
@@ -10,7 +9,44 @@ namespace Umbraco.Core
///</summary>
public static class EnumerableExtensions
{
internal static bool IsCollectionEmpty<T>(this IReadOnlyCollection<T> list) => list == null || list.Count == 0;
// based upon the original Zip<T1, T2, TResult> method
public static IEnumerable<TResult> Zip<T1, T2, T3, TResult>(this IEnumerable<T1> e1, IEnumerable<T2> e2, IEnumerable<T3> e3,
Func<T1, T2, T3, TResult> resultSelector)
{
if (e1 == null) throw new ArgumentNullException("e1");
if (e2 == null) throw new ArgumentNullException("e2");
if (e3 == null) throw new ArgumentNullException("e3");
if (resultSelector == null) throw new ArgumentNullException("resultSelector");
return ZipIterator(e1, e2, e3, resultSelector);
}
private static IEnumerable<TResult> ZipIterator<T1, T2, T3, TResult>(IEnumerable<T1> ie1, IEnumerable<T2> ie2, IEnumerable<T3> ie3,
Func<T1, T2, T3, TResult> resultSelector)
{
var e1 = ie1.GetEnumerator();
try
{
var e2 = ie2.GetEnumerator();
var e3 = ie3.GetEnumerator();
try
{
while (e1.MoveNext() && e2.MoveNext() && e3.MoveNext())
yield return resultSelector(e1.Current, e2.Current, e3.Current);
}
finally
{
if (e2 != null)
e2.Dispose();
if (e3 != null)
e3.Dispose();
}
}
finally
{
if (e1 != null)
e1.Dispose();
}
}
internal static bool HasDuplicates<T>(this IEnumerable<T> items, bool includeNull)
{
@@ -114,6 +150,7 @@ namespace Umbraco.Core
}
}
/// <summary>
/// Returns true if all items in the other collection exist in this collection
/// </summary>
@@ -96,7 +96,7 @@ namespace Umbraco.Core.Events
/// This allows for a bit of flexibility in our event raising - it's not pretty but we need to maintain backwards compatibility
/// so we cannot change the strongly typed nature for some events.
/// </remarks>
public ReadOnlyDictionary<string, object> AdditionalData { get; internal set; }
public ReadOnlyDictionary<string, object> AdditionalData { get; set; }
/// <summary>
/// This can be used by event subscribers to store state in the event args so they easily deal with custom state data between a starting ("ing")
@@ -105,7 +105,7 @@ namespace Umbraco.Core.Events
public IDictionary<string, object> EventState
{
get => _eventState ?? (_eventState = new Dictionary<string, object>());
internal set => _eventState = value;
set => _eventState = value;
}
public bool Equals(CancellableEventArgs other)
@@ -41,6 +41,6 @@ namespace Umbraco.Core.Events
/// <remarks>
/// This is protected so that inheritors can expose it with their own name
/// </remarks>
internal object EventObject { get; set; }
public object EventObject { get; set; }
}
}
@@ -0,0 +1,4 @@
namespace Umbraco.Core.Events
{
public class DatabaseCreationEventArgs : System.ComponentModel.CancelEventArgs{}
}
@@ -2,7 +2,7 @@
namespace Umbraco.Core.Events
{
internal class EventDefinition : EventDefinitionBase
public class EventDefinition : EventDefinitionBase
{
private readonly EventHandler _trackedEvent;
private readonly object _sender;
@@ -25,7 +25,7 @@ namespace Umbraco.Core.Events
}
}
internal class EventDefinition<TEventArgs> : EventDefinitionBase
public class EventDefinition<TEventArgs> : EventDefinitionBase
{
private readonly EventHandler<TEventArgs> _trackedEvent;
private readonly object _sender;
@@ -48,7 +48,7 @@ namespace Umbraco.Core.Events
}
}
internal class EventDefinition<TSender, TEventArgs> : EventDefinitionBase
public class EventDefinition<TSender, TEventArgs> : EventDefinitionBase
{
private readonly TypedEventHandler<TSender, TEventArgs> _trackedEvent;
private readonly TSender _sender;
@@ -22,6 +22,6 @@
/// <summary>
/// This is used to track if this message should be used as a default message so that Umbraco doesn't also append it's own default messages
/// </summary>
internal bool IsDefaultEventMessage { get; set; }
public bool IsDefaultEventMessage { get; set; }
}
}
@@ -20,7 +20,7 @@ namespace Umbraco.Core.Events
///
/// We can also write tests to validate these are all working correctly for all services.
/// </summary>
internal class EventNameExtractor
public class EventNameExtractor
{
/// <summary>
@@ -52,7 +52,7 @@ namespace Umbraco.Core.Events
}
}
internal static string[] FindEvents(Type senderType, Type argsType, Func<string, bool> exclude)
public static string[] FindEvents(Type senderType, Type argsType, Func<string, bool> exclude)
{
var found = MatchedEventNames.GetOrAdd(new Tuple<Type, Type>(senderType, argsType), tuple =>
{
@@ -120,7 +120,7 @@ namespace Umbraco.Core.Events
/// </summary>
/// <param name="eventName"></param>
/// <returns></returns>
internal static bool MatchIngNames(string eventName)
public static bool MatchIngNames(string eventName)
{
var splitter = new Regex(@"(?<!^)(?=[A-Z])");
var words = splitter.Split(eventName);
@@ -134,7 +134,7 @@ namespace Umbraco.Core.Events
/// </summary>
/// <param name="eventName"></param>
/// <returns></returns>
internal static bool MatchNonIngNames(string eventName)
public static bool MatchNonIngNames(string eventName)
{
var splitter = new Regex(@"(?<!^)(?=[A-Z])");
var words = splitter.Split(eventName);

Some files were not shown because too many files have changed in this diff Show More