development

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
development [22-04-2008 13:26]
cwacha
development [28-06-2020 21:50] (current)
cwacha [Creating a New Release from Development Code]
Line 2: Line 2:
 {{develop1.png?nolink}} {{develop1.png?nolink}}
  
-==== Source Code & Version Control ====+===== Source Code & Version Control =====
  
 The source code for this project is currently hosted at [[http://sourceforge.net/|SourceForge.net]]. The source code for this project is currently hosted at [[http://sourceforge.net/|SourceForge.net]].
Line 18: Line 18:
 To checkout the newest development version, enter the following command on the commandline To checkout the newest development version, enter the following command on the commandline
  
-  svn co https://iaddressbook.svn.sourceforge.net/svnroot/iaddressbook/trunk iaddressbook-dev+  svn co https://svn.code.sf.net/p/iaddressbook/code/trunk iaddressbook-dev
  
-==== Testing ====+===== XML-RPC API ===== 
 + 
 +[[docs:xmlrpc|The XML-RPC API has its own page here]] 
 + 
 +===== Testing =====
  
 The following vCards were used for all testing. They were created with the AddressBook application found in Mac OS X. All fields have been used to create a maximum stress situation for the parser and the database. The following fields are ignored during the import: The following vCards were used for all testing. They were created with the AddressBook application found in Mac OS X. All fields have been used to create a maximum stress situation for the parser and the database. The following fields are ignored during the import:
Line 38: Line 42:
  
  
-==== Translation ====+===== Translation =====
  
-Translation into other languages is very easy. Every language definition is stored in a **php**-file which resides in a separate folder for every language below the **//lang//** folder. Example: **//lang/en/lang.php//** contains the english language strings. The folder names for languages are in 2-letter ISO format (en = english, de = german, it = italian etc.).+Translation into other languages is very easy. Every language definition is stored in a **php**-file which resides in a separate folder for every language below the **//lib/lang//** folder. Example: **//lib/lang/en/lang.php//** contains the english language strings. The folder names for languages are in 2-letter ISO format (en = english, de = german, it = italian etc.).
  
 <note important> <note important>
Line 65: Line 69:
 </code> </code>
  
-==== Analysis ====+===== Templates ===== 
 + 
 +This section describes the HTML template that is currently used. In the current state the template system should be flexible enough to allow you to design a look and feel as you like (and not as the template system likes). 
 + 
 +The template files have the file ending ''.tpl''. The main file that keeps it all together is called **main.tpl**. 
 + 
 +  main.tpl 
 +     | 
 +     +- search.tpl 
 +     | 
 +     +- tpl_showcontactlist() 
 +       +- contactlist.tpl 
 +           +- tpl_contactlist() 
 +               +- contactlist_item.tpl 
 +     | 
 +     +- tpl_showperson() 
 +         +- person_empty.tpl 
 +         | 
 +         +- person.tpl 
 +           +- tpl_addresses() 
 +             +- address.tpl 
 +           | 
 +           +- tpl_phones() 
 +             +- phone.tpl 
 +           | 
 +           +- tpl_emails() 
 +             +- email.tpl 
 +           | 
 +           +- tpl_chathandles() 
 +             +- chathandle.tpl 
 +           | 
 +           +- tpl_urls() 
 +             +- url.tpl 
 +           | 
 +           +- tpl_relatednames() 
 +         | 
 +         +- person_edit.tpl 
 +             +- tpl_include() 
 +               +- person_edit_phones.tpl 
 +             | 
 +             +- tpl_include() 
 +               +- person_edit_emails.tpl 
 +             | 
 +             +- tpl_include() 
 +               +- person_edit_urls.tpl 
 +             | 
 +             +- tpl_include() 
 +               +- person_edit_relatednames.tpl 
 +             | 
 +             +- tpl_include() 
 +               +- person_edit_chathandles.tpl 
 +             | 
 +             +- tpl_include() 
 +                 +- person_edit_addresses.tpl 
 + 
 + 
 + 
 +  * //tpl_showcontactlist()// creates the list of contacts. It basically just inserts the file **contactlist.tpl** 
 +  * //tpl_contactlist()// iterates over all contacts and outputs one **contactlist_item.tpl** per contact. 
 + 
 + 
 +  * All other functions work the same way, you should get the hang of it. Remark that **person_edit.tpl** does not call any //tpl_functions// since i thouhgt it would be easier to just inline all the code. Other suggestions are welcome. I have never done a template system before, so it might still have some inconsitencies. 
 + 
 + 
 +===== Analysis =====
  
 I was looking for a possibility to display and manage all my contacts with a web based application. Prior to writing this program I checked the web for already existing solutions and found none of them fitting my needs. I wanted the following features to be present: I was looking for a possibility to display and manage all my contacts with a web based application. Prior to writing this program I checked the web for already existing solutions and found none of them fitting my needs. I wanted the following features to be present:
Line 77: Line 145:
 This is a MUST-HAVE list. My personal addresses are normally stored inside Apples AddressBook which I find to perfectly fit all my needs. I thought that a web based equivalent, that behaves pretty much the same would be very cool. This is a MUST-HAVE list. My personal addresses are normally stored inside Apples AddressBook which I find to perfectly fit all my needs. I thought that a web based equivalent, that behaves pretty much the same would be very cool.
  
-=== Existing Work ===+==== Existing Work (as of 2007) ====
  
 This is a list of all PHP addressbook applications I found on the web including a short comment why they did not fit my needs. This is a list of all PHP addressbook applications I found on the web including a short comment why they did not fit my needs.
Line 97: Line 165:
 //The Address Book// from http://www.corvalis.net/address/ looked pretty good. It was the only solution that came pretty close to what I wanted. I downloaded the code and started analysing it in the hope I could enhance it a little bit. The problem with this product is that it obviously lacks some  application design. Code and HTML are not separated. No use of functions. MySQL support is hardcoded. No abstraction of contacts, addressbook and data display. It gave me the impression of a very professional *hack* :-) I could do this better and that is the reason why I started yet another address book. //The Address Book// from http://www.corvalis.net/address/ looked pretty good. It was the only solution that came pretty close to what I wanted. I downloaded the code and started analysing it in the hope I could enhance it a little bit. The problem with this product is that it obviously lacks some  application design. Code and HTML are not separated. No use of functions. MySQL support is hardcoded. No abstraction of contacts, addressbook and data display. It gave me the impression of a very professional *hack* :-) I could do this better and that is the reason why I started yet another address book.
  
-==== Creating a New Release from Development Code ==== +===== Creating a New Release from Development Code =====
- +
-  * update version number +
-  * remove /conf/config.php +
-  * remove /conf/auth.php +
-  * disable translator.php +
-  * request updates from translators +
-  * update /README.txt +
-  * adjust /INSTALL.txt if necessary +
-  * adjust /addressbook.sql if necessary +
-  * adjust /sqlite/* schemas and db if necessary+
  
 +  * update ''src/VERSION''
 +  * adjust ''src/lib/sql/*.sql'' schemas and db if necessary
 +  * update ''src/README.txt'' and ''src/INSTALL.txt''
 +  * run ''pkg/pkgmake.sh all''
 +  * run ''pkg/pkgmake.sh deploy''
 +  * final test in DEV
 +  * git tag -a -m "releasing version 4.1.0" release-v4.1.0
 +  * git push origin --tags
 +  * run ''pkg/pkgmake.sh all''
 +  * run ''pkg/pkgmake.sh deploy'' to DEV site (again)
 +  * Draft new release in github (Release title: iaddressbook-4.1.0-191)
 +  * Upload artifacts to github release
 +  * adjust [[download]] and [[changelog]]
 +  * run ''pkg/pkgmake.sh deploy'' to DEMO site
  
-~~DISCUSSION:off~~ 
  • development.1208863580.txt.gz
  • Last modified: 17-11-2016 12:33
  • (external edit)