Make a zip file called <mapname>.zip with the following directory structure;
your map file
your map's bot file
your map display shot
a custom texture
another custom texture
makes your level turn up in the menu
a custom shader for your map
some info about your map
Once you have made the .zip file you need to rename the <mapname>.zip to
If you use Microsoft Windows, you may need to enable file extension. You
can do it as a folder option from the Windows Explorer menu. Then place
the .pk3 file into a zip file with a copy of the readme.txt file.
Placing it in a .zip makes for easy download as some servers/browsers
mis-read .pk3 as text (because of MIME settings).
Thats about all there is to it.