New Router not going to be in 3.7

238 views
Skip to first unread message

Hannes Papenberg

unread,
Mar 23, 2017, 4:02:06 PM3/23/17
to Joomla! CMS Development
Hello folks,
today I was informed that the production leadership team decided that
the new router will not be part of Joomla 3.7. I have not seen an
anouncenment to inform the community yet, so I thought I could take over
that task.

Over the last three weeks I've repeatedly asked if there were any issues
with the new router which would prevent it from being released. Up until
today I was given no issue list and no hint that such a list would still
come. However now, after the decision, I've been presented with the
following list of reasons for not including it: (I'm paraphrasing the
list and added my comments to them.)

- There is no documentation of the router. In addition to text, UML
diagrams, schema graphics and samples were requested.
My response: Yes, I failed to write extensive documentation. I am sorry
for that. I started writing such documentation, but didn't get very far,
since I had issues formulating the concepts into an easily
understandeable text. (Also remember that I'm not a native speaker.) I
contacted members of the documentation team pretty much exactly one year
ago and gave them a live introduction into the router in the hopes of
being able to write the documentation with them together. Unfortunately
that attempt stalled afterwards. However this has been the first time
that the Joomla project requested documentation and especially UML
diagrams to accept a feature.

- The routing code for all of the router is not very easily readable
My response: I refuse to accept that for the component router. That code
is very well structured and I can give resonable arguments on why I made
the design decisions the way I made them. At the same time, the router
is not trivial in what it does and thus I find it hard to expect the
code of the router to be trivial.
If that comment was meant to refer to the application router, I can
fully agree with that. The application router is a horrible mess of code
right now with duplicate and triple functionality and dead ends and no
structure whatsoever. However, since we are bound to our B/C promises,
we can not change that in the 3.x series, which is why I rewrote the
application router about 5 months ago in the 4.0-dev branch and was able
to make it pretty clean and lean with lots of less code. I have a
standing bet that a moderately competent developer can understand the
application router in 4.0-dev (JRouter and JRouterSite) in under 10
minutes and point out which part of the code does what without any prior
knowledge.

- Apparently the entry position of the router is not right
My response: I have no idea what is meant with that.

- The no-ID feature is being questioned if it can be made to work in 3.x
My response: That feature works and is backwards compatible. I don't
know where the people that made this list see an issue here.

- If enabling modern routing, some of the old URLs will not work anymore
(Issue #14848)
My response: The modern routing has not been advertised as being
backwards compatible. That is why I implemented a switch between legacy
and modern routing, defaulting to the legacy routing. That gives people
the chance to test if their sites work with the modern routing in a test
environment and for developers to make their extensions work with the
new code. People are agreeing that the new router creates the right URLs
and that the non-working URLs are URLs that the current router is
building falsely. So the new router builds the right URLs and rejects
false URLs. To me that sounds like what people want. If people have lots
of those wrong URLs and don't want to go through the pains of reindexing
those, they still can stick to the legacy routing.

- The unittests are apparently not enough and it was asked for Selenium
tests
My response: The router is almost 100% covered by unittests. It is
missing Selenium tests, but while that shouldn't keep us from creating
those tests, it again would be the first time that a feature is rejected
because of missing automated tests.

I hope this gives you an insight on why the production leadership
decided the way it did. It would have been good if I had been contacted
by the team to see if we can solve the issues that they assume. I'm
looking forward to hearing when or even if this feature is going to be
implemented in the future.

In any case, this hopefully gives you some time to update your blogposts
about 3.7 and remove the router from the feature list for that version.

Regards,
Hannes

Rikáryo Mourão

unread,
Mar 23, 2017, 4:16:35 PM3/23/17
to Joomla Dev Cms
I was preparing the pgrade of my sites for this new function, I would
lose some links, but the new one was much more accessible the searches
and visibility.

Good work and I hope this router gets back to planning.

hugs

2017-03-23 17:02 GMT-03:00 'Hannes Papenberg' via Joomla! CMS
Development <joomla-...@googlegroups.com>:
> --
> You received this message because you are subscribed to the Google Groups
> "Joomla! CMS Development" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to joomla-dev-cm...@googlegroups.com.
> To post to this group, send an email to joomla-...@googlegroups.com.
> Visit this group at https://groups.google.com/group/joomla-dev-cms.
> For more options, visit https://groups.google.com/d/optout.



--
Rikáryo Mourão
Design e CEO Enginer
Herói Nerd - Inventtive
(88) 9 9623.8664
www.inventtive.com.br | www.heroinerd.com.br

Economize papel, preserve as árvores/Save paper, save a tree. Você
realmente necessita imprimir esta mensagem ?/Do you really need to
print this mail?

Ole Ottosen (ot2sen)

unread,
Mar 23, 2017, 4:40:29 PM3/23/17
to joomla-...@googlegroups.com
They did post it here Hannes


Good call to make it even better for 3.8 :)
Thanks for your great effort so far.

On Thu, Mar 23, 2017 at 9:16 PM, Rikáryo Mourão <rik...@gmail.com> wrote:
I was preparing the pgrade of my sites for this new function, I would
lose some links, but the new one was much more accessible the searches
and visibility.

Good work and I hope this router gets back to planning.

hugs

2017-03-23 17:02 GMT-03:00 'Hannes Papenberg' via Joomla! CMS
> email to joomla-dev-cms+unsubscribe@googlegroups.com.
> To post to this group, send an email to joomla-dev-cms@googlegroups.com.
--
Rikáryo Mourão
Design e CEO Enginer
Herói Nerd - Inventtive
(88) 9 9623.8664
www.inventtive.com.br | www.heroinerd.com.br

Economize papel, preserve as árvores/Save paper, save a tree. Você
realmente necessita imprimir esta mensagem ?/Do you really need to
print this mail?
--
You received this message because you are subscribed to the Google Groups "Joomla! CMS Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to joomla-dev-cms+unsubscribe@googlegroups.com.
To post to this group, send an email to joomla-dev-cms@googlegroups.com.

brian teeman

unread,
Mar 23, 2017, 4:55:39 PM3/23/17
to Joomla! CMS Development
I find it so unfortunate to read any post with misinformation

Hannes Papenberg

unread,
Mar 23, 2017, 4:58:06 PM3/23/17
to joomla-...@googlegroups.com
It would be good if you could point out which post you mean. Maybe the
project could then unpublish it again.

Michael Babker

unread,
Mar 23, 2017, 5:06:30 PM3/23/17
to joomla-...@googlegroups.com
To clarify a couple of points:

- The GSoC proposal was on the table long before we ever reached a point where delaying the feature was discussed.  And from everything I have seen thus far from the interested mentors, it is more focused on Joomla's SEO capabilities and user education than the actual routing code (the one code related comment I've seen is suggesting ensuring the code is RFC 3986 compliant).

- The plan of action we are finalizing amongst the Production Department does not call for the full removal/scraping/whatever of the current router code.  That will only truly be considered if the routing infrastructure is deemed to be such a catastrophic failure that it cannot be used in any way shape or form.  I don't see how that can happen, even though I have a hard time fully understanding Joomla's routing code based on the actual user testing feedback I have seen regarding the router it is functioning exactly as it has been advertised since day one, compatibility breaks and more strict setup requirements included.  Functionality wise, the only issues I am aware of basically equate to user experience issues and edge cases with site configurations, not critical flaws in the code.  All of that tells me that the system is usable.

More will be communicated later, I just felt the need to make this statement now before things blow up.

On Thu, Mar 23, 2017 at 3:55 PM, 'brian teeman' via Joomla! CMS Development <joomla-...@googlegroups.com> wrote:
I find it so unfortunate to read any post with misinformation

Hannes Papenberg

unread,
Mar 23, 2017, 5:07:29 PM3/23/17
to Joomla! CMS Development
While we are at it, if you want to make a quick buck, you could do this
GSoC Project:
https://docs.joomla.org/GSOC_2017_Project_Ideas#Project_II:_Improved_Routing

The code for that project is attached below:

class plgSystemSeoRedirect extends JPlugin
{
public function onAfterRoute()
{
$app = JFactory::getApplication();
$router = $app->getRouter();
if ($router->build($router->getVars()) != $_SERVER['REQUEST_URI'])
{
$app->redirect($router->build($router->getVars()));

דניאל הפונדק

unread,
Mar 23, 2017, 5:23:02 PM3/23/17
to Joomla! CMS Development
Very disappointed.
Especially if now some GSoC program is required I don't see 3.8 released in 2-3 months as article States...
3.7 should be delayed to wait for routing...

Hannes Papenberg

unread,
Mar 23, 2017, 8:18:12 PM3/23/17
to Joomla! CMS Development
For all those that don't want to wait for the router in Joomla 3.8, here
is the code as an installable plugin for Joomla 3.6.5:
https://github.com/Hackwar/jlrouter/releases/tag/1.0

Regards,
Hannes

Am 23.03.2017 um 21:02 schrieb Hannes Papenberg:

Todor Iliev

unread,
Mar 24, 2017, 6:44:18 AM3/24/17
to Joomla! CMS Development
Why you do not include it to 3.7 as experimental feature?
It is not necessary to be backward compatible.
You should leave a note, it is not BC, it is experimental and if someone would like to use it, he should use it for new projects.
It shouldn't be recommended to be used on production websites. It could be used in a process of developing new extensions.

I am waiting for this router for long time. I would like to use it for my new projects now and I do not wont to wait 6-8 months for this features.
I know, it would not be BC and I definitely will not use it on my current production sites. However, I would like to use it in in my future projects.

I think, best solution should be to integrate it to Joomla 3.7 as experimental feature. That will be good solution because much more developers will be able to test it with their extensions and will provide better solution to next release.
You will be able to provide stable version of the route in Joomla! 3.8 because much more developers will be able to help you.




Reply all
Reply to author
Forward
0 new messages