Releasing a NewGRF
So you've made yourself a NewGRF and want to release it to the public. How do you go about doing that?
Write a ReadMe
While most people will never read your readme, it's still useful to write one. If only to let people know who made the NewGRF, how they can be contacted, and if they're allowed to use bits of it for something else (i.e. a license, more on that later). Generally a readme also includes some information on what the NewGRF does and how it must be used.
It's useful to write your readme in plain text format. That way it can be opened in OpenTTD's ingame viewer, for easy access. There's a readme template available that you can use as the basis for your own readme.
Choose a license
If you don't choose a license, in most countries your work will be automatically protected by copyright law. This means that nobody may use parts of your work for something else without prior permission. By applying a license to your work, you can grant certain permissions so that people don't have to ask every time. That way others can use bits of your work in their own to for instance improve compatibility between both.
planetmaker's written an interesting article on the subject of licensing. It's a recommended read if you're not sure what license to apply to your work.
Bundle your work
Once you have a NewGRF, a ReadMe and a License, you want to bundle those. It's useful to combine all three in a TAR file. OpenTTD can read TAR files without the need for extracting them. That way NewGRF, ReadMe and License will always stay together. Also BaNaNaS accepts TAR files. TTDPatch users can easily extract them, as the TAR format is widely supported by file compression tools. Note that the TAR format doesn't use compression, so if you want to reduce filesize you can furthermore zip the TAR file.
Uploading the bundle
If you've chosen a license that requires the source files to be available, you can also make a source bundle. This then includes the "preferred files to make edits to the work" and satisfies your duty to provide them. If you use