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.
In case you used the #openttdcoop DevZone you can tag a revision in your repository as a release. The DevZone will then automatically build a release bundle which you can retrieve from . It's recommended to use this bundle for the next step instead of your own build, to make sure all downloads are the same.
Uploading the bundle
To make your NewGRF easily accessible to everyone, you certainly would want to upload it to OpenTTD's Online Content service. For this you go to  and click the Manager tab. You're asked to login with your OpenTTD account (which is the same as for the OpenTTD bug tracker and the OpenTTD wiki) or create one if you don't have one. Note that this is different from your TT-Forums (or TT-Wiki) account. Please read the Terms of Service carefully, which also state what files to upload exactly. From the Manager tab choose to Upload New and complete the fields.
In addition to the Online Content service you may also want to host your NewGRF bundle elsewhere. This will both serve as a backup and aid TTDPatch users as it's a bit weird for them to get their grfs from the OpenTTD service. The TT-Forums are suitable for hosting your NewGRF in an attachment. If you used an online collaboration platform like the #openttdcoop DevZone you can use that as additional hosting for your NewGRF.
Letting the world know
Certainly you will want to make a post in the TT-Forums Graphics Releases forum. Write a few words about your NewGRF, add a screenshot and provide a pointer to the download location. You can very well use this post to host your NewGRF in an attachment.
Additinally, advertise your NewGRF on GRFCrawler. You're logged in there automatically if you're logged in to TT-Forums.
Providing the source
This step is only required if you've chosen a license that requires you to provide the source, like the GPL. In case of the #openttdcoop DevZone or similar, your source repository will qualify as "providing the source". In other cases you have to make a source bundle. This then includes the "preferred files to make edits to the work". Upload the source bundle somewhere. Maybe use the TT-Forums topic for it if your source isn't too big, otherwise find reliable hosting elsewhere. Of course you can also hide behind the "three year written offer", but this will only provoke people requesting the source even if they don't need it, resulting you into having to make the source bundle and upload it somewhere anyways.