-
Notifications
You must be signed in to change notification settings - Fork 14
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
Showing
3 changed files
with
96 additions
and
42 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 |
---|---|---|
@@ -1,46 +1,101 @@ | ||
## Contributions ## | ||
|
||
There's a lot of work that can be done. | ||
If you want to contribute, you are more than welcome to do so. | ||
|
||
From most important to least important: | ||
Here are a list of some of the things that would be really nice to see | ||
contributions for, though you may also contribute in other ways. | ||
|
||
### Message Extensions ### | ||
|
||
There's a lot of numerics and commands. Please add extensions, even partially complete | ||
extensions, for any numerics you deal with. | ||
There's a lot of numerics and commands. Please add extensions, even partially | ||
complete extensions, for any numerics you want to deal with. Pull requests for | ||
these can even be taken without an accompanying test, though those with | ||
tests are even better. | ||
|
||
### IrcOutputSocket Commands ### | ||
|
||
Tennu is missing most of the commands from IRC. If you want to add them, please | ||
Tennu is missing many commands from IRC. If you want to add them, please | ||
do so. Just make sure to also add the method wrapper to the client class. | ||
|
||
### Tests ### | ||
Another feature that is missing is the returning of a Promise when doing | ||
things. For instance, Client.join(chan) should return a Promise that | ||
succeeds when the channel is joined with the topic, names list, and | ||
channel name in the success object with an error case with the numeric | ||
that gives the reason for failure. | ||
|
||
Either help port tests to Mocha, or add new tests. | ||
### Tests ### | ||
|
||
(If you do port tests to Mocha, add Mocha to the devDependencies and place them in /test) | ||
Not everything is tested. If you add a feature, or change something, please | ||
attach to your pull request some tests that show your code is working. Or | ||
if you find a bug, a test case that shows the bug in action would be great. | ||
|
||
### Built In Modules ### | ||
|
||
Please feel free to write the Server, User, and/or Channel modules. | ||
Please feel free to write and extend the Server, User, and/or Channel modules. | ||
|
||
They should really be the meat of the "IRC" framework, but like most | ||
parts of this framework that are IRC specific, they have been neglected. :( | ||
|
||
## Building ## | ||
|
||
Tennu is compiled from Sweet.js to ECMAScript. Sweet.js is a superset of | ||
ECMAScript 5 that adds macros. If you don't want to use macros, just write | ||
vanilla JavaScript. | ||
|
||
All the source files are located under `/src`. | ||
|
||
Just write `npm run build` and the project will be built, usually within | ||
five seconds. | ||
|
||
Note that `npm test` will first rebuild the project before running the | ||
tests, so if you are testing, there's no need to run build. | ||
|
||
## On Versioning ## | ||
|
||
Tennu follows SemVer like all npm packages should. | ||
|
||
While the version is greater than 1.0.0, I, Havvy, don't actually consider | ||
this feature complete, but I'm not working on it as much, and it is stable. | ||
|
||
The version number shouldn't really matter that much. Documentation, other | ||
than the changelog, will always focus on the latest version. Should a | ||
major rewrite of Tennu happen, it'll most probably be in another language | ||
(such as Elixir). | ||
|
||
Thus, when making a backards incompatible change, if it's possible to | ||
deprecate, deprecate the functionality instead, and then it can be removed | ||
two major releases later. If it's not possible to deprecate, the change | ||
may be put on hold. | ||
|
||
That said, do *not* change the version number yourself. Just give a | ||
heads up as to what you are doing so the version can be changed properly. | ||
|
||
## Format & Style ## | ||
|
||
Indent with four spaces. Not two spaces. Not tabs. | ||
|
||
### 1.0.0 Release Checklist ### | ||
Define functions (both expressions and statements) like this: | ||
|
||
Getting closer to 1.0.0 would be nice. | ||
```javascript | ||
function fnName (arg, list) { | ||
// body | ||
} | ||
``` | ||
|
||
### ChunkedIrcMessageHandler ### | ||
Spaces go before and afer binary operators. For example: `2 + 2`, `(4 + 3) * 2` | ||
|
||
Listens to the IrcMessageHandler, it chunks together list-like replies such | ||
as whois and isupport numerics. For messages that aren't chunked, just pass | ||
them through normally. | ||
Do not use `++` and `--` operators. Use `+= 1` and `-= 1` instead. If | ||
this means adding another statement, so be it. | ||
|
||
Not a goal for 1.0.0 though. | ||
Tennu is built using Sweet.js, so we have access to macros. Where appropriate, | ||
you may add your own inline macros at the top of a file. You may also use | ||
macro packages for ES6 syntactic sugar, just one hasn't been added yet. | ||
Likewise, you can add in a macro package to remove parenthesis around block | ||
predicates. That just hasn't been added yet. | ||
|
||
## Format ## | ||
## Documentation ## | ||
|
||
* Four space indents | ||
* Favor factories over constuctors. Where you do use a constructor, make | ||
sure it works without being called in a `new` context. | ||
* `function fnName (arg, list) {` | ||
* Spaces around binary operators. Ex: `2 + 2`, `(4 + 3) * 2`. | ||
* No harmony features. | ||
[https://tennu.github.io](Tennu's documentation) should be updated as | ||
necessary. Send a PR to the documentation repo, and it'll be accepted | ||
without question most of the time. There's also no real need to be clean | ||
about your commits to the documentation repo. |
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
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