Skip to content
Mathieu Fenniak edited this page Apr 13, 2015 · 13 revisions

Welcome to the rethinkdb-net wiki!

Pages

Developer Documentation

Tips for a Successful Pull Request

  • Include an update to RELEASE-NOTES.md documenting your change with a link to the pull request or issue that it resolves. The goal here is to enable a user to go from release notes to the code changes involved, so link to whatever is most appropriate to view.

  • Almost every change should have unit tests. The only exception is internal refactoring or performance changes that intentionally do not affect existing behaviour.

  • Source code formatting:

    • UNIX line endings in every source file for consistency.
    • Make code look like the rest of the code looks.
  • If you wish to retain copyright on the code you contribute, but license it to the project and project users under the terms of the LICENSE, then please add your name to the copyright notice in the LICENSE file. Otherwise, you are assigning copyright of the contributed code to Mathieu Fenniak, who will maintain its availability under the terms of the LICENSE.

  • You may also add yourself to the list of authors in the nuspec files if you desire.

Release Process Notes

So that I don't forget to do anything when releasing new versions of rethinkdb-net:

Automated Release Process

Manual Release Process

(in case the automated release process doesn't work, this is a list of steps that should be invoked)

  • Update version number in AssemblyInfo.cs in:
    • rethinkdb-net
    • rethinkdb-net-test
    • rethinkdb-net-newtonsoft
    • rethinkdb-net-newtonsoft-test
  • Update version number in:
    • rethinkdb-net.nuspec
    • rethinkdb-net-newtonsoft.nuspec (AND rethinkdb-net dependency version number!)
  • Update RELEASE-NOTES.md with important changes since the last tagged version. (see: https://raw.github.com/SignalR/SignalR/master/ReleaseNotes.md for good release notes format)
    • Include new version number and date
  • Update <releaseNotes> in rethinkdb-net.nuspec. (not clear on how detailed this should be, but at least include which version(s) of rethinkdb DB this release is compatible with).
  • Build, in release configuration.
    • xbuild /p:Configuration=Release rethinkdb-net.sln
  • In root of repository, run NuGet to pack releases:
    • mono ~/bin/NuGet.exe pack rethinkdb-net.nuspec
    • mono ~/bin/NuGet.exe pack rethinkdb-net-newtonsoft.nuspec
  • Commit all the file changes for the new version: git commit -a -m "..."
  • git push
  • git tag -a -m "X.Y.Z.0" vX.Y.Z.0
  • git push --tags
  • git branch -d latest-release
  • git branch latest-release v${NEW_VERSION}
  • git push -f origin latest-release
  • Update release information on GitHub w/ subset of release notes relevant to the tag (https://github.com/mfenniak/rethinkdb-net/releases)
  • Add .nupkg files to GitHub release.
  • Upload .nupkg files to https://nuget.org/packages/upload