Official Yii Extension Repository

Hi everyone!

Most of us use extensions and to some degree, we use the same extensions - the most popular of them, like srbac, giix, Zend Loader from the YiiExt.

And we all know that sometimes it is hard to chose an extension and it’s not rare that the author has released an extension, made a few bug fix releases and then just disappears for a long time. Many times extensions are too specific and need some love to make them more common (but the functionality and the quality of code is very good usually) - so you take it, fix it, share the changes and nothing happens - author just doesn’t look into comments any more or doesn’t want to update his code for some reason.

And to say the the truth, I like to stick to the extensions and components that have framework developers as contributors or authors - these extensions are usually more generic, more suitable for wider use and are updated timely. And community patches are getting through :)

So, what I would like to see with Yii 2 is the official repository for extensions, with are developed both by community and the framework developers. This extension/module repository should co-exist with the community extensions (the extensions page we have now), but contain no duplicates in functionality - there should be only one srbac type extension, only one Zend Framework loader, only one Multilingual Active Record implementation and so on. Frankly the best and somewhat seasoned community extensions should migrate there with time.

Second best thing is that people will be sure that the extension will live and it is actually worth patching it and sending them for review and not developing your own extension all over again.

Third good thing is that these extensions/modules can have a package manager in yiic, simplifying installation, updating and management (community modules/extensions can be the part of it two, but that will be the authors responsibility to maintain it in working order).

And last, but not the least - there can be extension developers in Yii team who just deal with extensions/modules and do not interfere with the framework development (we know the Yii devs prefer the quality over the amount of people, so they keep their team small) - these will come from the community. Hell, I could become myself such a person :)

So, lets discuss it :)

I believe that the core issue you are describing here (authors not applying community patches) will be relieved when Yii moves to github. I believe that the extensions are likely to move with the framework (giix, my extension, will).

That’s not something we can do much about.

If people would put it up on Github or Bitbucket, it would be easier to keep the extensions up to date.

I kind of like it the way it is now.

But, perhaps the extension registration could be changed to favor projects which are on Google.code, Github, Sourceforge, Bitbucket?

3-rd parity extensions are 3-rd parity extensions - there always will be tons of them - same functionality written by different authors, different code style and different implementations. And choosing between them is sometimes a painful, not to mention that issues pop up after some time.

What I purpose is to create, lets say, a branch in extensions - Yii featured extensions. These extensions shall be monitored by Yii developers, some of them will be written by Yii devs. There should be formal criteria to be met before extension is even considered, like code style, unit test covering it and so on. These extensions essentially become standard for the Yii framework, they just had to be installed manually.

I know that right now you look through the extensions and decide witch you like more and mostly they do the same: how much RBAC management extensions there are? LOTS. I use srbac - good one on the functional side, but it’s UI is quite questionable (didn’t try 1.4 yet) - author has no time to make it shiny and there are more than a few bugs there (but never hit a critical one thanks god). Someone didn’t like it and created yii-rights. And then someone created another one with different UI, but same functionality. And so on. If there is one featured RBAC management related extension, people will contribute their patches there, or will make local changes on top, not just write other crap extension witch will be forgotten and just sit there with no updates for years.

The other benefit of this is that featured extensions can be made so that if they interconnect in some way when both (or more) installed, they are aware of that and do not break things and not screw each other (for example srbac and yii-user-management extensions need some manual love to live with each other). This is a big plus and really makes life easier.

Other good thing is that good ideas will flow to the featured (official) extensions and they will get better with time, they will be updated as the framework is developed (community will make sure of that) and there will be rainbows and unicorns all around :D

According to this thread, there is a plan to have official packages, which will contain tested packages(extensions). And because Yii 2.0 will be on github, I suppose this official packages, should be on github too, so you should be able to fork them(I hope so).

About other 3rd party extensions, it is up to authors where they will host their repositories, and developers are using different SCM tools, so it hard to force them to use one system.

That is what I meant. A little different, but accurate.

Official packages should conform to defined standards, be hosted the same place as Yii and use the same source control system as framework.