If you release the code in an incomplete state or not, it is always worth having sufficient documentation so that users can understand how to use the library ... even if it is only an API docs. Make sure that something incomplete is marked as TO DO - this helps to save the target task list for completion and allows users to find out that the function / method / is all that has not been forgotten.
Providing a set of styles / standard code documents (possibly with architectural notes on class relationships) allows other developers to contribute more easily and in a way that improves the library, rather than turning it into spaghetti hotch-potch code. This never facilitates the release of the library, and then refactoring, while maintaining backward compatibility for users who are already busy, and use this library in production settings.
EDIT
Do not be afraid of criticism ... it comes with territory. Some critics may be constructive (note this). There will be many other people who criticize your code (for whatever reason) without being constructive or simply deny your work. The difference is that you produced the product, they probably never contributed to any OS product / library.
Users expect you to fix your problems right away, or write your code so they can use your library, or simply say that โthis does not work,โ without any explanation of what they mean. You must learn to live with this 24x7x365.
But from time to time, someone thanks you for saving hours of work for them, or for bringing something useful ... and suddenly all the stress and hassle feels worthy.
source share