Bijdragen aan EekBoek

Uit EekBoek
Naar navigatie springenNaar zoeken springen

U kunt uw eigen ervaringen delen met de andere gebruikers door handige tips en technieken op deze wiki te plaatsen. Laat weten wat u van EekBoek vindt, onder het motto “niet tevreden, zeg het ons -- wel tevreden, zeg het anderen”.

Schema's en administratie-sjablonen

Sinds versie 2 kunnen automatisch administraties worden aangemaakt aan de hand van sjablonen. Een bibliotheekje van sjablonen waarmee startende gebruikers kunnen beginnen zou waardevol zijn. Als u een specifieke administratie heeft opgezet die wellicht ook voor anderen bruikbaar zou zijn, laat dat dan even weten op de mailing list.

Aanpassingen en uitbreidingen aan de programma's

EekBoek is een open source programma. De EekBoek-licentie is GPL, wat er in het kort op neer komt dat de broncode volledig vrij is en u er mee kan doen wat u zelf wilt, zolang u niemand anders belemmert om hetzelfde te doen wat u heeft gedaan.

EekBoek wordt ontwikkeld op git, een gedistribueerd version control systeem. U kunt een lokale kopie maken van de repository met het volgende commando:

git clone git://eekboek.git.sourceforge.net/gitroot/eekboek/eekboek

Hiervoor moet git geinstalleerd zijn. Kijk voor meer informatie op GitRepository.

Als u zelf aanpassingen heeft gemaakt is het natuurlijk fijn om deze ook weer terug te geven aan de EekBoek community, want dan kunnen anderen er ook van profiteren:

  • Gevonden problemen en gewenste uitbreidingen kunt u aanmelden bij de trackers, zodat we allemaal weten wat er speelt.
  • Gebruikstips en workarounds kunnen het beste worden geplaatst op Gebruikstips.
  • Gebruik de eekboek-devel mailing list (niet eekboek-users) om deze te bespreken.

Voor het aanleveren van patches gelieve het volgende in acht te nemen:

  • 'unidiff' is het geprefereerde formaat, kortweg gezegd: +/- is goed, >/< is slecht; in de shell is dit "diff -c file_old file_new" of "diff -u file_old file_new"
  • geef aan op welke versie van EekBoek de patch is gebaseerd
  • geef een korte beschrijving van wat de patch doet of welk probleem (tracker nummer) de patch oplost

Indien mogelijk patches graag laten vergezellen van een test case. In de t/ directory van de EekBoek source kit zit een aantal tests als voorbeeld en ter inspiratie.

Omdat veel aspecten van een boekhoudkundig proces moeilijk te vangen zijn in simpele test cases, zijn losse tests niet altijd mogelijk. De geïntegreerde functionaliteit wordt getest in de ivp (installatie-verificatie procedure) tests. Deze tests kunnen dan worden uitgebreid om ook de nieuwe functionaliteit mee te nemen. Kijk voor meer informatie op pagina Testen.

Coding conventions

Coding conventions zijn regels die programmeurs hanteren om de code beter leesbaar en beter onderhoudbaar te maken. Deze paragraaf behandelt de coding conventions voor Eekboek.

Variables

$data =
  { %$data,
    author          => 'Johan Vromans (jvromans@squirrel.nl)',
    abstract        => 'Elementary Bookkeeping (for the Dutch/European market)',
  • Variabele namen zijn in lowercase
  • Opening brace ({) van een variabele staat op de volgende regel
  • Indent is twee spaties
  • De values van de key-value pairs zijn uitgelijnd

Functions

sub vcopy {
    my (%ctrl) = @_;

Voor functies, zoals de bovenstaande vcopy, gelden de volgende conventions:

  • De opening brace ({) staat op dezelfde regel als de functienaam
  • De indent is 4 spaties

SQL

my $sql = "SELECT * INTO TEMP TAccounts FROM Accounts WHERE acc_id = 0";

Voor SQL code dienen de reserved words, zoals SELECT, UPDATE, DELETE, FROM, WHERE, GROUP BY, ORDER BY etc, in uppercase te staan.

Release conventies

De release nummering van eekboek is conform het volgende formaat: x.y.z, waarbij:

  • x: major releases bestaande uit belangrijke nieuwe of gewijzigde functionaliteit
  • y: minor releases bestaande uit nieuwe of gewijzigde functionaliteit, welke niet tot de hoofd functionaliteit behoort; indien het minor release nummer kleiner is dan 10, dan wordt er een voorloopnul gebruikt.
  • z: bug release; indien het bug release nummer kleiner is dan 10, dan wordt er een voorloopnul gebruikt.

Voor ontwikkelaars en testers:

  • x.even.even = release (b.v. 2.00.04)
  • x.oneven = ontwikkelbranch
  • x.oneven.even = snapshot (b.v. 2.01.06)
  • x.oneven.oneven = ontwikkelversies (b.v. 2.01.07)

Zo is 2.01.06 is een snapshot. Als je die uit git haalt moet je expliciet de tag R02_01_06 meegeven anders krijg je de huidige ontwikkelversie (met tag R02_01_07).

Vertalingen

EekBoek is in het nederlands geschreven, dat wil zeggen dat de termen op het scherm nederlandstalig zijn. U kunt EekBoek gebruiken in een taal van uw keuze. Zo is er bijvoorbeeld al een engelstalige versie. Voor het bijdragen aan vertalingen, kijk op de pagina Vertalingen.

Testen

Tijdens de installatie van EekBoek wordt een zogenaamde installatie verificatie procedure (ivp) uitgevoerd. Hoewel deze test technisch van aard is, wordt er ook een aantal functionele zaken getest, zoals het opvoeren van boekingen en het rapporteren van balansen en resultaatrekeningen. In principe wordt voor iedere nieuwe functionaliteit een nieuwe test toegevoegd, zodat de applicatie alle bestaande en nieuwe functionaliteit correct ondersteund. Voor meer over hoe bij te dragen aan de testen van EekBoek, kijk op de pagina Testen.