Skip to content

Commit

Permalink
Added CONTRIBUTING doc; added 'Getting involved' to README
Browse files Browse the repository at this point in the history
  • Loading branch information
carymrobbins committed Nov 20, 2015
1 parent 05cac21 commit ba9abb5
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 12 deletions.
72 changes: 72 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# Contributing to HaskForce

## Filing an issue

Thanks for reporting an issue with HaskForce. Depending on your issue, it may be a good
idea to provide your OS flavor and versions of IntelliJ and any Haskell tools which
may be involved (e.g. if you are having autocompletion issues, providing your ghc-mod
version is usually necessary).

Unfortunately, HaskForce lacks full-time developers dedicated to resolving bugs and
implementing new features. If a bug is holding you back or you'd really like a new feature,
opening an issue is a great start, but contributing the code yourself will get it done
significantly faster. If you don't know where to start, simply ask in your issue,
and someone should respond promptly with some guidance.

## Submitting pull requests

### Bug fix or new feature

You've done the hard work of making HaskForce better. Thank you!

Pull requests should be reviewed and merged within a month. To help
make the reviewer's life easier and get your awesome addition merged sooner,
please follow these guidelines -

1. Send patches via GitHub pull requests.
1. Each pull request should achieve a specific goal and have a descriptive title.
Don't put multiple unrelated changes in a single pull request.
(An exception can be made for multiple very simple self-contained commits,
or for changes with a hard dependency on each other.)
1. Typically, a pull request should consist of just a few commits.
Rewrite the history (see `git rebase`) to make commits logical, not historical.
1. Write descriptive commit messages.
1. If you want to amend a pull request, rewrite your branch and leave a comment as opposed
to adding commits to the branch or opening a new pull request.
1. Make sure the tests pass. You can track them via
[travis](https://travis-ci.org/carymrobbins/intellij-haskforce).
1. Unless the change is trivial, it should be accompanied by the tests that
show the effects of the change.

New tests should be added in a commit separate
from the code changes. On the other hand, if your change breaks some tests,
the tests should be preferably updated in the same commit.

### Refactoring or architectural changes

Please contact [Cary Robbins](https://github.com/carymrobbins) to discuss before
you start refactoring to possibly save some time and effort. There are plenty of
potential gotchas involved here.

## Other ways to contribute

### Review pull requests

You can help by reviewing pull requests submitted by others.
If you've found any issues, raise them in the comments.
If you've done a review and think that everything is fine, please say so, too - it does help!

### Fix tests

Some tests simply document the existing (but wrong) behavior.

Make sure that there is an existing issue in the tracker about such a wrong behavior.
Link to the issue in the test.

------------------

Special thanks to [haskell-src-exts](https://github.com/haskell-suite/haskell-src-exts)
as the source of this document's
[plagiarism](https://github.com/haskell-suite/haskell-src-exts/blob/master/CONTRIBUTING.md).


33 changes: 21 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,20 @@
# HaskForce [![Build Status](https://travis-ci.org/carymrobbins/intellij-haskforce.svg?branch=master)](https://travis-ci.org/carymrobbins/intellij-haskforce)

The IntelliJ plugin for Haskell.
--------
## The IntelliJ plugin for Haskell.

Want to get started right away? Check out the [Quick Start Guide](https://github.com/carymrobbins/intellij-haskforce/wiki/Quick-Start-Guide)!

Prerequisites for building
--------
## Getting involved

Want to contribute code? See the [CONTRIBUTING](./CONTRIBUTING.md) doc for more info.

Follow [@HaskForce](https://twitter.com/haskforce) on Twitter to stay up to date
on new releases and work in progress.

Do you IRC? Join **#haskforce** on freenode!

## Prerequisites for building

You will need Scala 2.11.7 on your system. You can use the IvyIDEA plugin to resolve all dependencies,
including Scala (see **Building with IntelliJ** below).

Expand All @@ -15,8 +23,8 @@ Ignoring forewarning, you can download it directly via IntelliJ by going to -
* **File > Project Structure > Global Libraries > + > Scala SDK > Download > 2.11.7**
Be sure that the SDK is named `scala-sdk-2.11.7` to properly match the module configurations.

Building with IntelliJ
--------
## Building with IntelliJ

**Note:** We currently target JDK 6 for building the plugin.

1. Copy the `build.skeleton.properties` to `build.properties` and update the paths to the JDK and IntelliJ installation.
Expand All @@ -36,8 +44,8 @@ Building with IntelliJ
* Alternatively, if you have the `ant` command line tool you can run `ant generate.sources` from the project root.
1. Choose **Build > Prepare Plugin Module 'intellij-haskforce' for Deployment**.

Adding IntelliJ Sources (Optional)
--------
## Adding IntelliJ Sources (Optional)

1. Check out the Community Edition source files.
* `$ git clone https://github.com/JetBrains/intellij-community.git idea`
* Check the build version of your IntelliJ installation. There are two ways to do this.
Expand All @@ -51,14 +59,13 @@ Adding IntelliJ Sources (Optional)
2. Under **File > Project Structure > SDKs** find your **IntelliJ Platform Plugin SDK**.
3. Under the **Sourcepath** tab, add the directory where you cloned the IntelliJ sources.

Running the plugin
--------
## Running the plugin

1. From the menu go to **Run > Edit Configurations**
1. Click on the `+` sign and choose **Plugin**, name the configuration something evocative like **Haskforce**, click **OK**, then run your new configuration.
1. Intellij will open a copy of itself, with default settings, and the plugin installed.

Testing the plugin
--------
## Testing the plugin

To run the tests, you'll need to create a run configuration:

Expand All @@ -71,3 +78,5 @@ To add more tests:

* Edit Haskell\*Test.java files to add more tests of the same kind that already exists.
* Edit HaskellTestCase.java if you need to add tests of a different kind.


0 comments on commit ba9abb5

Please sign in to comment.