I have several projects for SharePoint 2010 (mostly they are separate solutions built each to separate wsp's) in active development. And I have a similar tasks in these projects (logging, configuration and so on) so there are a same parts of code (or even classes) in different projects.
I though how to implement these parts as shared code library. But the main trouble is that I need to able adding new features to this library, hence it will require to adapt each depended project to this changes, because library assembly is putted in GAC and used by all projects. But it's to hard to support old and finished projects only for using new features from library in other project.
Currently I use a separate library instance per project with different libraries name. But it also causes repeating of code and additional work for moving new feature from one library instance to another.
I was thinking about library versification but didn't a deep exploration of it.
Please give me an advices about best practices for this problem resolving, as this is no especially related to SharePoint, but to any system with modular architecture.
Thanks in advance.