emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/haskell-tng-mode 44dc467 248/385: notes on motivation, co


From: ELPA Syncer
Subject: [nongnu] elpa/haskell-tng-mode 44dc467 248/385: notes on motivation, contributing and collaboration
Date: Tue, 5 Oct 2021 23:59:40 -0400 (EDT)

branch: elpa/haskell-tng-mode
commit 44dc467e07859a4ab151891f3047a3ceaf4620ad
Author: Tseen She <ts33n.sh3@gmail.com>
Commit: Tseen She <ts33n.sh3@gmail.com>

    notes on motivation, contributing and collaboration
---
 README.md | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/README.md b/README.md
index 026f8e1..438bb4d 100644
--- a/README.md
+++ b/README.md
@@ -1,30 +1,34 @@
 # Haskell Mode: The Next Generation
 
-This is an exploratory alternative to 
[`haskell-mode`](https://github.com/haskell/haskell-mode/) that answers the 
question *how would we support Haskell in GNU Emacs if we started today?*
+This is an exploratory alternative to 
[`haskell-mode`](https://github.com/haskell/haskell-mode/) that answers the 
question *how would I support Haskell in GNU Emacs if I started today?*
 
 ## Why?
 
+`haskell-mode` has been such an important tool for me that I feel the need to 
explain why I am rewriting it. I have the greatest of respect for its 
contributors and I have used it for many years.
+
 In [Lessons from 6 Software 
Rewrites](https://medium.com/@herbcaudill/lessons-from-6-software-rewrite-stories-635e4c8f7c22),
 the author concludes *avoid rewrites and make incremental improvements 
instead, unless you want to a) remove functionality or b) take a different 
approach*.
 
 ### Remove Functionality
 
-`haskell-mode` is almost 30 years old and has accumulated more than 25,000 
lines of code aimed at a wide variety of users from academics to industrial 
software engineers. We choose to focus on the requirements of the industrial 
engineer, removing features that are deeply embedded in the design of the 
original codebase.
+`haskell-mode` is almost 30 years old and has accumulated more than 25,000 
lines of code aimed at a wide variety of users from academics to industrial 
software engineers. I choose to focus on the requirements of the industrial 
engineer, removing features that are deeply embedded in the design of the 
original codebase.
 
 ### Different Approach
 
 During those past 30 years, the GNU Emacs ecosystem has evolved to provide 
many features that `haskell-mode` independently implemented, such as 
[`projectile`](https://github.com/bbatsov/projectile), 
[`comint`](https://masteringemacs.org/article/comint-writing-command-interpreter),
 [`highlight-symbol`](https://melpa.org/##/highlight-symbol), 
[`pretty-symbols`](https://github.com/drothlis/pretty-symbols), 
[`company`](http://company-mode.github.io), 
[`yasnippet`](http://joaotavora.github.io [...]
 
-We choose to use idiomatic libraries to provide features, rather than building 
ground-up solutions.
+I choose to use idiomatic libraries to provide features, rather than building 
ground-up solutions. Many shared libraries exist to generalise solutions that 
were first proposed in `haskell-mode`!
 
 ## Goal
 
-The goal of this friendly rewrite is to produce software that any Haskell 
developer can use, understand and build upon ([Emacs 
Lisp](https://www.gnu.org/software/emacs/manual/elisp.html) is fun to learn).
+I want a Haskell editing experience that lets me efficiently write commercial 
Haskell, and offers me as much automation as I am happy with.
+
+I believe in helping my neighbours, so this codebase is available publicly and 
I have included installation instructions. But I do not want the burden of 
users.
 
-This can be achieved in a small codebase with zero dependencies and high test 
coverage, targeting 
[Haskell2010](https://www.haskell.org/onlinereport/haskell2010/).
+The goals can be achieved in a small codebase with zero dependencies and high 
test coverage, targeting 
[Haskell2010](https://www.haskell.org/onlinereport/haskell2010/).
 
-Old versions of `ghc` and extensions to the Haskell language may not be 
supported, to reduce the complexity of the codebase. For example, [literate 
Haskell](https://wiki.haskell.org/Literate_programming) will not be supported, 
and `ghc` language extensions must be justified on a per-case basis. We are 
sympathetic to language extensions that are popular in the free software and 
commercial ecosystems.
+Old versions of `ghc` and extensions to the Haskell language may not be 
supported, to reduce the complexity of the codebase. For example, [literate 
Haskell](https://wiki.haskell.org/Literate_programming) will not be supported, 
and `ghc` language extensions must be justified on a per-case basis. I am 
sympathetic to language extensions that are popular in the free software and 
commercial ecosystems.
 
-If it is possible to implement a feature using another minor mode, or command 
line tool, then we would prefer not to accept the feature.
+If it is possible to implement a feature using another minor mode, or command 
line tool, then I would prefer not to add the feature.
 
 ## Install
 
@@ -99,9 +103,9 @@ Third party Haskell tools must be installed separately (e.g. 
via `cabal v2-insta
 
 ## Contributing
 
-Bug reports and feature requests are a source of anxiety for maintainers, and 
encourage an unhealthy customer / supplier relationship between users and 
contributors.
+Bug reports and feature requests are a source of anxiety for me, and encourage 
an unhealthy customer / supplier relationship between users and contributors.
 
-Instead, and following the [anarchical spirit of 
Haskell](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/history.pdf),
 we encourage discussions and debate around code contributions. Merge requests 
can be raised by anybody and discussed by anybody, and do not need to be 
complete. An automated test is the only way to report a bug. If the maintainers 
are convinced by the technical merit and quality of a proposal, they may accept 
it.
+If you wish to contribute, the best thing to do is to let me know about your 
copy of this repository and we can take it from there. We may both chose to 
collaborate in one place.
 
 To run the tests, install 
[`cask`](https://cask.readthedocs.io/en/latest/guide/installation.html) and type
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]