Absolutely you can make code contributions! Gato (an outside developer) began making Smack contributions about a month ago, such as:
Helping architect the Smack extensions package
Creating most of the current Smack extensions
Creating the Smack extensions manual
He has CVS read/write permissions as well. So, outside developers are certainly welcome.
From an architectural perspective, Smack extensions provide a very clean and easy way to add features. However, we’'re careful about what we make official Smack extensions for a few reasons:
We want to maintain a clean, consistent official API.
Many XMPP extensions are either not stable (from a protocol perspective) or just not very good.
For example, there are quite a few different standards for file transfer and it’‘s difficult to choose the right one to implement. So, probably the best idea is to discuss smack extension ideas with other developers (myself and Gato, and Iain gives really good input as well) and then to do development accordingly. If you start to become seriously involved in Smack development, we’'ll be happy to give you CVS permissions, etc.
I hope that helps! Let me know if you have additional questions.