| 1 | This is a collection of things that have annoyed me. I'm writing them down so |
| 2 | they'll seem smaller: if I only keep track of them in my head, I'm sure that |
| 3 | I've forgotten a few, and thus the perceived list is usually larger than the |
| 4 | actual list. |
| 5 | |
| 6 | == windows == |
| 7 | * I had to use less-readable pathnames for flogfiles and incident reports |
| 8 | (#177). Instead of `incident-2011-06-05--14:40:21Z-w2qn32q.flog`, I had to |
| 9 | switch to `incident-2011-06-05--14-40-21Z-w2qn32q.flog`. The colons are |
| 10 | more readable, and work fine on everything except for windows, but the |
| 11 | hyphens are safe on all platforms. I'm bowing to the desires of my |
| 12 | colleagues to value uniformity over readability. |
| 13 | * the normal safe atomic-rename trick (for overwriting a file) doesn't work |
| 14 | on windows. |
| 15 | |
| 16 | == setuptools == |
| 17 | * I added code to setup.py to add "entry points", which I dislike, because |
| 18 | their use of `pkg_resources` makes it hard to locate the actual code being |
| 19 | imported, and because they introduce a build step that isn't normally |
| 20 | necessary. The `sys.path`-appending preamble in e.g. `bin/flogtool` works |
| 21 | fine on all but windows, I think. (#109) |
| 22 | * I also added code to setup.py to add "install_requires", to present |
| 23 | dependency information in a setuptools-visible way. While not a direct |
| 24 | drawback, in my experience this dependency information is more likely to |
| 25 | cause spurious failures at runtime than to improve anything. (when a |
| 26 | dependent package is perfectly usable but, for some dumb reason, lacks |
| 27 | version information that setuptools can recognize, then the `pkg_resources` |
| 28 | checks in entry-point scripts will refuse to even attempt the import). |
| 29 | * Using setuptools at all means that 'setup.py install' doesn't work like GNU |
| 30 | Autoconf -style 'make install', which causes problems with stow, and with |
| 31 | debian package-building scripts. You can use the unpleasantly verbose |
| 32 | `--single-version-externally-managed` flag to get closer to the original, |
| 33 | if you can remember or discover it. I feel that OS-level packaging systems |
| 34 | are better than per-language packaging systems, so I'd rather setup.py be |
| 35 | simple and higher-level tools get more control. |