How to make a software documentation "officially" citable?

There are about as many approaches to citing software (and making software citable) as there are software packages.

One way is to create a DOI for your software via Zenodo. This DOI can then be updated for each version of the software. Another way is to write a paper about the design and features of your software and see that it gets published somewhere. There are numerous journals for this -- for example, SoftwareX or, for mathematical software, the ACM Transactions on Mathematical Software. (Disclaimer: I'm a co-Editor-in-Chief of the latter.)

There are numerous other projects that have guidelines of how to best do this. You may want to take a look at the Force11 project, for example, as well as the outcomes of the WSSSPE series of workshops.


Write a manual and release it as a technical report.

how to deal with the different versions?

Put the version number in the manual's title and have a different version of the manual for every release. (Alternatively, revise the manual every major release or ...)

I don't think it's possible to write just some "changelog"

You could have a CHANGELOG in the manual, which summarises what's new in the current version. Alternatively, a CHANGELOG could be distributed with the software.


In addition to the above answers, you can publish a short article about the software at the Journal of open Source Software (JOSS). How this journal differs from other journals is described in its announcement post.

Your submitted article and the associated software are thoroughly peer reviewed. If the article is accepted, it will be assigned a volume number, official DOI, etc. In effect, you have a "real" article that can be cited just like a "regular" journal article. This is separate from obtaining a DOI just for your software through services such as Zenodo and figshare, which are mainly intended for archival storage of software and datasets.