[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Cleaning up the repository. How does the community feel about it?

Hi John,

Thanks for that writeup.
It is good to get some more background on the issue.

I also find it enlightening that the Drupal and Wordpress packages (debian) use their own internal versions of Dojo.
This suggests that my assertion that we are not including the dojo library, but a customized version of dojo, is acceptable within the debian packaging policy.

David G

On 03/01/16 13:25, John Locke wrote:

On 01/01/2016 09:57 AM, Erik Huelsmann wrote:

On Fri, Jan 1, 2016 at 6:45 PM, Robert James Clay <..hidden..> wrote:
On Thursday, December 31, 2015 09:50:59 AM David G wrote:
> It is worth pointing out that it is undesirable to use an OS package to
> provide dojo as there are known to be issues from minor release to minor
> release that would break LedgerSMB.

  What are those issues and how do they break LedgerSMB? That is;  how is that
being tested and what does that find?  And why are those minor releases"  being
used, if they cause such issues?
John says he has experience that there are slight incompatibilities between versions 1.7, 1.8, ...  and that very careful testing is required to be sure your code remains working. Assuming that's true, I can be nothing but extremely disappointed about the development processes used.
One of the questions that come to mind though is: how do they keep their own stuff working if the various versions break expectations? It seems some widgets haven't been changed since the early days of Dojo. Surely those would be broken now if this goes on too long?
So I actually have not even used 1.9 or 1.10, my experience is based on moving from 1.2 to 1.3, to 1.5, to 1.7... every time we upgraded our single-page app, stuff broke and needed to get rewritten.

The stuff that broke were largely custom widgets we wrote, using underlying Dojo classes for widgets and templates -- they kept refactoring these and changing the API in subtle ways that broke our custom code.

For LSMB this might not be much of an issue -- yet. At least not before LSMB 1.5. But 1.5 relies upon Dojo far more than any previous version (is it even in 1.3? And for 1.4, it's only used for simple form elements and some layout stuff in the Contacts area -- I don't think we've built any actual custom complex widgets).

It's certainly possible that things have shaken out and gotten more stable -- as it is the jump from Dojo 1.5 to 1.7 (which introduced AMD) was so great we still have not completely upgraded our internal app, and are still using 1.5.

And then also realize that there's no server-side testing that would reveal a problem with Dojo -- it's purely client-side. So testing it properly is largely visual regression testing, stuff on top of Selenium/PhantomJS or similar, or using writing tests for Dojo's own test runner, DOH (if that's still around... looks like they now promote "intern" which looks interesting...)

Dojo does have its own test suite. But the problem I've experienced with Dojo upgrades is in its base widget classes (dijit/_Templated, dijit/_Widget, etc) which have changed far more than you would think should be acceptable within a minor release. If we're not extending those, then we're not affected -- yet. But the ability to extend those to have smart widgets is the main reason I was advocating for Dojo in the first place, over simpler widget systems like jquery.ui and the like.

And as previously noted, I have not experienced any issues with updating a patch release within the same minor version (e.g. 1.5.1 to 1.5.3), only between the minor versions (1.5 to 1.7). And Dojo itself is still releasing patch releases for 1.5 -- if they expected everyone could upgrade easily, they would not still be issuing patches for 1.4....

Remember that JS libraries don't need to only consider what else is on the Linux server -- it's something that needs to support all major browsers on all operating systems. Microsoft Edge, IE11, IE10, Safari, Chrome, Firefox on Windows, Mac, Linux, Android, iOS, ChromeOS, etc. As _javascript_ itself evolves into ECMAScript 6, with greatly varying degrees of OS support, JS libraries need to evolve and change much faster than probably any other package on a Linux server. And HTML5 was in its infancy 5 years ago -- we were still mostly doing XHTML. And unfortunately, sometimes JS libraries have functions that get turned into reserved words in newer JS version or particular browsers... jQuery has the same issues with upgrading between minor version releases.

Can you point me to any major web application that actually depends upon the Debian dojo or jquery packages, instead of bundling the exact version they have fully tested? What I see using apt-rdepends are a bunch of local applications -- so many desktop toolkits work with _javascript_, it makes sense to use a system JS library for a desktop app. Not for a web app with a huge range of other targets... Drupal and WordPress both have Debian packages, and both ship/use jQuery... and do not require or reference the Debian libjs-jquery (or any other jquery) package.



Ledger-smb-devel mailing list

Ledger-smb-devel mailing list