As an experiment, we've decided to make our Smalltalk environment be really mean to us.
a) When we save our code, the Epigent Formatter formats the code -immediately- (with a few tweaks to make it more to our liking). 90% of the time the code comes out formatted the way we like it, so that's pretty good.
b) When you go to Publish your code, we now automatically update the prereq's for every package that has been modified in the bundle you're publishing. This was previously slow so I've optimized the NewPrerequisitesEngine to go around 100x faster. This code has been published to the public store. I also then check for circular or forward prereq definitions and abort the publish if they exist. Naturally the developer is informed with helpful dialogs.
c) When you go to Publish, you have to pass two sets of tests. *Any* unit tests that exist inside the bundle (ie: all of them) and a specific set of Lint tests that look for redundant or buggy code. This has saved us numerous mistakes already and so long as the lint and unit tests run fast, this'll remain a good tactic. Slow running tests can be run overnight on the overnight publishing box.
Now that I've been living in this environment for about a week, I'm really starting to enjoy it. I want to adopt it for the WithStyle code base too, except that WithStyle has some circular prereqs in the V3 code that cannot be fixed at this point. They will be fixed in V4. Also, the V3 tests are numerous and slow.. this is also being fixed in V4. So, when V4 is off its legs and V3 becomes deprecated, I can adopt these environment nazi enhancements for WithStyle too.