phaolo: I noticed that gogrepo saved a bunch of old game versions that are missing from the actual game pages.
Why does it keep them? Am I missing some parameter\command? (I'm using Kalanyr's stable branch)
If I understood your problem right:
You use the "clean" command to remove old obsolete files from your local GOG files, files that don't exist anymore on the GOG servers (ie. are not in your updated manifest file anymore).
Actually it doesn't remove the obsolete files outright, but moves them into a separate !oprhaned-directory, which you can later check and delete all the files in it, if you want. Or keep them there if you feel you want to keep some old files (e.g. I've kept some soundtrack extras that have been removed from some games, or the earlier CD and DVD versions of e.g. Riven (the current version is a ScummVM version of the game).
I don't think it really matters if you run the clean command before or after you download new/changed files. I tend to do if beforehand (right after updating the manifest file), so (E:\GOG\ is the external HDD and directory where I have all my GOG game installers and extras):
python gogrepo.py update -lang en -os windows
python gogrepo.py clean E:\GOG\
python gogrepo.py download E:\GOG\
python gogrepo.py verify E:\GOG\
After that I have a fully updated, clean and verified set of GOG game installers in E:\GOG\.
Under E:\GOG\!oprhaned\ I have all the old obsolete files from the clean command.
EDIT: If, however, you mean that there are some obsolete files still in your manifest file after the update commend... then I personally would simply delete the old manifest file, and re-run the update command. At least then you can be certain you get a clean and fully up-to-date manifest file.