I'm sorry, if this question isn't appropriate here, since it asks (at least partly) for opinions. However, there exists a "best-practices" tag, and I believe, the answer could be of public interest.
Background
In our workgroup I maintain a small bundle consisting of a class, several packages, and perl scripts, in total about 4000 LoC. The bundle is subject of continuous development. Currently, I prepare a new major version, that includes a few new files.
Until now, I've distributed the code as collection of files in a directory or archive. If a group member wanted to install the bundle, she/he had to copy every file to its appropriate place.
With the new revision, I want to switch to a more "TeXish" development: literate programming and bundle installation with .dtx and .ins files.
Problem
While I believe that I understood the format of the .dtx file and how docstrip works, I'm still puzzled about the development workflow.
As any development, I follow a development cycle:
edit - compile - testing - commit (if the tests succeed).
After few of such cycles, a bug is eliminated or a new feature is established (and a new version can be shipped). However, if the source consist of one or several .dtx files, the cycle would include at least an additional installation step. Considering that the edit changes are usually rather small, an additional compilation/installation seems to be rather inefficient.
I've considered several options, but I find none of them very appealing :
- Using one big dtx file. Disadvantage: editing is quite unhandy and there is the additional compilation/installation step for each test step.
- Using one dtx file for each package and the class. Disadvantage: now I have even more installation steps.
- Using
sty2dtx
, not in every cycle, but if a feature is ready. Disadvantage: Several, e.g.sty2dtx
can't handle LaTeX3 command definitions. - Writing a kind of diver program that compiles a .dtx file from the source files, while the source file stay valid TeX/Perl files with special comments. Disadvantage: I'm not sure whether my TeX foo is sufficient. In addition: I have the feeling that, if this would be a good idea, somebody would have done this already.
Question
What is a good TeXish workflow that support continuous development and results in an installation bundle? Did I miss an option?