Richard, Thanks a lot for clarifying my mess!
A few extra things:
On step 11 you can optionally remove the snk, because we use nant to
build and the nant script ensures that all assemblies get signed
regardless.
Step 7 is a bit different for tagged versions (release versions), what
you have to do is modify the svn:external to point to a pegged
revision of the buildscript so that if we modify the buildscript the
tagged version doesn't get affected by that change. eg ^/
buildscripts@6082 buildscripts
Just one observation:
Builds work fine in .net-3.5 but for some bizarre reasons some tests
are failing on the mono build, and sometimes the tests pass on windows
mono but fail on linux mono.
Cheers
John
On Oct 13, 6:13 pm, "G. Richard Bellamy" <
rbell...@pteradigm.com>
wrote:
> 1. "Create folder" (e.g. /Components/Binder).
> 2. Create subfolders for trunk, branches and tags (e.g.
> /Components/Binder/trunk).
> 3. Create a lib folder (e.g. /Components/Binder/trunk/lib).
> 4. "Copy to..." from the old folder to a new folder called src (e.g. from
> /trunk/Components/Binder to /Components/Binder/trunk/src).
> 5. "Delete" the old folder (e.g. /trunk/Components/Binder).
> 6. Add an svn:externals entry to the parent directory of the old
> structure (e.g. svn:externals "^/Components/Binder/trunk/src Transaction" to
> /trunk/Services).
> 7. Add an svn:externals to the new trunk from /buildscripts. Ignore the
> build directory. (e.g. svn:externals "^/buildscripts buildscripts" to
> /Components/Binder/trunk).
> 8. Populate the lib folder with dependencies, including Castle binaries.
> Make a subdirectory for each framework target. This requires that you have a
> set handy - hence the necessity of ensuring the old /trunk compiles in NAnt.
> (e.g. Look at the references in the Castle.Components.Binder and
> Castle.Components.Binder.Tests projects, and copy the necessary assemblies
> from the build artifacts directory /trunk/build/net-3.5/release to
> /Components/Binder/trunk/lib/net-3.5 and
> /Components/Binder/trunk/lib/mono-3.5, respectively).
> 9. Replace all project-based dependencies in the primary project(s) (e.g.
> replace all project-based dependencies in the Castle.Components.Binder
>
VS.NET project with binary references, targeting the assemblies in
> /Components/Binder/trunk/lib/net-3.5).
> 10. Do the same with the Test project, but leave the reference to the
> primary project(s) (e.g. in the Castle.Components.Binder.Tests project,
> leave the project-based dependency to Castle.Components.Binder. Replace all
> other project-based dependencies with binary dependencies).
> 11. Modify the projects to find the SNK file located in the buildscripts
> folder (e.g. /Components/Binder/trunk/src/buildscripts).
> 12. Create and add AssemblyInfo.cs files to each project.
> 13. Add a default.build file to trunk/src and subdirectories (e.g.
> /Components/Binder/trunk/src,
> /Components/Binder/src/Castle.Components.Binder and
> /Components/Binder/src/Castle.Components.Binder.Tests)
> 14. Configure the default.build files. Look at the projects already
> migrated for an example.
> 15. Configure the TeamCity Project with Build Configurations. Make sure
> the VCS Checkout Rule always points to a path that exists. If the project
> doesn't have a release branch or tag yet, point the rule at the trunk.
> 16. Build Goodness locally and on TeamCity.