|
|
|
[
Permlink
| « Hide
]
P T Withington - 01/May/07 10:46 AM
The auto-include table must need updating.
[13:45] hqm: I thought this came up before at one point..
[13:45] p7w: looks like a component missing from the auto-include table -- who maintains that, no one? [13:45] p7w: Should we just have a bug to update that table? [13:46] jgrandy: Just add a note to this bug to look around for other missing files. [13:46] hqm: Not sure if it is a bug if someone is depending on stuff the debugger loads... [13:47] p7w: Henry, are you saying this is a debugger component and not a general component? [13:47] hqm: I am not sure actually... From: P T Withington <ptw@pobox.com>
Subject: How should auto includes be kept up to date? Date: Thu, 31 May 2007 15:11:16 -0400 Currently, the association of LZX tags to the components file that defines them is done by a hand-maintained file WEB-INF/lps/misc/lzx- autoincludes.properties. I wrote a script to find all the tags that are defined in components (excluding the incubator and tags that are 'internal' [start with _ or use camel case]). That script reveals the following tags that are not represented. At least some of these are the source of bug reports (e.g., [Simpleboundslayout.lzx is not include when debug=true](http://jira.openlaszlo.org/jira/browse/ Should we create a build step that will automatically build this properties file from the components directory? Or are there things here that we just don't want to _ever_ have auto included? Should there be a automatic build with a black list? Or should I just add the two missing layouts to the hand-edited file and be done with it? 1a2,9 > videolibraryicon: av/videolibraryicon.lzx > videolibrarypopup: av/videolibrarypopup.lzx > videoplayer: av/videoplayer.lzx > videoscreen: av/videoscreen.lzx > videoslider: av/videoslider.lzx > videothumbnail: av/videothumbnail.lzx > videotogglebutton: av/videotogglebutton.lzx > videovolumebutton: av/videovolumebutton.lzx 2a11 > basebuttonrepeater: base/basebuttonrepeater.lzx 6a16 > basedatacombobox_item: base/basedatacombobox.lzx 8a19 > shortdesc: base/basedatepickerday.lzx 9a21,23 > shortdesc: base/basedatepickerweek.lzx > basefocusview: base/basefocusview.lzx > focusoverlay: base/basefocusview.lzx 12a27,28 > basegridcolumn: base/basegridcolumn.lzx > basegridrow: base/basegridrow.lzx 14a31 > basescrollarrow: base/basescrollbar.lzx 15a33,34 > basescrollthumb: base/basescrollbar.lzx > basescrolltrack: base/basescrollbar.lzx 19a39,41 > basetab: base/basetabs.lzx > basetabpane: base/basetabs.lzx > basetabpanecontent: base/basetabs.lzx 20a43,44 > basetabsbar: base/basetabs.lzx > basetabscontent: base/basetabs.lzx 25a50 > datalistselector: base/datalistselector.lzx 33a59 > listselector: base/listselector.lzx 39a66 > treeselector: base/treeselector.lzx 40a68,75 > custombaseslider: charts/addon/slider/slider.lzx > rangeslider: charts/addon/slider/slider.lzx > simpleslider: charts/addon/slider/slider.lzx > sliderknob: charts/addon/slider/slider.lzx > ticks: charts/addon/slider/slider.lzx > xdragstate: charts/addon/slider/slider.lzx > basezoomarea: charts/addon/zoomarea.lzx > zoomarea: charts/addon/zoomarea.lzx 41a77 > barchartplotarea: charts/barchart/barchartplotarea.lzx 42a79,105 > columnchartplotarea: charts/columnchart/columnchartplotarea.lzx > axis: charts/common/axis.lzx > chart: charts/common/chart.lzx > databar: charts/common/databar.lzx > datalabel: charts/common/datalabel.lzx > datamarker: charts/common/datamarker.lzx > datapoints: charts/common/datapoints.lzx > datacolumn: charts/common/dataseries.lzx > dataseries: charts/common/dataseries.lzx > datatip: charts/common/datatip.lzx > horizontalaxis: charts/common/horizontalaxis.lzx > label: charts/common/label.lzx > legend: charts/common/legend.lzx > legenditem: charts/common/legend.lzx > marker: charts/common/legend.lzx > chartactionhelper: charts/common/rectangularchart.lzx > rectangularchart: charts/common/rectangularchart.lzx > tickmarklabel: charts/common/tickmarklabel.lzx > valueline: charts/common/valueline.lzx > valuepoints: charts/common/valuepoints.lzx > valueregion: charts/common/valueregion.lzx > verticalaxis: charts/common/verticalaxis.lzx > viewlistmanager: charts/common/viewspoolmanager.lzx > viewslist: charts/common/viewspoolmanager.lzx > viewspool: charts/common/viewspoolmanager.lzx > viewspoolmanager: charts/common/viewspoolmanager.lzx > virtualdrawview: charts/common/virtualdrawview.lzx 43a107 > linechartplotarea: charts/linechart/linechartplotarea.lzx 44a109,129 > piechartplotarea: charts/piechart/piechartplotarea.lzx > piepiece: charts/piechart/piepiece.lzx > axisstyle: charts/styles/chartstyle.lzx > basestyle: charts/styles/chartstyle.lzx > chartbgstyle: charts/styles/chartstyle.lzx > chartstyle: charts/styles/chartstyle.lzx > datastyle: charts/styles/chartstyle.lzx > datastylelist: charts/styles/chartstyle.lzx > labelstyle: charts/styles/chartstyle.lzx > linestyle: charts/styles/chartstyle.lzx > plotstyle: charts/styles/chartstyle.lzx > pointstyle: charts/styles/chartstyle.lzx > regionstyle: charts/styles/chartstyle.lzx > tickstyle: charts/styles/chartstyle.lzx > valuelinestyle: charts/styles/chartstyle.lzx > valuepointstyle: charts/styles/chartstyle.lzx > valueregionstyle: charts/styles/chartstyle.lzx > strokestyle: charts/styles/strokestyle.lzx > styleparser: charts/styles/styleparser.lzx > debugger_shadow_bottom: debugger/debugger.lzx > debugger_shadow_right: debugger/debugger.lzx 48a134,135 > netparam: extensions/av/rtmpconnection.lzx > netremotecall: extensions/av/rtmpconnection.lzx 52a140,141 > browser: extensions/test/html.lzx > textformat: extensions/views/LzTextFormat.lzx 59a149,152 > datepickercombobox: lz/datepicker.lzx > datepickerday: lz/datepicker.lzx > datepickerlistitem: lz/datepicker.lzx > datepickerweek: lz/datepicker.lzx 63a157,158 > gridcolumn: lz/gridcolumn.lzx > gridtext: lz/gridtext.lzx 67a163 > menuarrow: lz/menu.lzx 68a165,166 > menubutton: lz/menu.lzx > menufloatinglist: lz/menu.lzx 70a169 > mred: lz/mr-ed.lzx 80c179 < tabbar: lz/tabs.lzx --- > tab: lz/tabs.lzx 82a182,183 > tabsbar: lz/tabs.lzx > tabscontent: lz/tabs.lzx 91a193,195 > param: rpc/rpc.lzx > remotecall: rpc/rpc.lzx > rpc: rpc/rpc.lzx 97a202,205 > colormenu: utils/diagnostic/inspector/colormenu.lzx > colormenuitem: utils/diagnostic/inspector/colormenu.lzx > colorspot: utils/diagnostic/inspector/colormenu.lzx > colorbox: utils/diagnostic/inspector/inspector.lzx 98a207,209 > item: utils/diagnostic/inspector/inspector.lzx > propedit: utils/diagnostic/inspector/inspector.lzx > toggletext: utils/diagnostic/inspector/inspector.lzx 99a211 > constantboundslayout: utils/layouts/constantboundslayout.lzx 102a215 > simpleboundslayout: utils/layouts/simpleboundslayout.lzx 107a221 > resizestatemin: utils/states/resizestatemin.lzx From: P T Withington <ptw@pobox.com>
Subject: Re: How should auto includes be kept up to date? Date: Thu, 12 Jul 2007 11:53:43 -0400 Anyone have any thoughts on this? Should I make the build system automatically rebuild the autoincludes file so that any tag defined in components will auto-include itself? pro: you won't have to remember to do this by hand con: you may make a type-oh and get an auto-include rather than an error I don't understand how a typo could result in an auto-include... wouldn't there have to be a class in the components directory for that?
Exactly. Suppose someone creates a component tag named mred (vide supra), as an Easter Egg, which displays a picture of the horse Mr. Ed. If the auto-include mapping is computed directly from all tags defined in components, then if you have a program where you define a class, say:
<!-- Maximal Redundancy Detector --> <class name="mrd" ... /> but somewhere in your program you have a type-oh: <mred /> you will get a picture of Mr. Ed instead of an instance of your Maximal Redundancy Detector. You may be quite mystified as to why that has happened. Clearly there are other examples, more or less likely. If no one else is worried about that, I will install my auto-builder script. Personally, I think the benefits of auto-include outweigh the possible danger of the typo -- if I got the wrong class because of a typo, I think it would be easy enough to see my error.
Test case:
<canvas> <simpleboundslayout /> </canvas> Before fix, this results in a compiler error: simpleboundslayout.lzx:2:25: Could not find class definition for tag `simpleboundslayout` r7852 | ptw | 2008-01-18 09:10:19 -0500 (Fri, 18 Jan 2008) | 27 lines
Changed paths: M /openlaszlo/trunk/WEB-INF/lps/misc/lzx-autoincludes.properties A /openlaszlo/trunk/build-tools/build-autoincludes.sh M /openlaszlo/trunk/build.xml A /openlaszlo/trunk/lps/components/build.xml Change 20080116-ptw-P by ptw@dueling-banjos.local on 2008-01-16 14:45:41 EST in /Users/ptw/OpenLaszlo/ringding-clean for http://svn.openlaszlo.org/openlaszlo/trunk Summary: Generate autoincludes mapping from components Bugs Fixed: Technical Reviewer: philip@pbrdev.com (Message-Id: <20080118012600.56F3E56CF5@hemicuda.laszlosystems.com>) QA Reviewer: mkratt (pending) Details: build-autoincludes: Shell script to grep over components source, find the tags that are defined and create a table of tag -> source file. components/build.xml: Verify that file is up to date with components and fail the build if it is not (advising how to use the tool to update the file). build.xml: invoke components/build Tests: ant runlzunit, test case from Jira (trunk 4 local r7883 and build system r7882)
Error: /home/svnbuild/builds/7882-openlaszlo-trunk/lps/components/build.xml:50: lzx-autoincludes.properties is out of date with respect to components: run 'ant autoincludes' in the lps/components directory and check in the new version Changes broke nightly build system. r7884 | ptw | 2008-01-24 17:14:21 -0500 (Thu, 24 Jan 2008) | 19 lines
Changed paths: M /openlaszlo/trunk/lps/components/build.xml Change 20080124-ptw-t by ptw@dueling-banjos.local on 2008-01-24 17:08:27 EST in /Users/ptw/OpenLaszlo/ringding-clean for http://svn.openlaszlo.org/openlaszlo/trunk Summary: Disable checking uptodate of lzx-autoincludes.properties Bugs Fixed: Technical Reviewer: mamye@laszlosystems.com (pending) Details: The uptodate check does not work because svn does not preserve file dates. Disable it for now. Tests: Mamye will spin a build (trunk 4 local build r7915)
Ran test file in swf and dhtml in debug/no debug. Also checked lzx-autoincludes.properties. <canvas> <simpleboundslayout /> </canvas> |
||||||||||||||||||||||||||||||||||||||||||||||||||||||