Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!

ctanupload script
This Perl script allows the uploads of a contribution to CTAN from the command line.
It is intended to simplify the release process for LaTeX package authors.

Copyright (C) by Martin Scharrer <>
Source code repository:
Please report bugs and feature requests at

ctanupload <options> --<name>=<value>

Arguments can also be given using the CTANUPLOAD environment variable which are processed first, so that
explicit arguments will overwrite them.

  -p         Prompt for missing values. (default if run in terminal)
  -P         Do not prompt for missing values. (default if not run in terminal)
  -y         Do not ask for confirmation, but submit immediately.
  -u <URL>   CTAN URL to upload to (defaults to CTAN_URL environment variable or random if not set)
  -U <name>  CTAN server to upload to, either 'dante' or 'uktug'.
  -F <file>  Read data from file
  -f         Force upload even if input seems incorrect (unknown license etc.).
  -v         Verbose mode.
  -q         Quiet mode.
  -l         Write log file.
  -L         Do not write log file. (default)
  -o <file>  Define log file. (still requires -l)
  -h         Print this help and exit.
  -V         Print version number.

The following fields exists and can be given as
--<name>=<value>, --<name> <value>, --<name>-file=<file>, --<name>-file <file>
or as environment variables: CTAN_<NAME>, CTAN_<name>, <NAME> or <name>.

    contribution     Name of your contribution
         version     Version number
            name     Your name
           email     Your email
         summary     Summary description
       directory     Suggested CTAN directory
   DoNotAnnounce     No need to announce this update
        announce     Short description for announcement
           notes     Optional notes to the CTAN maintainers
         license     License type
     freeversion     Which free license
            file     File to upload

Valid license types:
            free     Free
    nocommercial     Nocommercial
          nosell     Nosell
        nosource     Nosource
       shareware     Shareware
        artistic     Perl Artistic (Clarified or later)
   other-nonfree     Other nonfree License

Valid free license:
         apache2     Apache License v2.0
        artistic     Perl Artistic License (version 2)
             fdl     GNU Free Documentation License
             gfl     GUST Font License
             gpl     GNU General Public License
            lgpl     Lesser GPL
            lppl     LaTeX Project
             ofl     Open Font License
              pd     Public Domain
      other-free     Other Free

Recent activity

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.