IDL2js delivers lots of unneeded information, adding bulk.

Bug #1292705 reported by Bill Erickson
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Evergreen
Fix Released
Wishlist
Unassigned

Bug Description

Evergreen, post 2.6

IDL2js, which JSON-ifies the IDL for web clients, delivers quite a lot of data that the client does not strictly need. This increases the file size, in-browser memory footprint, and probably execution time when processing IDL2js.

The main issues are:

1. Fields with no values, like "primitive", "restrict_primary", "selector", etc.
2. The "selector" field, when it does have a value, repeats the same value for every field in the class.
3. Fields where a default value is provided by the server, where it could just as easily be provided by the client. For example, "label" defaults to "name" when no "label" exists.
4. The "array_position" field was removed from the IDL proper years ago, yet it still appears in the IDL2js output (and is used by dojo/fieldmapper/IDL.js).

Branch forthcoming to resolve all of these and make the IDL considerably smaller.

Tags: pullrequest
Revision history for this message
Bill Erickson (berick) wrote :

Here's my first stab. It works with tests performed thus far (various conify UIs, some ACQ UIs, basic staff client poking). On my system, this reduced the output size from 731577 bytes to 364109 bytes, just over a 50% size reduction.

http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/collab/berick/lp1292705-trim-idl2js-unneeded-fields

Testers greatly appreciated.

Bill Erickson (berick)
Changed in evergreen:
assignee: Bill Erickson (erickson-esilibrary) → nobody
tags: added: pullrequest
Revision history for this message
Ben Shum (bshum) wrote :

Assigning to beta1 review since this seems good to have.

Changed in evergreen:
milestone: 2.next → 2.7.0-beta1
Revision history for this message
Ben Shum (bshum) wrote :

Tested around and things look okay so far. We'll do more during the actual beta review leading to RC, but pushing to master since there weren't any immediate signs of breakage.

Thanks Bill!

Changed in evergreen:
status: New → Fix Committed
Revision history for this message
Dan Scott (denials) wrote :

isnew() and the like were broken due to the lost field increment; http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/dbs/lp1292705_fix_IDL2js fixes this (breakage was seen in the patron registration UI).

Revision history for this message
Ben Shum (bshum) wrote :

Yay Dan!! Thanks for fixing that issue. Pushed your fix into master.

Will continue to test for more issues.

Changed in evergreen:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.