Let me start with an example: I wanted to build a graphical bitmap of a font with the basic ASCII characters for some retro testing development. Still learning Nim so these projects are easy and fun to work on.
I wanted to use a specific mono spaced font, so I downloaded a TTF and wanted to render it on a bitmap. In C++, I used stb_truetype, so I went on and did $ nimble install stb_truetype Run expecting it to give me recognizable functionality. But all the functions I wanted to use, are not yet implemented. The developer says so himself: <https://github.com/guzba/stb_truetype> -> These bindings are not complete. Contributions are welcome! Luckily, I saw that there is a fork. This fork has the functionality I want to use, but that developer gives the same message. But this library is not on the official nimble list, so can I trust it? (in this case, I am quite certain that I can, but that's not the point) I got it to work with this library, but it has some weird quirks. For example: the getCodepointBitmapBox proc returns a cstring, while the original C code of that function does not return anything. If I inspect this string, it is always empty on my set of calls. I don't know why it returns the cstring and what it should contain in what case. No problem, I just add discard before the call and ignore it. Why was this code base forked anyway? Why were these added functionalities not contributed to the official package? But... more and more, this feels like something dirty: I have to use an unofficial nimble package, which is incomplete and has quirky code. I could go and write my own implementation (I need to learn this first, but definitely want to - more and more), but this should not be the way, right? I assume what I am describing is happening to lots of packages, official or not. So how do you guys handle this?