Skip to content

Commit

Permalink
Merge branch 'master' into bcl-async-pack-everywhere
Browse files Browse the repository at this point in the history
  • Loading branch information
anaisbetts committed Dec 13, 2012
2 parents 6fb140c + f707115 commit b6a2f91
Show file tree
Hide file tree
Showing 229 changed files with 18,362 additions and 31,206 deletions.
22 changes: 22 additions & 0 deletions .gitattributes
@@ -0,0 +1,22 @@
# Auto detect text files and perform LF normalization
* text=auto

# Custom for Visual Studio
*.cs diff=csharp
*.sln merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union

# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
37 changes: 37 additions & 0 deletions CONTRIBUTING.md
@@ -0,0 +1,37 @@
## The quick version

1. Open `ReactiveUI_Net4Only.sln` in VS2010 / VS2012
1. Run tests, build ReactiveUI.sln in VS2012 on Win8
1. Submit PR


## How to start hacking on ReactiveUI (the more verbose version)

1. Fork and Clone the source
1. Create a new branch for your feature / bugfix
1. Open the ReactiveUI_Net4Only.sln solution - this is the one you should use unless you're hacking on platform-specific code.
1. Run all the tests, make sure they pass.
1. Write some new tests that fail
1. Make your change
1. See those same tests pass! Hurrah!
1. Build ReactiveUI.sln, see if you broke any other platforms (easy to do, sadly)
1. Push that branch to GitHub (`git push -u origin my-cool-new-feature`)
1. Go to your fork on GitHub, you should see a button with your branch next to it labeled 'Pull Request'
1. Type up some information about your change

## To make a new NuGet release for private use

*This looks hard, but once you get your environment set up, it's really only 'Build in VS, build in Mono, run script'*

1. Put the source into DropBox or another way you can share the same folder between a Mac and a PC (Parallels Shared Folders works too)
1. Edit `**/AssemblyInfo.cs` (i.e. every file named AssemblyInfo.cs) and bump the versions
1. Edit `NuGet/**/*.nuspec` (every nuspec file under the root NuGet folder) and do the same. Make sure to bump the dependent versions too!
1. Open ReactiveUI.sln and build it in Release mode under VS2012 on Windows 8 with the WP8 SDK installed (nothing earlier is supported)
1. Open MonoDevelop, and build ReactiveUI_Mono.sln in Release mode
1. Back on the PC, run `MakeRelease.ps1`
1. You'll end up with two new folders, `Release` and `Nuget-Release`, as well as the `.nupkg` files in the root directory.

## Some quirks

* The only 100% guaranteed .sln files to be maintained are ReactiveUI_Net4Only.sln and ReactiveUI.sln - the others may be missing projects
* Please follow my coding convention when submitting PRs - `if` statements have the brackets on the same line, non-public methods shouldBeCasedLikeThis, etc etc. I know I'm weird, Deal With It(tm).
124 changes: 62 additions & 62 deletions MakeRelease.ps1
@@ -1,62 +1,62 @@
$Archs = {"Net40", "Net45", "SL5", "SL4-WindowsPhone71", "WP8", "WinRT45", "Mono"}
$Projects = {"ReactiveUI", "ReactiveUI.Testing", "ReactiveUI.Xaml", "ReactiveUI.Routing", "ReactiveUI.Blend", "ReactiveUI.Cocoa", "ReactiveUI.Gtk", "ReactiveUI.NLog"}

$SlnFileExists = Test-Path ".\ReactiveUI.sln"
if ($SlnFileExists -eq $False) {
echo "*** ERROR: Run this in the project root ***"
exit -1
}

###
### Build the Release directory
###

rmdir -r --force .\Release

foreach-object $Archs | %{mkdir -p ".\Release\$_"}

foreach-object $Archs | %{
$currentArch = $_

foreach-object $Projects | %{cp -r -fo ".\$_\bin\Release\$currentArch\*" ".\Release\$currentArch"}

#ls -r | ?{$_.FullName.Contains("bin\Release\$currentArch") -and $_.Length} | %{echo cp $_.FullName ".\Release\$currentArch"}
}

ls -r .\Release | ?{$_.FullName.Contains("Clousot")} | %{rm $_.FullName}


###
### Build NuGet Packages
###

rm -r -fo .\NuGet-Release. .
cp -r .\NuGet .\NuGet-Release

$libDirs = ls -r .\NuGet-Release | ?{$_.Name -eq "lib"}
$nugetReleaseDir = Resolve-Path ".\NuGet-Release"

foreach ($dir in $libDirs) {
$projName = $dir.FullName.Split("\\")[-2]
$arches = ls $dir.FullName

foreach ($arch in $arches) {
$files = ls $arch.FullName

foreach ($file in $files) {
$src = ".\Release\" + $arch.Name + "\\" + $file.Name
cp -fo $src $file.FullName
}
}
}

$stubs = ls -r -file .\NuGet-Release | ?{$_.Length -eq 0}
if ($stubs.Length -gt 0) {
echo "*** BUILD FAILED ***"
echo ""
echo "*** There are still stubs in the NuGet output, did you fully build? (Hint: Check Silverlight) ***"
#exit 1
}

$specFiles = ls -r .\NuGet-Release | ?{$_.Name.EndsWith(".nuspec")}
$specFiles | %{.\.nuget\NuGet.exe pack $_.FullName}
$Archs = {"Net40", "Net45", "SL5", "SL4-WindowsPhone71", "WP8", "WinRT45", "Mono"}
$Projects = {"ReactiveUI", "ReactiveUI.Testing", "ReactiveUI.Xaml", "ReactiveUI.Routing", "ReactiveUI.Blend", "ReactiveUI.Cocoa", "ReactiveUI.Gtk", "ReactiveUI.NLog"}

$SlnFileExists = Test-Path ".\ReactiveUI.sln"
if ($SlnFileExists -eq $False) {
echo "*** ERROR: Run this in the project root ***"
exit -1
}

###
### Build the Release directory
###

rmdir -r --force .\Release

foreach-object $Archs | %{mkdir -p ".\Release\$_"}

foreach-object $Archs | %{
$currentArch = $_

foreach-object $Projects | %{cp -r -fo ".\$_\bin\Release\$currentArch\*" ".\Release\$currentArch"}

#ls -r | ?{$_.FullName.Contains("bin\Release\$currentArch") -and $_.Length} | %{echo cp $_.FullName ".\Release\$currentArch"}
}

ls -r .\Release | ?{$_.FullName.Contains("Clousot")} | %{rm $_.FullName}


###
### Build NuGet Packages
###

rm -r -fo .\NuGet-Release. .
cp -r .\NuGet .\NuGet-Release

$libDirs = ls -r .\NuGet-Release | ?{$_.Name -eq "lib"}
$nugetReleaseDir = Resolve-Path ".\NuGet-Release"

foreach ($dir in $libDirs) {
$projName = $dir.FullName.Split("\\")[-2]
$arches = ls $dir.FullName

foreach ($arch in $arches) {
$files = ls $arch.FullName

foreach ($file in $files) {
$src = ".\Release\" + $arch.Name + "\\" + $file.Name
cp -fo $src $file.FullName
}
}
}

$stubs = ls -r -file .\NuGet-Release | ?{$_.Length -eq 0}
if ($stubs.Length -gt 0) {
echo "*** BUILD FAILED ***"
echo ""
echo "*** There are still stubs in the NuGet output, did you fully build? (Hint: Check Silverlight) ***"
#exit 1
}

$specFiles = ls -r .\NuGet-Release | ?{$_.Name.EndsWith(".nuspec")}
$specFiles | %{.\.nuget\NuGet.exe pack $_.FullName}
4 changes: 2 additions & 2 deletions NuGet/ReactiveUI-Core/ReactiveUI-Core.nuspec
Expand Up @@ -2,7 +2,7 @@
<package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<id>reactiveui-core</id>
<version>4.0.3</version>
<version>4.1.0</version>
<description>An MVVM library for .NET that is deeply integrated with the Reactive Extensions</description>
<authors>Paul Betts</authors>
<projectUrl>http://www.reactiveui.net</projectUrl>
Expand All @@ -11,7 +11,7 @@
<requireLicenseAcceptance>false</requireLicenseAcceptance>

<dependencies>
<dependency id="Rx-Main" version="[2.0.21103]" />
<dependency id="Rx-Main" version="[2.0.21114]" />
</dependencies>
</metadata>
</package>
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
4 changes: 2 additions & 2 deletions NuGet/ReactiveUI-NLog/ReactiveUI-NLog.nuspec
Expand Up @@ -2,7 +2,7 @@
<package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<id>reactiveui-nlog</id>
<version>4.0.3</version>
<version>4.1.0</version>
<description>An adapter to initialize NLog as the logger for ReactiveUI.</description>
<authors>Paul Betts</authors>
<projectUrl>http://www.reactiveui.net</projectUrl>
Expand All @@ -11,7 +11,7 @@
<requireLicenseAcceptance>false</requireLicenseAcceptance>

<dependencies>
<dependency id="reactiveui-core" version="[4.0.3]" />
<dependency id="reactiveui-core" version="[4.1.0]" />
<dependency id="NLog" version="2.0.0.2000" />
</dependencies>
</metadata>
Expand Down
6 changes: 3 additions & 3 deletions NuGet/ReactiveUI-Testing/ReactiveUI-Testing.nuspec
Expand Up @@ -2,7 +2,7 @@
<package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<id>reactiveui-testing</id>
<version>4.0.3</version>
<version>4.1.0</version>
<description>A library to aid in writing unit tests for ReactiveUI projects</description>
<authors>Paul Betts</authors>
<projectUrl>http://www.reactiveui.net</projectUrl>
Expand All @@ -11,8 +11,8 @@
<requireLicenseAcceptance>false</requireLicenseAcceptance>

<dependencies>
<dependency id="reactiveui-core" version="[4.0.3]" />
<dependency id="Rx-Testing" version="[2.0.21103]" />
<dependency id="reactiveui-core" version="[4.1.0]" />
<dependency id="Rx-Testing" version="[2.0.21114]" />
</dependencies>
</metadata>
</package>
8 changes: 4 additions & 4 deletions NuGet/ReactiveUI-WinRT/ReactiveUI-WinRT.nuspec
Expand Up @@ -2,7 +2,7 @@
<package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<id>reactiveui-winrt</id>
<version>4.0.3</version>
<version>4.1.0</version>
<description>An MVVM library for WPF and Silverlight that is deeply integrated with the Reactive Extensions</description>
<authors>Paul Betts</authors>
<projectUrl>http://www.reactiveui.net</projectUrl>
Expand All @@ -11,9 +11,9 @@
<requireLicenseAcceptance>false</requireLicenseAcceptance>

<dependencies>
<dependency id="reactiveui-core" version="[4.0.3]" />
<dependency id="reactiveui-xaml" version="[4.0.3]" />
<dependency id="Rx-WinRT" version="[2.0.21103]" />
<dependency id="reactiveui-core" version="[4.1.0]" />
<dependency id="reactiveui-xaml" version="[4.1.0]" />
<dependency id="Rx-WinRT" version="[2.0.21114]" />
</dependencies>
</metadata>
</package>
6 changes: 3 additions & 3 deletions NuGet/ReactiveUI-Xaml/ReactiveUI-Xaml.nuspec
Expand Up @@ -2,7 +2,7 @@
<package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<id>reactiveui-xaml</id>
<version>4.0.3</version>
<version>4.1.0</version>
<description>WPF and Silverlight specific extensions to ReactiveUI</description>
<authors>Paul Betts</authors>
<projectUrl>http://www.reactiveui.net</projectUrl>
Expand All @@ -11,8 +11,8 @@
<requireLicenseAcceptance>false</requireLicenseAcceptance>

<dependencies>
<dependency id="reactiveui-core" version="[4.0.3]" />
<dependency id="Rx-Xaml" version="[2.0.21103]" />
<dependency id="reactiveui-core" version="[4.1.0]" />
<dependency id="Rx-Xaml" version="[2.0.21114]" />
</dependencies>
</metadata>
</package>
Empty file.
Empty file.
10 changes: 5 additions & 5 deletions NuGet/ReactiveUI/ReactiveUI.nuspec
Expand Up @@ -2,7 +2,7 @@
<package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<id>reactiveui</id>
<version>4.0.3</version>
<version>4.1.0</version>
<description>An MVVM library for WPF and Silverlight that is deeply integrated with the Reactive Extensions</description>
<authors>Paul Betts</authors>
<projectUrl>http://www.reactiveui.net</projectUrl>
Expand All @@ -11,10 +11,10 @@
<requireLicenseAcceptance>false</requireLicenseAcceptance>

<dependencies>
<dependency id="reactiveui-core" version="[4.0.3]" />
<dependency id="reactiveui-nlog" version="[4.0.3]" />
<dependency id="reactiveui-xaml" version="[4.0.3]" />
<dependency id="reactiveui-testing" version="[4.0.3]" />
<dependency id="reactiveui-core" version="[4.1.0]" />
<dependency id="reactiveui-nlog" version="[4.1.0]" />
<dependency id="reactiveui-xaml" version="[4.1.0]" />
<dependency id="reactiveui-testing" version="[4.1.0]" />
</dependencies>
</metadata>
</package>
7 changes: 2 additions & 5 deletions README.md
@@ -1,10 +1,7 @@
# ReactiveUI

This library is an exploration I've been working on for several weeks on
combining WPF Model-View-ViewModel paradigm with the Reactive Extensions for
.NET (Rx). Combining these two make managing concurrency as well as expressing
complicated interactions between objects possible in a declarative, functional
way.
Use the Reactive Extensions for .NET along with Silverlight, WPF, or
Windows Phone to create elegant, testable User Interfaces.

This library is organized into several high-level assembly:

Expand Down
20 changes: 0 additions & 20 deletions ReactiveUI.Android/ReactiveUI.Android.csproj
Expand Up @@ -43,26 +43,6 @@
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets" />
<ItemGroup>
<ProjectReference Include="..\ext\mono.reactive\System.Reactive.Core\System.Reactive.Core.csproj">
<Project>{AD27C5E8-8A0C-454D-B7AA-76A54793B81F}</Project>
<Name>System.Reactive.Core</Name>
</ProjectReference>
<ProjectReference Include="..\ext\mono.reactive\System.Reactive.Interfaces\System.Reactive.Interfaces.csproj">
<Project>{755E549E-1BDE-4153-A58B-7C969C902CAD}</Project>
<Name>System.Reactive.Interfaces</Name>
</ProjectReference>
<ProjectReference Include="..\ext\mono.reactive\System.Reactive.Linq\System.Reactive.Linq.csproj">
<Project>{F0395470-330B-4DBF-B1A5-D873E597DD05}</Project>
<Name>System.Reactive.Linq</Name>
</ProjectReference>
<ProjectReference Include="..\ext\mono.reactive\System.Reactive.PlatformServices\System.Reactive.PlatformServices.csproj">
<Project>{AEEBFC85-91B8-410F-BBB7-BD12BBC61BE6}</Project>
<Name>System.Reactive.PlatformServices</Name>
</ProjectReference>
<ProjectReference Include="..\ext\mono.reactive\System.Reactive.Providers2\System.Reactive.Providers2.csproj">
<Project>{9652D18A-CF8D-40D7-BC1D-2090E58EC1FF}</Project>
<Name>System.Reactive.Providers2</Name>
</ProjectReference>
<ProjectReference Include="..\ReactiveUI\ReactiveUI_Android.csproj">
<Project>{F92A477B-BB94-43C1-984E-E177EF9FEDB7}</Project>
<Name>ReactiveUI_Android</Name>
Expand Down
2 changes: 1 addition & 1 deletion ReactiveUI.Blend/Properties/AssemblyInfo.cs
Expand Up @@ -3,4 +3,4 @@

[assembly: AssemblyDescription("An MVVM framework that integrates the Reactive Extensions")]
[assembly: AssemblyProduct("ReactiveUI for Expression Blend")]
[assembly: AssemblyVersion("4.0.3")]
[assembly: AssemblyVersion("4.1.0")]
13 changes: 13 additions & 0 deletions ReactiveUI.Blend/ReactiveUI.Blend_WP8.csproj
Expand Up @@ -62,6 +62,19 @@
</Reference>
<Reference Include="System.Reactive.Windows.Threading, Version=2.0.20823.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<Reference Include="System.Reactive.Core">
<HintPath>..\ext\WP80\System.Reactive.Core.dll</HintPath>
</Reference>
<Reference Include="System.Reactive.Interfaces">
<HintPath>..\ext\WP80\System.Reactive.Interfaces.dll</HintPath>
</Reference>
<Reference Include="System.Reactive.Linq">
<HintPath>..\ext\WP80\System.Reactive.Linq.dll</HintPath>
</Reference>
<Reference Include="System.Reactive.PlatformServices">
<HintPath>..\ext\WP80\System.Reactive.PlatformServices.dll</HintPath>
</Reference>
<Reference Include="System.Reactive.Windows.Threading">
<HintPath>..\ext\WP80\System.Reactive.Windows.Threading.dll</HintPath>
</Reference>
<Reference Include="System.Windows" />
Expand Down

0 comments on commit b6a2f91

Please sign in to comment.