[Laszlo-dev] how does autoinclude work now?

P T Withington ptw at pobox.com
Sun Apr 5 19:56:51 PDT 2009


I didn't mean to cast aspersions.

In the 1-3 era, there was a much larger team devoted to maintaining  
the components, including an 'editor' who could make judicious  
decisions about what should be auto-included.  The tool that Henry  
wrote was in response to many bug reports about components that were  
not auto-included, the diminished team (who were not able to explain  
the editorial choices), the addition of components by people who did  
not know of the existence of the auto-include mechanism, and, the lack  
of an editor to ask for guidance.

The tool can at least give a list of what you _might_ want to auto- 
include.  There still needs to be a human in the loop to make  
editorial decisions as to what _should_ actually be included.

We would be happy to accept input from the community on this task,  
especially yours.

On 2009-04-05, at 22:33EDT, Sarah Allen wrote:

> This file used to be maintained carefully by hand, with editorial  
> choices about what was auto-included (at least in the LPS v1.x-3  
> era).  Now it appears (based on Henry's synopsis) that there are  
> components included without much intention.
>
> I guess if I have new components, I run the tool, examine the diffs,  
> edit out anything I don't want and check it in?
>
> On Apr 5, 2009, at 12:04 PM, P T Withington wrote:
>
>> Executive summary:
>>
>> This file used to be maintained haphazardly by hand.
>>
>> We now have a tool that gives you a comprehensive list of candidate  
>> tags -> include mappings for you to examine.
>>
>> But you still have to maintain it by hand.  Please don't just check  
>> in the output of the tool.  The tool output is for your guidance  
>> only.  If it makes additions or deletions you cannot understand,  
>> please don't check them in.
>>
>> On 2009-04-05, at 14:12EDT, Henry Minsky wrote:
>>
>>> There's a script in build-tools/build-autoincludes.sh, that gets  
>>> called by
>>> the ant taskin lps/components, "ant autoincludes".
>>>
>>> It scans a list of every file in the lps/components directory,  
>>> except for a
>>> specific list of
>>> directories not to include
>>>
>>>
>>> (cd ${LPS_HOME}/lps/components; find . -name '*.lzx' -not -path
>>> '*/incubator/*' \
>>>                                    -not -path '*/queens-charts/*' \
>>>                                    -not -path '*/utils/performance/ 
>>> *' \
>>>                                    -not -path
>>> '*/utils/diagnostic/inspector/*' \
>>>                                    -not -path '*/debugger/*' \
>>>                                    -not -path '*/extensions/views/ 
>>> *' \
>>>                                    -not -path
>>> '*/extensions/av/videoslider.lzx' \
>>>                                    -not -path '*/rpc/ajax.lzx' \
>>>                                    -not -path '*/debugger/*' \
>>>                                    -not -path '*/lzunit/*' \
>>>                                    -print | \
>>> "${JAVA_HOME}/bin/java" ${JAVA_OPTS} -DLPS_HOME="${LPS_HOME}" -cp  
>>> "$LZCP"
>>> org.openlaszlo.utils.BuildAutoincludes "$@"
>>> )
>>>
>>> The tool itself scans a single .lzx file, looking for <class> and
>>> <interface> declarations, and adding anything
>>> that is declared.
>>>
>>> I think I need to  modify this tool to only scan files which are  
>>> <library>
>>> definitions, because there are
>>> a couple of <canvas> files in there getting scanned I think.
>>>
>>> Further, I think it is catching too much stuff this way, it might  
>>> be that we
>>> want to only have classes picked up which are preceded by some  
>>> special
>>> comment like <!-- autoincludes=true --> or something, to have more  
>>> control.
>>> For example, I think it may be a mistake to include all the  
>>> "base*" classes,
>>> since those would only be used by people who are building their own
>>> components, and thus would be expected to
>>> know which files need to be explicitly included to build their app/ 
>>> library.
>>>
>>> Currently, the build tool actually ignores any classes which start  
>>> with "_",
>>> assuming they are
>>> internal classes that don't want to be exposed, but I think we  
>>> really ought
>>> to be more explicit about
>>> what goes into the autoincludes file.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Sun, Apr 5, 2009 at 12:53 PM, Sarah Allen  
>>> <sarah at ultrasaurus.com> wrote:
>>>
>>>> Henry, or whoever knows,
>>>>
>>>> How does the auto-include mechanism work now?  (apologies if this  
>>>> is
>>>> documented somewhere, if so, just point me there).  For context,  
>>>> I'm working
>>>> to make the videoplayer more skinnable (using the scrollbar  
>>>> methodology
>>>> where there are some more granular classes you can put together  
>>>> differently
>>>> if you want).  Do I need to add these to a list somewhere?  and  
>>>> what part of
>>>> the build process re-generates the lzx-autoincludes.properties  
>>>> file?
>>>>
>>>> Thanks,
>>>> Sarah
>>>>
>>>
>>>
>>>
>>> -- 
>>> Henry Minsky
>>> Software Architect
>>> hminsky at laszlosystems.com
>>
>



More information about the Laszlo-dev mailing list