Creating and Maintaining an Open Source Library

You've got some awesome code that you've written, which you want to share with the community. Sure, you could simply post it on GitHub and be done with it, but is that the best way to share your work? What are the additional steps needed to share your code in a way that it will actually get used by the larger world? I'll discuss options for hosting , licensing, versioning, packaging, documenting, building, testing and even contributing to your code. All the things that will make someone else say - I want to use this!
Beginner : open source