diff --git a/.gitignore b/.gitignore
index 6c180fa693..be42ec2747 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,8 @@
+#
+# Umbraco Cms Git Ignore
+#
+
+# common files
*.obj
*.pdb
*.user
@@ -9,21 +14,29 @@
*.vs10x
*.ndproj
+# common directories
.DS_Store
._.DS_Store
+.vs/
+/local/
-[Bb]in
+# build directories
+[Bb]in/
[Db]ebug*/
-obj/
[Rr]elease*/
+obj/
+# tools
_ReSharper*/
-
_NCrunch_*/
*.ncrunchsolution
*.ncrunchsolution.user
*.ncrunchproject
*.crunchsolution.cache
+tools/NDepend/
+
+
+
[Tt]est[Rr]esult*
[Bb]uild[Ll]og.*
@@ -97,7 +110,6 @@ src/Umbraco.Web.UI.Client/[Bb]uild/[Bb]elle/
src/Umbraco.Web.UI/[Uu]ser[Cc]ontrols/
src/Umbraco.Web.UI.Client/src/[Ll]ess/*.css
-tools/NDepend/
src/Umbraco.Web.UI/App_Plugins/*
src/*.psess
@@ -146,7 +158,6 @@ apidocs/api/*
build/docs.zip
build/ui-docs.zip
build/csharp-docs.zip
-.vs/
src/packages/
src/PrecompiledWeb/*
@@ -155,3 +166,7 @@ build.out/
build.tmp/
build/hooks/
build/temp/
+
+
+
+# eof
\ No newline at end of file
diff --git a/V8_GETTING_STARTED.md b/V8_GETTING_STARTED.md
index 61734b9959..3c954091f8 100644
--- a/V8_GETTING_STARTED.md
+++ b/V8_GETTING_STARTED.md
@@ -2,7 +2,7 @@
### What you need:
-* [Visual Studio 2017 Community (Free)](https://www.visualstudio.com/vs/community/), or Professional, Enterprise, etc...
+* [Visual Studio 2017 Community (Free)](https://www.visualstudio.com/vs/community/), or Professional, Enterprise, etc... _(Version 15.7+)_
* .NET Framework 4.7.2 installed, get it here: https://www.microsoft.com/net/download/thank-you/net472?survey=false
* .NET Framework 4.7.2 developer pack, get it here: https://www.microsoft.com/net/download/thank-you/net472-developer-pack _(be sure this is the ENU file which will be named `NDP472-DevPack-ENU.exe`)_
* Clone the Umbraco repository and ensure you have the `temp8` branch checked out
@@ -15,6 +15,12 @@
* When the website starts you'll see the Umbraco installer and just follow the prompts
* Your all set!
+### Wan't to run from a zip instead?
+
+If you just want to try out a few things, you can run the site from a zip file which you can download from here https://github.com/umbraco/Umbraco-CMS/releases/tag/temp8-cg18.
+
+We recommend running the site with the Visual Studio since you'll be able to remain up to date with the latest source code changes.
+
### Making code changes
* _The process for making code changes in v8 is the same as v7_
diff --git a/build/NuSpecs/UmbracoCms.Core.nuspec b/build/NuSpecs/UmbracoCms.Core.nuspec
index 5e836f602b..7aab71e73a 100644
--- a/build/NuSpecs/UmbracoCms.Core.nuspec
+++ b/build/NuSpecs/UmbracoCms.Core.nuspec
@@ -15,74 +15,63 @@
en-US
umbraco
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
-
-
-
+
-
+
@@ -91,5 +80,7 @@
+
+
diff --git a/build/NuSpecs/UmbracoCms.nuspec b/build/NuSpecs/UmbracoCms.nuspec
index 241a46d2c2..1c306423b7 100644
--- a/build/NuSpecs/UmbracoCms.nuspec
+++ b/build/NuSpecs/UmbracoCms.nuspec
@@ -16,7 +16,6 @@
umbraco
-
@@ -27,14 +26,17 @@
-
-
+
+
+
+
+
diff --git a/build/NuSpecs/tools/Web.config.install.xdt b/build/NuSpecs/tools/Web.config.install.xdt
index 5fb0a79ee3..027d1e49a6 100644
--- a/build/NuSpecs/tools/Web.config.install.xdt
+++ b/build/NuSpecs/tools/Web.config.install.xdt
@@ -2,17 +2,15 @@
-
-
+
-
@@ -29,14 +27,12 @@
-
-
@@ -61,7 +57,7 @@
-
+
>
@@ -92,9 +88,6 @@
-
-
-
@@ -157,62 +150,42 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -232,4 +205,4 @@
-
\ No newline at end of file
+
diff --git a/build/build.ps1 b/build/build.ps1
index 3bdf2ba6e1..3134dfedb2 100644
--- a/build/build.ps1
+++ b/build/build.ps1
@@ -298,10 +298,10 @@
# copy libs
Write-Host "Copy SqlCE libraries"
$nugetPackages = [System.Environment]::ExpandEnvironmentVariables("%userprofile%\.nuget\packages")
- $this.CopyFiles("$nugetPackages\SqlServerCE\4.0.0.1", "*.*", "$tmp\bin", `
- { -not $_.Extension.StartsWith(".nu") -and -not $_.RelativeName.StartsWith("lib\") })
- $this.CopyFiles("$nugetPackages\SqlServerCE\4.0.0.1", "*.*", "$tmp\WebApp\bin", `
- { -not $_.Extension.StartsWith(".nu") -and -not $_.RelativeName.StartsWith("lib\") })
+ $this.CopyFiles("$nugetPackages\umbraco.sqlserverce\4.0.0.1\runtimes\win-x86\native", "*.*", "$tmp\bin\x86")
+ $this.CopyFiles("$nugetPackages\umbraco.sqlserverce\4.0.0.1\runtimes\win-x64\native", "*.*", "$tmp\bin\amd64")
+ $this.CopyFiles("$nugetPackages\umbraco.sqlserverce\4.0.0.1\runtimes\win-x86\native", "*.*", "$tmp\WebApp\bin\x86")
+ $this.CopyFiles("$nugetPackages\umbraco.sqlserverce\4.0.0.1\runtimes\win-x64\native", "*.*", "$tmp\WebApp\bin\amd64")
# copy Belle
Write-Host "Copy Belle"
@@ -388,11 +388,6 @@
Write-Host "Create NuGet packages"
- # see https://docs.microsoft.com/en-us/nuget/schema/nuspec
- # note - warnings about SqlCE native libs being outside of 'lib' folder,
- # nothing much we can do about it as it's intentional yet there does not
- # seem to be a way to disable the warning
-
&$this.BuildEnv.NuGet Pack "$nuspecs\UmbracoCms.Core.nuspec" `
-Properties BuildTmp="$($this.BuildTemp)" `
-Version "$($this.Version.Semver.ToString())" `
@@ -430,6 +425,8 @@
$ubuild.DefineMethod("Build",
{
+ $error.Clear()
+
$this.PrepareBuild()
if ($this.OnError()) { return }
$this.RestoreNuGet()
diff --git a/src/SolutionInfo.cs b/src/SolutionInfo.cs
index 37150025fa..841127e43e 100644
--- a/src/SolutionInfo.cs
+++ b/src/SolutionInfo.cs
@@ -19,4 +19,4 @@ using System.Resources;
// these are FYI and changed automatically
[assembly: AssemblyFileVersion("8.0.0")]
-[assembly: AssemblyInformationalVersion("8.0.0-alpha.34")]
+[assembly: AssemblyInformationalVersion("8.0.0-alpha.41")]
diff --git a/src/Umbraco.Core/Configuration/UmbracoVersion.cs b/src/Umbraco.Core/Configuration/UmbracoVersion.cs
index 063125e462..2f3ce7956a 100644
--- a/src/Umbraco.Core/Configuration/UmbracoVersion.cs
+++ b/src/Umbraco.Core/Configuration/UmbracoVersion.cs
@@ -22,7 +22,7 @@ namespace Umbraco.Core.Configuration
///
/// Gets the version comment of the executing code (eg "beta").
///
- public static string CurrentComment => "alpha.34";
+ public static string CurrentComment => "alpha.41";
///
/// Gets the assembly version of Umbraco.Code.dll.
diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj
index 1fa5bd676a..b94e1095d8 100644
--- a/src/Umbraco.Core/Umbraco.Core.csproj
+++ b/src/Umbraco.Core/Umbraco.Core.csproj
@@ -67,9 +67,7 @@
-
- 5.2.6
-
+
@@ -78,8 +76,7 @@
-
-
+
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
index 145b035e7f..89151e65f4 100644
--- a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
+++ b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
@@ -108,9 +108,7 @@
-
-
-
+
@@ -121,6 +119,10 @@
Umbraco.Examine
{07FBC26B-2927-4A22-8D96-D644C667FECC}
+
+ {7020a059-c0d1-43a0-8efd-23591a0c9af6}
+ Umbraco.ModelsBuilder
+
{651e1350-91b6-44b7-bd60-7207006d7003}
Umbraco.Web
@@ -604,14 +606,6 @@
-
-
-
-
-
-
-
-
diff --git a/src/Umbraco.Web.UI/umbraco/dialogs/AssignDomain2.aspx b/src/Umbraco.Web.UI/umbraco/dialogs/AssignDomain2.aspx
index 5dbf7b5b27..6439a01cd5 100644
--- a/src/Umbraco.Web.UI/umbraco/dialogs/AssignDomain2.aspx
+++ b/src/Umbraco.Web.UI/umbraco/dialogs/AssignDomain2.aspx
@@ -31,9 +31,9 @@
-
+
-
+
diff --git a/src/Umbraco.Web.UI/umbraco_client/Dialogs/AssignDomain2.css b/src/Umbraco.Web.UI/umbraco_client/Dialogs/AssignDomain2.css
index 855197eb57..bfabd9b68b 100644
--- a/src/Umbraco.Web.UI/umbraco_client/Dialogs/AssignDomain2.css
+++ b/src/Umbraco.Web.UI/umbraco_client/Dialogs/AssignDomain2.css
@@ -13,10 +13,6 @@ select.language {
width: 90px;
}
-input.domain {
- width: 280px;
-}
-
label.error {
padding: 0 0 6px 0;
margin: 0;
diff --git a/src/Umbraco.Web.UI/web.Template.config b/src/Umbraco.Web.UI/web.Template.config
index 7eedec3ec0..19fdbc9050 100644
--- a/src/Umbraco.Web.UI/web.Template.config
+++ b/src/Umbraco.Web.UI/web.Template.config
@@ -56,6 +56,7 @@
+
@@ -241,38 +242,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -294,40 +267,16 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/src/Umbraco.Web/PropertyEditors/MultipleTestStringConfiguration.cs b/src/Umbraco.Web/PropertyEditors/MultipleTextStringConfiguration.cs
similarity index 63%
rename from src/Umbraco.Web/PropertyEditors/MultipleTestStringConfiguration.cs
rename to src/Umbraco.Web/PropertyEditors/MultipleTextStringConfiguration.cs
index 028bc9c13d..7513222ca2 100644
--- a/src/Umbraco.Web/PropertyEditors/MultipleTestStringConfiguration.cs
+++ b/src/Umbraco.Web/PropertyEditors/MultipleTextStringConfiguration.cs
@@ -1,9 +1,9 @@
namespace Umbraco.Web.PropertyEditors
{
///
- /// Represents the configuration for a multiple testring value editor.
+ /// Represents the configuration for a multiple textstring value editor.
///
- public class MultipleTestStringConfiguration
+ public class MultipleTextStringConfiguration
{
// fields are configured in the editor
@@ -11,4 +11,4 @@
public int Maximum {get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/src/Umbraco.Web/PropertyEditors/MultipleTextStringConfigurationEditor.cs b/src/Umbraco.Web/PropertyEditors/MultipleTextStringConfigurationEditor.cs
index 6a10a103ba..a76d844dd6 100644
--- a/src/Umbraco.Web/PropertyEditors/MultipleTextStringConfigurationEditor.cs
+++ b/src/Umbraco.Web/PropertyEditors/MultipleTextStringConfigurationEditor.cs
@@ -8,7 +8,7 @@ namespace Umbraco.Web.PropertyEditors
///
/// Represents the configuration editor for a multiple testring value editor.
///
- internal class MultipleTextStringConfigurationEditor : ConfigurationEditor
+ internal class MultipleTextStringConfigurationEditor : ConfigurationEditor
{
public MultipleTextStringConfigurationEditor()
{
@@ -18,7 +18,7 @@ namespace Umbraco.Web.PropertyEditors
Key = "min",
View = "requiredfield",
Name = "Minimum",
- PropertyName = nameof(MultipleTestStringConfiguration.Minimum)
+ PropertyName = nameof(MultipleTextStringConfiguration.Minimum)
});
Fields.Add(new ConfigurationField(new IntegerValidator())
@@ -27,12 +27,12 @@ namespace Umbraco.Web.PropertyEditors
Key = "max",
View = "requiredfield",
Name = "Maximum",
- PropertyName = nameof(MultipleTestStringConfiguration.Maximum)
+ PropertyName = nameof(MultipleTextStringConfiguration.Maximum)
});
}
///
- public override MultipleTestStringConfiguration FromConfigurationEditor(IDictionary editorValues, MultipleTestStringConfiguration configuration)
+ public override MultipleTextStringConfiguration FromConfigurationEditor(IDictionary editorValues, MultipleTextStringConfiguration configuration)
{
// fixme this isn't pretty
//the values from the editor will be min/max fieds and we need to format to json in one field
@@ -40,7 +40,7 @@ namespace Umbraco.Web.PropertyEditors
var min = (editorValues.ContainsKey("min") ? editorValues["min"].ToString() : "0").TryConvertTo();
var max = (editorValues.ContainsKey("max") ? editorValues["max"].ToString() : "0").TryConvertTo();
- return new MultipleTestStringConfiguration
+ return new MultipleTextStringConfiguration
{
Minimum = min ? min.Result : 0,
Maximum = max ? max.Result : 0
@@ -48,7 +48,7 @@ namespace Umbraco.Web.PropertyEditors
}
///
- public override Dictionary ToConfigurationEditor(MultipleTestStringConfiguration configuration)
+ public override Dictionary ToConfigurationEditor(MultipleTextStringConfiguration configuration)
{
return new Dictionary
{
diff --git a/src/Umbraco.Web/PropertyEditors/MultipleTextStringPropertyEditor.cs b/src/Umbraco.Web/PropertyEditors/MultipleTextStringPropertyEditor.cs
index 645296a354..141bdea7b6 100644
--- a/src/Umbraco.Web/PropertyEditors/MultipleTextStringPropertyEditor.cs
+++ b/src/Umbraco.Web/PropertyEditors/MultipleTextStringPropertyEditor.cs
@@ -55,7 +55,7 @@ namespace Umbraco.Web.PropertyEditors
return null;
}
- if (!(editorValue.DataTypeConfiguration is MultipleTestStringConfiguration config))
+ if (!(editorValue.DataTypeConfiguration is MultipleTextStringConfiguration config))
throw new Exception("panic");
var max = config.Maximum;
diff --git a/src/Umbraco.Web/Routing/UrlProvider.cs b/src/Umbraco.Web/Routing/UrlProvider.cs
index 6fa818f392..ea84bbf4e1 100644
--- a/src/Umbraco.Web/Routing/UrlProvider.cs
+++ b/src/Umbraco.Web/Routing/UrlProvider.cs
@@ -188,11 +188,10 @@ namespace Umbraco.Web.Routing
if (content == null)
return "#";
- // this the ONLY place where we deal with default culture - IUrlProvider always receive a culture
+ // this the ONLY place where we deal with default culture - IUrlProvider always receive a culture
+ // be nice with tests, assume things can be null, ultimately fall back to invariant
if (culture == null)
- {
- culture = _variationContextAccessor.VariationContext.Culture;
- }
+ culture = _variationContextAccessor?.VariationContext?.Culture ?? "";
if (current == null)
current = _umbracoContext.CleanedUmbracoUrl;
diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj
index 4d2c6fb850..6f61144786 100644
--- a/src/Umbraco.Web/Umbraco.Web.csproj
+++ b/src/Umbraco.Web/Umbraco.Web.csproj
@@ -74,9 +74,7 @@
-
- 5.2.6
-
+
@@ -86,7 +84,6 @@
-
@@ -300,7 +297,7 @@
-
+
diff --git a/src/umbraco.sln b/src/umbraco.sln
index 02a5367e04..0f0ef0e523 100644
--- a/src/umbraco.sln
+++ b/src/umbraco.sln
@@ -91,8 +91,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "About", "About", "{420D2458
..\LICENSE.md = ..\LICENSE.md
..\PULL_REQUEST_TEMPLATE.md = ..\PULL_REQUEST_TEMPLATE.md
..\README.md = ..\README.md
+ ..\V8_GETTING_STARTED.md = ..\V8_GETTING_STARTED.md
EndProjectSection
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Umbraco.ModelsBuilder", "Umbraco.ModelsBuilder\Umbraco.ModelsBuilder.csproj", "{7020A059-C0D1-43A0-8EFD-23591A0C9AF6}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -125,6 +128,10 @@ Global
{86DEB346-089F-4106-89C8-D852B9CF2A33}.Debug|Any CPU.Build.0 = Debug|Any CPU
{86DEB346-089F-4106-89C8-D852B9CF2A33}.Release|Any CPU.ActiveCfg = Release|Any CPU
{86DEB346-089F-4106-89C8-D852B9CF2A33}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7020A059-C0D1-43A0-8EFD-23591A0C9AF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7020A059-C0D1-43A0-8EFD-23591A0C9AF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7020A059-C0D1-43A0-8EFD-23591A0C9AF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7020A059-C0D1-43A0-8EFD-23591A0C9AF6}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE