A future version of Go will have fsnotify in the standard library, therefore fsnotify carries the same LICENSE as Go. Contributors retain their copyright, so we need you to fill out a short form before we can accept your contribution: Google Individual Contributor License Agreement.
Please indicate that you have signed the CLA in your pull request.
To hack on fsnotify:
go get -u github.com/go-fsnotify/fsnotify
)git checkout -b my-new-feature
)git commit -am 'Add some feature'
)Contribute upstream:
git remote add fork git@github.com:mycompany/repo.git
)git push fork my-new-feature
)If other team members need your patch before I merge it:
go get -u github.com/go-fsnotify/fsnotify
)git remote add fork git@github.com:mycompany/repo.git
)git fetch fork; git checkout -b my-new-feature fork/my-new-feature
)Notice: For smooth sailing, always use the original import path. Installing with go get
makes this easy.
Note: The maintainers will update the CHANGELOG on your behalf. Please don't modify it in your pull request.
fsnotify uses build tags to compile different code on Linux, BSD, OS X, and Windows.
Before doing a pull request, please do your best to test your changes on multiple platforms, and list which platforms you were able/unable to test on.
To make cross-platform testing easier, I've created a Vagrantfile for Linux and BSD.
src
folder.vagrant up
from the project folder. You can also setup just one box with vagrant up linux
or vagrant up bsd
(note: the BSD box doesn't support Windows hosts at this time, and NFS may prompt for your host OS password)vagrant ssh linux -c 'cd go-fsnotify/fsnotify; go test'
.Notice: fsnotify file system events don't work on shared folders. The tests get around this limitation by using a tmp directory, but it is something to be aware of.
Right now I don't have an equivalent solution for Windows and OS X, but there are Windows VMs freely available from Microsoft.