I have create a template and some macros I would like to share. How can I contribute them to CTAN?
Great! The process is simple. Everything is explained on the upload page (see below for the actual links). My own guidelines are listed below.
Having done that, take your files and bundle them up in a ZIP or TAR.BZ (or etc.) archive and upload it. There are two CTAN ‘mirrors’ to which you can upload your work:
The only difference between the two is that a different person (in a different timezone) will process the upload.
I see Will has answered this, but I'm going to give the same information in a slightly different form!
The upload page at http://www.ctan.org/upload contains some advice, as well as an upload form. You only have to upload the files themselves, but it is usual to include some kind of README file and also probably some documentation. If you have a package called 'mypkg', you might therefore want to upload:
All of that needs to go into a single zip file, which you then upload.
A lot of LaTeX packages are written in 'dtx' format, which puts the source for the documentation and the code into one file. This is also used to document the code itself. If you use dtx format, then you'd upload
Again, everything goes into one zip file and gets uploaded using the form on the CTAN website.
There are additional things that you can upload, but to begin with I think this is where to start.