This repository has been archived by the owner on Feb 3, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 13
Contributing
Ed Ropple edited this page May 22, 2018
·
1 revision
So you'd like to contribute to TaskBotJS? Awesome!
-
Bugs aren't support requests. "I'm not sure how to do X" does not then
imply "X is broken." Please prepend any issue based around support requests
with the string
SUPPORT:
so I can prioritize them appropriately. - Working code speaks volumes! If you've got an example that illustrates a bug or a problem in TaskBotJS, an example is worth multiple paragraphs.
- Don't pressure. I'm sure that your bug is important to you, and building solid software is important to me. But attempting to hurry along the process of bug fixing by describing how urgent it is to your company is unhelpful and just creates noise.
If your issue is sufficiently urgent, I offer commercial support for urgency and business-critical cases, which (in addition to a bunch of features) offers e-mail support with 95% turnaround within 24 hours and priority consideration for issues and fixes.
- I'll need a CLA signed before I look at your code. TaskBotJS Pro is an income stream for me, and while TaskBotJS proper is LGPL and will remain so, I do have to ask for a license to use your code commercially. If that's a deal-breaker, I totally understand, and would be happy to instead accept bug reports.
- I'll never ask somebody to write code for TaskBotJS Pro/Enterprise. That'd be really weird, wouldn't it? For the open-source version, pull requests win: if I don't think much of a given feature I may still gratefully accept a pull request. For TaskBotJS Pro and Enterprise, these things are feature requests. ;-) I suppose that, if you're really into a feature, I'd consider it for inclusion into TaskBotJS so that you don't have to maintain a fork, but the bar will probably be a little higher.
-
New code needs tests. We've got
ts-jest
; we should be using it. A lot of TaskBotJS's base code is pulled from other, existing projects, and so while I've tried to write composable and very testable code our coverage is below where I want it to be (and below where it will be). New code must be exerciseable via tests if at all reasonable. If you're new to unit and integration testing, that's totally fine--I'm happy to help contributors who come with a PR in hand figure out the best way to test their code! - Avoid stateful globals. The global namespace should support multiple fully-independent instantiations of the TaskBotJS service within a single process space. We don't recommend doing this, but designing with that in mind often leads to better code with cleaner separation of concerns.
- Try to adopt an informal, but precise style of writing; consider the rest of the documentation as examples.
- Eighty characters is preferable. If your editor doesn't support hard wrapping,
consider something like Visual Studio Code and its
Rewrap
extension. - We use Oxford commas.