You have something to submit to the archive — good news!
Before we even start, here’s a check-list of things to sort out:
READMEfile (possible names are “README”, “README.txt”, and “README.md”, but no other variants); in addition a PDF file of the package documentation, prepared for screen reading, is highly desirable.
Name: endless confusion is caused by name clashes. If your package has the same name as one already on CTAN, or if your package installation generates files of the same name as something in a “normal” distribution, the CTAN team will delay installation while they check that you’re doing the right thing: they may nag you to change the name, or to negotiate a take-over with the author of the original package. Browse the archive to ensure uniqueness.
The name you choose should also (as far as possible) be somewhat
descriptive of what your submission actually does; while
“descriptiveness” is to some extent in the eye of the beholder,
it’s clear that names such as
Version: Every submission of every CTAN package has to contain a
“version identifier” that permits to distinguish this version of
the package from earlier or later ones. This tag should be put
into a place where it is easy to find, such as the latest entry
of a Changes file, a
VERSION file, or an easily accessible place
(preferably: the top part) in the
This version identifier may consist of either a version number
(i.e. something like
2.1a, or a version
date (i.e.: preferably in
2021/04/01), or a string consisting of
both the aforementioned data.
You upload via the CTAN upload redirector
(the archive’s main page has a link). The upload page shows what it
needs to know, and allows you to enter the information. The mechanism
can only accept one file per upload: if you had intended to upload
lots of files, you need to bundle them into an “archive” file of some
sort; acceptable formats are
tar.gz (most uploads are packed
zip format). Once you have completed your upload, the redirector
assigns it to a member of the team for processing.
If you can’t use this method, or if you find something confusing, ask advice of the CTAN management team.
If your package is large, or regularly updated, it may be appropriate
to “mirror” your contribution direct into CTAN. Mirroring is only practical
rsync, so this facility is limited to packages offered by
a server that uses one of those protocols.
FAQ ID: Q-uploads