Skip to content
This repository was archived by the owner on Oct 5, 2022. It is now read-only.

Add more detail to setup instructions #140

Merged
merged 2 commits into from
Feb 25, 2016

Conversation

Gabriella439
Copy link
Contributor

The main changes I made were to:

  1. Add a note to the top of the README to highlight that the plugin requires additional dependencies

As somebody new to Atom this bit me because I had no idea why this plugin didn't do anything when I installed it. New users (like me) don't necessarily understand that they need to have the language-haskell plugin installed in order for file detection to work. The requirements section was buried pretty deep in the README so this note just points out to the user as visibly as possible that additional action is required before using the plugin
2. Provide detailed instructions on how to install all executable and make sure that Atom can locate them

Many Haskell newcomers need a lot of hand-holding here since they may not be that familiar with how executable search paths or the Haskell toolchain works, especially if they are Windows where that sort of thing is a huge mess.
3. Provide stack-based installation instructions for executable

This improves the chance that users don't run into build failures when trying to compile executables

@lierdakil
Copy link
Contributor

Thanks for this. But I feel it's a little bit awkward to recommend using stack when ide-hasekll doesn't yet support it...

@Gabriella439
Copy link
Contributor Author

cabal was actually the first thing I tried! When writing this up I tried to build these tools using cabal and failed, but stack worked, so I switched to recommending stack for the installation process.

If you want, I can add a note explaining that stack is only used for installing the executables for now and that later the plugin will support also building projects using stack, too (and I'd be happy to contribute stack support to ide-haskell myself).

@lierdakil
Copy link
Contributor

It would certainly be nice if someone contributed stack support, since I have my hands full as it is...

So, as I see it, here are some problems with cabal:

  1. It's easy to break, but hard to fix. Using sandboxes mitigates this, but only to a point.
  2. Installation can fail, even if nothing's broken on user's system, due to Hackage dependency hell.
  3. Updating can be challenging to say the least. Again, using sandboxes mitigates that, but only to a point.

Some problems with stack:

  1. It's not included in Haskell platform, and is not always easy to install.
  2. Stack can switch GHC versions seamlessly. While good for some scenarios, it can suddenly break ghc-mod.
  3. Some resolvers might not have certain packages, or only have an old version. Configuring Stack to install packages that are not in current resolver can be challenging, and resolver does depend on GHC version.
  4. Ghc-mod support for stack is in its infancy. So when working on stack projects, things might break with no apparent reason.

So both options have their pros and cons, relatively speaking. Maybe it would be a good idea to describe both?

@Gabriella439
Copy link
Contributor Author

Alright, I expanded the description to explain that right now stack is only being used to build the executable but that ide-haskell is still primarily cabal-based

lierdakil added a commit that referenced this pull request Feb 25, 2016
Add more detail to setup instructions
@lierdakil lierdakil merged commit 380caa0 into atom-haskell:master Feb 25, 2016
@lierdakil
Copy link
Contributor

Okay, that's fine. I'll try to add more detailed cabal instructions somewhere down the line.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants