-
Notifications
You must be signed in to change notification settings - Fork 50
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
bdfde72
commit 4683ff1
Showing
36 changed files
with
2,268 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
; This file is for unifying the coding style for different editors and IDEs. | ||
; More information at http://EditorConfig.org | ||
|
||
root = true | ||
|
||
[*] | ||
end_of_line = CRLF | ||
|
||
[*.cs] | ||
indent_style = space | ||
indent_size = 4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# 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 | ||
|
||
# Needed for Mono build shell script | ||
*.sh -text eol=lf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,213 @@ | ||
# Akka | ||
|
||
# Fake directories | ||
src/.build/** | ||
|
||
|
||
|
||
#GitExtensions | ||
us.stackdump | ||
|
||
#KDiff3 and other git merge tools | ||
*.orig | ||
|
||
#------------------------------------------------------------------------------- | ||
#Based on https://github.com/github/gitignore/blob/master/VisualStudio.gitignore | ||
|
||
## Ignore Visual Studio temporary files, build results, and | ||
## files generated by popular Visual Studio add-ons. | ||
|
||
# User-specific files | ||
*.suo | ||
*.user | ||
*.sln.docstates | ||
|
||
#MonoDevelop | ||
*.userprefs | ||
|
||
# Build results | ||
[Dd]ebug/ | ||
[Dd]ebugPublic/ | ||
[Rr]elease/ | ||
[Rr]eleases/ | ||
x64/ | ||
x86/ | ||
build/ | ||
bld/ | ||
[Bb]in/ | ||
[Oo]bj/ | ||
|
||
# Roslyn cache directories | ||
*.ide/ | ||
|
||
# MSTest test Results | ||
[Tt]est[Rr]esult*/ | ||
[Bb]uild[Ll]og.* | ||
|
||
#NUNIT | ||
*.VisualState.xml | ||
TestResult.xml | ||
|
||
# Build Results of an ATL Project | ||
[Dd]ebugPS/ | ||
[Rr]eleasePS/ | ||
dlldata.c | ||
|
||
*_i.c | ||
*_p.c | ||
*_i.h | ||
*.ilk | ||
*.meta | ||
*.obj | ||
*.pch | ||
*.pdb | ||
*.pgc | ||
*.pgd | ||
*.rsp | ||
*.sbr | ||
*.tlb | ||
*.tli | ||
*.tlh | ||
*.tmp | ||
*.tmp_proj | ||
*.log | ||
*.vspscc | ||
*.vssscc | ||
.builds | ||
*.pidb | ||
*.svclog | ||
*.scc | ||
|
||
# Chutzpah Test files | ||
_Chutzpah* | ||
|
||
# Visual C++ cache files | ||
ipch/ | ||
*.aps | ||
*.ncb | ||
*.opensdf | ||
*.sdf | ||
*.cachefile | ||
|
||
# Visual Studio profiler | ||
*.psess | ||
*.vsp | ||
*.vspx | ||
|
||
# TFS 2012 Local Workspace | ||
$tf/ | ||
|
||
# Guidance Automation Toolkit | ||
*.gpState | ||
|
||
# ReSharper is a .NET coding add-in | ||
_ReSharper*/ | ||
*.[Rr]e[Ss]harper | ||
*.DotSettings.user | ||
|
||
# JustCode is a .NET coding addin-in | ||
.JustCode | ||
|
||
# TeamCity is a build add-in | ||
_TeamCity* | ||
|
||
# DotCover is a Code Coverage Tool | ||
*.dotCover | ||
|
||
# NCrunch | ||
_NCrunch_* | ||
.*crunch*.local.xml | ||
|
||
# MightyMoose | ||
*.mm.* | ||
AutoTest.Net/ | ||
|
||
# Web workbench (sass) | ||
.sass-cache/ | ||
|
||
# Installshield output folder | ||
[Ee]xpress/ | ||
|
||
# DocProject is a documentation generator add-in | ||
DocProject/buildhelp/ | ||
DocProject/Help/*.HxT | ||
DocProject/Help/*.HxC | ||
DocProject/Help/*.hhc | ||
DocProject/Help/*.hhk | ||
DocProject/Help/*.hhp | ||
DocProject/Help/Html2 | ||
DocProject/Help/html | ||
|
||
# Click-Once directory | ||
publish/ | ||
|
||
# Publish Web Output | ||
*.[Pp]ublish.xml | ||
*.azurePubxml | ||
# TODO: Comment out the next line if you want to keep your passwords hidden | ||
*.pubxml | ||
|
||
# NuGet Packages | ||
*.nupkg | ||
# The packages folder can be ignored because of Package Restore | ||
**/packages/* | ||
# except build/, which is used as an MSBuild target. | ||
!**/packages/build/ | ||
# If using the old MSBuild-Integrated Package Restore, uncomment this: | ||
!**/packages/repositories.config | ||
|
||
# Windows Azure Build Output | ||
csx/ | ||
*.build.csdef | ||
|
||
# Windows Store app package directory | ||
AppPackages/ | ||
|
||
# Others | ||
sql/ | ||
*.Cache | ||
ClientBin/ | ||
[Ss]tyle[Cc]op.* | ||
~$* | ||
*~ | ||
*.dbmdl | ||
*.dbproj.schemaview | ||
*.pfx | ||
*.publishsettings | ||
node_modules/ | ||
|
||
# RIA/Silverlight projects | ||
Generated_Code/ | ||
|
||
# Backup & report files from converting an old project file | ||
# to a newer Visual Studio version. Backup files are not needed, | ||
# because we have git ;-) | ||
_UpgradeReport_Files/ | ||
Backup*/ | ||
UpgradeLog*.XML | ||
UpgradeLog*.htm | ||
|
||
# SQL Server files | ||
*.mdf | ||
*.ldf | ||
|
||
# make exception for Akka.Persistence.SqlServer database file | ||
!AkkaPersistenceSqlServerSpecDb.mdf | ||
!AkkaPersistenceSqlServerSpecDb_log.ldf | ||
|
||
# Business Intelligence projects | ||
*.rdl.data | ||
*.bim.layout | ||
*.bim_*.settings | ||
|
||
# Microsoft Fakes | ||
FakesAssemblies/ | ||
/src/.Akka.boltdata/NCover/Executions/0.jf | ||
/src/.Akka.boltdata/NCover/Executions/ProjectId/0.jf | ||
/src/.Akka.boltdata/NCover/Executions/ProjectOrderIndex/0.jf | ||
/src/.Akka.boltdata/NCover/Projects/0.jf | ||
/src/.Akka.boltdata/NCover/Projects/Name/0.jf | ||
/src/.Akka.boltdata/Settings.json | ||
/src/.Akka.boltdata/TestResults.json | ||
resetdev.bat | ||
/src/packages/repositories.config |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
# Contributing to Akka.NET | ||
Akka.NET is a large project and contributions are more than welcome, so thank you for wanting to contribute to Akka.NET! | ||
|
||
--- | ||
|
||
### Checklist before creating a Pull Request | ||
Submit only relevant commits. We don't mind many commits in a pull request, but they must be relevant as explained below. | ||
|
||
- __Use a feature branch__ The pull request should be created from a feature branch, and not from _dev_. See below for why. | ||
- __No merge-commits__ | ||
If you have commits that looks like this _"Merge branch 'my-branch' into dev"_ or _"Merge branch 'dev' of github .com/akkadotnet/akka.net into dev"_ you're probaly using merge instead of [rebase](https://help.github.com/articles/about-git-rebase) locally. See below on _Handling updates from upstream_. | ||
- __Squash commits__ Often we create temporary commits like _"Started implementing feature x"_ and then _"Did a bit more on feature x"_. Squash these commits together using [interactive rebase](https://help.github.com/articles/about-git-rebase). Also see [Squashing commits with rebase](http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html). | ||
- __Descriptive commit messages__ If a commit's message isn't descriptive, change it using [interactive rebase](https://help.github.com/articles/about-git-rebase). Refer to issues using `#issue`. Example of a bad message ~~"Small cleanup"~~. Example of good message: _"Removed Security.Claims header from FSM, which broke Mono build per #62"_. Don't be afraid to write long messages, if needed. Try to explain _why_ you've done the changes. The Erlang repo has some info on [writing good commit messages](https://github.com/erlang/otp/wiki/Writing-good-commit-messages). | ||
- __No one-commit-to-rule-them-all__ Large commits that changes too many things at the same time are very hard to review. Split large commits into smaller. See this [StackOverflow question](http://stackoverflow.com/questions/6217156/break-a-previous-commit-into-multiple-commits) for information on how to do this. | ||
- __Tests__ Add relevant tests and make sure all existing ones still passes. Tests can be run using the command | ||
- __No Warnings__ Make sure your code do not produce any build warnings. | ||
|
||
After reviewing a Pull request, we might ask you to fix some commits. After you've done that you need to force push to update your branch in your local fork. | ||
|
||
####Title and Description for the Pull Request#### | ||
Give the PR a descriptive title and in the description field describe what you have done in general terms and why. This will help the reviewers greatly, and provide a history for the future. | ||
|
||
Especially if you modify something existing, be very clear! Have you changed any algorithms, or did you just intend to reorder the code? Justify why the changes are needed. | ||
|
||
|
||
--- | ||
|
||
### Getting started | ||
Make sure you have a [GitHub](https://github.com/) account. | ||
|
||
- Fork, clone, add upstream to the Akka.NET repository. See [Fork a repo](https://help.github.com/articles/fork-a-repo) for more detailed instructions or follow the instructions below. | ||
|
||
- Fork by clicking _Fork_ on https://github.com/akkadotnet/akka.net | ||
- Clone your fork locally. | ||
``` | ||
git clone https://github.com/YOUR-USERNAME/akka.net | ||
``` | ||
- Add an upstream remote. | ||
``` | ||
git remote add upstream https://github.com/akkadotnet/akka.net | ||
``` | ||
You now have two remotes: _upstream_ points to https://github.com/akkadotnet/akka.net, and _origin_ points to your fork on GitHub. | ||
|
||
- Make changes. See below. | ||
|
||
Unsure where to start? Issues marked with [_up for grabs_](https://github.com/akkadotnet/akka.net/labels/up%20for%20grabs) are things we want help with. | ||
|
||
See also: [Contributing to Open Source on GitHub](https://guides.github.com/activities/contributing-to-open-source/) | ||
|
||
New to Git? See https://help.github.com/articles/what-are-other-good-resources-for-learning-git-and-github | ||
|
||
### Making changes | ||
__Never__ work directly on _dev_ or _master_ and you should never send a pull request from master - always from a feature branch created by you. | ||
|
||
- Pick an [issue](https://github.com/akkadotnet/akka.net/issues). If no issue exists (search first) create one. | ||
- Get any changes from _upstream_. | ||
``` | ||
git checkout dev | ||
git fetch upstream | ||
git merge --ff-only upstream/dev | ||
git push origin dev #(optional) this makes sure dev in your own fork on GitHub is up to date | ||
``` | ||
|
||
See https://help.github.com/articles/fetching-a-remote for more info | ||
|
||
- Create a new feature branch. It's important that you do your work on your own branch and that it's created off of _dev_. Tip: Give it a descriptive name and include the issue number, e.g. `implement-testkits-eventfilter-323` or `295-implement-tailchopping-router`, so that others can see what is being worked on. | ||
``` | ||
git checkout -b my-new-branch-123 | ||
``` | ||
- Work on your feature. Commit. | ||
- Rebase often, see below. | ||
- Make sure you adhere to _Checklist before creating a Pull Request_ described above. | ||
- Push the branch to your fork on GitHub | ||
``` | ||
git push origin my-new-branch-123 | ||
``` | ||
- Send a Pull Request, see https://help.github.com/articles/using-pull-requests to the _dev_ branch. | ||
|
||
See also: [Understanding the GitHub Flow](https://guides.github.com/introduction/flow/) (we're using `dev` as our master branch) | ||
|
||
### Handling updates from upstream | ||
|
||
While you're working away in your branch it's quite possible that your upstream _dev_ may be updated. If this happens you should: | ||
|
||
- [Stash](http://git-scm.com/book/en/Git-Tools-Stashing) any un-committed changes you need to | ||
``` | ||
git stash | ||
``` | ||
- Update your local _dev_ by fetching from _upstream_ | ||
``` | ||
git checkout dev | ||
git fetch upstream | ||
git merge --ff-only upstream/dev | ||
``` | ||
- Rebase your feature branch on _dev_. See [Git Branching - Rebasing](http://git-scm.com/book/en/Git-Branching-Rebasing) for more info on rebasing | ||
``` | ||
git checkout my-new-branch-123 | ||
git rebase dev | ||
git push origin dev #(optional) this makes sure dev in your own fork on GitHub is up to date | ||
``` | ||
This ensures that your history is "clean" i.e. you have one branch off from _dev_ followed by your changes in a straight line. Failing to do this ends up with several "messy" merges in your history, which we don't want. This is the reason why you should always work in a branch and you should never be working in, or sending pull requests from _dev_. | ||
|
||
If you're working on a long running feature then you may want to do this quite often, rather than run the risk of potential merge issues further down the line. | ||
|
||
### Making changes to a Pull request | ||
If you realize you've missed something after submitting a Pull request, just commit to your local branch and push the branch just like you did the first time. This commit will automatically be included in the Pull request. | ||
If we ask you to change already published commits using interactive rebase (like squashing or splitting commits or rewriting commit messages) you need to force push using `-f`: | ||
``` | ||
git push -f origin my-new-branch-123 | ||
``` | ||
|
||
### All my commits are on dev. How do I get them to a new branch? ### | ||
If all commits are on _dev_ you need to move them to a new feature branch. | ||
|
||
You can rebase your local _dev_ on _upstream/dev_ (to remove any merge commits), rename it, and recreate _dev_ | ||
``` | ||
git checkout dev | ||
git rebase upstream/dev | ||
git branch -m my-new-branch-123 | ||
git branch dev upstream/dev | ||
``` | ||
Or you can create a new branch off of _dev_ and then cherry pick the commits | ||
``` | ||
git checkout -b my-new-branch-123 upstream/dev | ||
git cherry-pick rev #rev is the revisions you want to pick | ||
git cherry-pick rev #repeat until you have picked all commits | ||
git branch -m dev old-dev #rename dev | ||
git branch dev upstream/dev #create a new dev | ||
``` | ||
|
||
## Code guidelines | ||
|
||
See [Contributor Guidelines](http://akkadotnet.github.io/wiki/Contributor%20guidelines) on the wiki. | ||
|
||
--- | ||
Props to [NancyFX](https://github.com/NancyFx/Nancy) from which we've "borrowed" some of this text. |
Oops, something went wrong.