a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
58 lines
2.2 KiB
Markdown
58 lines
2.2 KiB
Markdown
About this source repository
|
|
----------------------------
|
|
|
|
This is a partial import of rx.codeplex.com for mono.
|
|
|
|
Since rx.codeplex.com is massive and we only need partial source tree of it
|
|
(and due to some checkout failure on Linux [*1]), we set up another
|
|
repository for mono submodule.
|
|
|
|
This tree is hence manually imported. Though it is somewhat easy to maintain:
|
|
we try to "cherry-pick" [*2] changes that are applied only to Rx.NET in the
|
|
rx.codeplex.com.
|
|
Mostly we would not need to copy sources from the original tree manually,
|
|
but sometimes we will do so when a checkout involves other directories
|
|
than Rx/NET.
|
|
|
|
(Actually we had to sort of revamp the cherry-pick model when there was
|
|
folder structural change in the Microsoft repository. But the structure
|
|
is simpler than before and we will likely need less manual imports.)
|
|
|
|
For every original release, we should import the updates and commit to
|
|
this master, then create a branch for each release and *then* apply our
|
|
local changes (which is minimum but required) to the branch.
|
|
|
|
[*1] http://codeplex.codeplex.com/workitem/26133
|
|
[*2] not really meaning git cherry-pick which won't apply, but rather
|
|
applying diffs to the tree.
|
|
|
|
Source changes
|
|
--------------
|
|
|
|
As of OSS release 1.0, there are only two steps are required to make it
|
|
possible to build with mono in the source repo:
|
|
|
|
- apply mono.patch
|
|
- cd Rx/NET/Source/Tests.System.Reactive and run "csharp ../../../../replacer.sh"
|
|
|
|
Actually ObservableExTest.cs cannot be compiled due to insufficient
|
|
type inference for lambdas, so I skipped it in Mono.Reactive.Testing_test.dll.
|
|
|
|
Note that the actual class library build is done in mono/mcs/class and
|
|
there is a build script that generates required source list etc.
|
|
|
|
|
|
NuGet packaging
|
|
---------------
|
|
|
|
NuGet supports Xamarin.Android and Xamarin.iOS since version 2.5, so I have
|
|
created nuspecs for each.
|
|
|
|
On non-Windows environment you can build NuGet packages by running:
|
|
|
|
mono /path/to/sources/for/nuget/src/CommandLine/bin/Release/NuGet.exe \
|
|
pack Rx/NET/Source/Rx_Xamarin/ReactiveExtensionsForAndroid.nuspec
|
|
mono /path/to/sources/for/nuget/src/CommandLine/bin/Release/NuGet.exe \
|
|
pack Rx/NET/Source/Rx_Xamarin/ReactiveExtensionsForiOS.nuspec
|
|
|