Gaetano,

Le 16/02/10 19:35, Gaetano Giunta a écrit :
> Jérôme Renard wrote:
>> Gaetano,
>>
>> Le 16/02/10 17:50, Gaetano Giunta a écrit :
>>> Jérôme Renard wrote:
>>>> Hi Gaetano,
>>>>
>>>
>>> Hi JR, thanks for the quick reply.
>>
>> You are welcome.
>>
>> [...]
>>> I just read the instructions, and there are a couple of questions I have 
>>> that are not answered in there:
>>>
>>> - I have a trunk and many branches. Shall the ant files be put in
>>> /trunk/ant and /branches/2.0/ant
>>> or in
>>> /trunk/extension/ezoracle/ant and /branches/2.0/extension/ezoracle/ant
>>>
>>
>> You can have an ant/<extension.name>.properties file for each of your branch 
>> wether it is trunk/ branches/ or anything else.
>> Actually eZExtensionBuilder's build.xml file fetches the 
>> ${extension.name}.svn.url property so it is not a problem to create different
>> builds for different branches.
>>
>> For example you could get the following directory structure :
>>
>> myextension
>> ├── branches
>> │   ├── 1.0
>> │   │   └── ant
>> │   │       └── myextension.properties
>> │   └── 2.0
>> │       └── ant
>> │           └── myextension.properties
>> └── trunk
>>        └── ant
>>            └── myextension.properties
>>
>> As long as you build from the correct directory, it will work :)
>>
>>> - how about a max and min supported versions for ezp? In the example below 
>>> you specify a single ezp version, but my branch 2.0 is compatible with ezp 
>>> 4.0 to 4.2
>>> (and other branches have different compatibilities)
>>
>> Sounds like an interesting enhancement to me.
>>
>>>
>>> - what is the usage of the create.tarball setting?
>>
>> Some extensions require a tarball like ezsi or ezxmlexport for example.
>> If you set create.tarball to "yes" you will get a tarball once the build 
>> process is finished.
>>
>>>
>>> - can you give more details about management of packages?
>>>
>>
>> Note, here is how to get the list of available targets :
>>
>> 18:00 jer...@gimli~/work/www/php5/ezpublish/svn/trunk/extension/ezsi% ant -p 
>> -Dextension.name=ezsi
>> Buildfile: build.xml
>> eZExtensionBuilder build file
>> Main targets:
>>
>>     -build-dependency                  Builds a dependency
>>     -create-package-tarball            Creates a tarball of an ezpackage.
>>     -fail-if-file-empty                checks if a file exists but fails if 
>> it is empty
>>     all                                Build the extension and generate the 
>> tarball
>>     build                              Builds the extension
>>     build-dependencies                 Build dependent extensions
>>     check-gnu-files                    Checks for LICENSE and README files
>
> To be documented: where are these supposed to be

I added the doc about that in the build file, build.xml line 442 :

<!-- Checks for the presence of LICENSE and README files -->
<!-- These files must be located below the root directory of the extension -->

>
>>     check-sql-files                    Checks if a schema.sql / 
>> cleandata.sql is available for supported databases
>
> Same as above (btw, I thought we'df not settled up on a definitive dir for 
> those. good to see we have).

build.xml on line 322, I agree that should go in the README file :

<!-- Checks if a schema.sql file is present for -->
<!-- any supported database                     -->
<!--                                            -->
<!-- The accepted directory structure is :      -->
<!--                                            -->
<!-- myextension                                -->
<!-- `__ sql                                    -->
<!--     |__ mysql                              -->
<!--     |   |__ cleandata.sql                  -->
<!--     |   `__ schema.sql                     -->
<!--     |__ oracle                             -->
<!--     |   |__ cleandata.sql                  -->
<!--     |   `__ schema.sql                     -->
<!--     `__ postgresql                         -->
<!--         |__ cleandata.sql                  -->
<!--         `__ schema.sql                     -->

>
>>     clean                              Removes the entire build directory
>>     clean-all                          Removes the build/ and the dist/ 
>> directory
>>     coding-standards-check             Checks PHP code coding standard, 
>> requires PHPCodeSniffer
>
> I see this has not been implemnted yet.
> I think the best thing would be to integrate the sniffer defs from 
> http://svn.projects.ez.no/ezcodensiffer/
>

That was the original plan, but we did not had enough time to do it :'(

>>     create-package-tarballs            Creates tarballs for ezpackages.
>>     dist                               Creates a tarball of the built 
>> extension
>>     dist-clean                         Removes the generated tarball
>>     eznetwork-certify                  Runs the certification script, 
>> requires the latest eZNetwork extension
>>     generate-documentation             Generates the document of the 
>> extension, if created in RST
>>     generate-ezpackage-xml-definition  Generates an XML definition for eZ 
>> Publish extension package types
>>     generate-md5sums                   Generates an MD5 file with all md5 
>> sums of source code files
>>     help                               Shows this help
>>     init                               Prepares the extension to be built
>>     show-properties                    Shows the properties for this build 
>> file
>>     tests                              Launch unit tests if any
>>     update-ezinfo                      Updates ezinfo.php with correct 
>> version numbers
>
> To document: how is the line to be updated found (regexp used)

Added doc about it in build.xml, line 187 :

<!-- Uses a regular expression to search and replace the correct string         
  -->
<!-- Within the file, please note there is a limit of 25 sets to indent 3rd 
party -->
<!-- lib version numbers, if you use more than 25 spaces the version number 
will  -->
<!-- not be updated correctly                                                   
  -->

>
>>     update-license-headers             Update license headers in source code 
>> files
>>     update-package-xml                 Updates version numbers in package.xml
>
> To do (could not find it yet in build.xml): add a target to update a variable 
> list of files setting the version number, ezp version number and license - 
> see as
> an example of file to be patched: 
> http://svn.projects.ez.no/ezoracle/branches/2.0/extension/ezoracle/INSTALL
>

BTW I forgot to tell you there is a "secret" feature. Sometimes you want to 
exclude a specific file or a list of specific
file from the build so what you can do is to create a ant/files.to.exclude.txt 
and it is explained how to use it in build.xml line 110 :

<!-- in order to get directory removed they must be appended with a '/' -->
<!-- for example -->
<!-- ezinfo.php  -->
<!-- tests/      -->

[...]
>> No, not yet, it already took us (oms and me) quite a while to port the 6000 
>> lines shell script
>> we used to use to build eZ Publish to its Ant equivalent so we focused on 
>> MySQL.
>>
>
> Nice to see it shrank to 700 lines!

Yes, me too. Unfortunately I lost too much hair during this port and they will 
not come back ^_^

-- 
Jérôme Renard
[email protected] | eZ systems France | http://ez.no
-- 
Sdk-public mailing list
[email protected]
http://lists.ez.no/mailman/listinfo/sdk-public

Reply via email to