CONTRIBUTING GUIDELINES FOR TTBP
Hi! Thanks for your interest in working on this project with me!
Please understand that this may not be a beginner-friendly project to contribute to; this is because I am not a very experienced developer, and I'm still learning good practices for facilitating collaborative dev work. I'm open to receiving feedback and discussion even if you're new to writing Python, programming, or collaborative work in general, but I'd appreciate some extra patience and open communication.
In general, please try to give me a heads up if you're intending to work on this codebase before either starting on it or submitting a PR. I'm fairly self-conscious about my code, so I want the best opportunity for respectful engagement, which lets me learn from my mistakes while still providing good software for end users.
If you do not have the skills to contribute to the coding end, I still welcome your feedback about your experience using ttbp; please feel free to contact me with anything from vague appreciation to gripes about the interface! I'm interested in understanding how you feel about this program, and any information you give me will help me build a smoother tool for everyone! The "feedback wanted" tag is a great place to start.
You can send me tildemail at ~endorphant on tilde.town, or catch me in IRC (please send me a PM there, since I don't often monitor the main channel). I might not respond for a few days; this is normal! If you're feeling ignored, please feel free to open an issue in this repo, since that will ping my personal email directly, and we can catch up then.
If you find a bug (such as: ttbp crashed while you were running it, an unexpected behavior happened, some parts of the interface don't line up correctly, etc.), please feel free to file an issue with this repo. You can also send me tildemail. Be as descriptive as possible! Describe the last few things that happened, if you remember them, and attach some representation of the bug (copy and paste the terminal output, or take a screenshot).
If you can fix a bug that you found, please document the bug first by opening an issue, and check in with me before you start working on it. If there's a serious use-breaking bug in the current live code, and I'm unreachable for more than a few days, go ahead and fix it and send a PR, and I'll get to it when I can.
Features that I intend to implement are often documented under "upcoming features" in the issue tracker. Feel free to weigh in on any features listed there!
If there's a feature you'd like to see, but it isn't listed as upcoming, please check the list of issues and see if it's been discussed before (including in closed issues). You're welcome to open a new issue if it seems like there isn't any history about your idea, and you can also send me tildemail to ask me about it.
Please do not start coding new features without discussing your ideas with me first. I have some fairly strong ideas about how ttbp should work, and I don't want anyone to waste their time building new features that don't align with my vision for this project. That said, I'm definitely interested in hearing your ideas, and I'll do my best to communicate my philosophy regardless of if I greenlight your feature or not.
Please do not open PRs for cosmetic changes to the codebase if we haven't had a prior discussion about it. Cosmetic changes include things like whitespace, commenting/documentation, naming conventions, and other aspects of the codebase that would not affect end users if changed. I am cautiously open to receiving respectful feedback about my general coding style, but I'm not generally interested in unsolicited style critiques, or for coding conventions dictated to me. Thank you in advance for your understanding!