I've been working on a collection of problems that we use locally in a variety of classes. From a functional point of view, we treat the collection as part of the National Problem Library, and it is installed in the same location on our local server. I'm trying to clean them up and document them better, with the aim of submitting them to the public collection. In the process, I think that I may want to change my naming scheme somewhat. I realize that doing such would break any problems referencing the old names on my server.
Has anyone thought through a solution to this conundrum? It would be nice to be able to automatically fix any references to the old name.
I don't have a good solution. A lot depends on how large the collection is.
I would image the real problem is that instructors want to copy the assignments from an old course to use in a new one. But the set definition files from the old course will not work. If there are not too many courses/assignments/problems involved, I think I would just bite the bullet and edit the set definition files by hand and pass them on to the new instructors.
If you really want the old courses to keep functioning you could use symbolic links but that just propagates using the old names.
Maybe someone else has a better idea.
I'm not sure that this is exactly your question, but sometimes mass changes to homework sets are more easily done by exporting the sets to .def files and then using scripts like perl or other unix tools to change addresses in these text files.
Then reload the .def files.
Particularly for non-routine tasks for which there is not a solution built in to WeBWorK it can be helpful to export to text based files where more general unix tools can work. Most of the data in WeBWorK can be exported to text based files.
The set definition files are course specific, not student specific. So you can use them to duplicate the problems in a given assignment, but not the specific versions of problems assigned to students. For that you would need to record student id's, problem names, and seeds.
It may be possible to manipulate the database to accomplish this but probably not easily.