nyuuzyou/wikis huggingface dataset:
DB Schema

Logical schema diagrams are (or were) written for the following versions: 
* http://schema.koha-community.org/main
* http://schema.koha-community.org/16_11/
* http://schema.koha-community.org/16_05/
* http://schema.koha-community.org/3_22/
* http://schema.koha-community.org/3_20/
* http://schema.koha-community.org/3_18/
*There are some inconsistencies or mistakes in Koha 3.6 database. They are listed on this page
Previous versions: 
*3.0.3 by Matteo Romanello. It is a work done with the software SchemaSpy. There are two packages: 
**The first has only the Koha logical schema. This zip files is 9,9 MB.
**The second has Koha logical schema and also the instructions to update documentation. This zip file is 10,2 MB. 
*3.0.1 by Joe a partial 3.0.1 diagram as PNG image. 
*3.0 by Paul. It's a 2 page document. You can see the general overview of Koha DB. Available in some forms: openoffice.org (15KB), PDF (287 KB) It will be updated when needed (Paul will take care of the update. If he don't, bug him) 
*2.2.0 by Paul. It's a 2 page document. ZIP file (100 KB) 
*2.0.0 by Paul. It's a 2 page document. ZIP file (150 KB) 
*Some draft 'logical' schema diagrams from 1.3.3 are available here
Note that some of these links need to be updated.
== Sectorial Schemas ==
There are written also more little schemas to describe only a section of the mysql DB.
ATTENTION: Those schemas display also implied relations, but to show them with MySQL Workbench
you need to add a explicit foreign key link.
NOT USE theme to create Koha SQL file.
*Acquisition schema relations pdf file 3.14.x (Tajoli - HackFest march 2014)
*Acquisition schema done with MySQL Workbench zip file 3.14.x (Tajoli - HackFest march 2014)
Category:Development Category:Resources
DRuthB Proposal for TM-3.12

== Overview ==
I recently had opportunity to work with a group of folks who want Koha to work better in Arabic, which is one of a small number of right-to-left languages that are nominally supported in Koha. The work I did there uncovered a number of other problems with Koha's I18N/L10N features and the translation process as it currently exists. As Translation Manager, I would like to focus some of my time and attention to these matters, while continuing the growth of translation of Koha and its' documentation.
== Goals ==
* Operate a Pootle server for the benefit of translators; discuss with active translators how/if this can be improved over existing processes.
* Work with the Documentation Manager on how to get the manual and database docs translatable.
* Discuss with translation leaders how to encourage more (and ever-higher-quality) translators to start working on Koha.
* Work out methods for more-rigorous testing of .po files against the current template set before each release, so that (as happened in 3.8.0, Arabic) we don't have a situation where the translation script *fails* due to ill-formatted translation files. Automate this as much as possible.
* Focus development time on Koha bugs related to internationalization, with particular attention paid to:
** 7465
** 7789
** 7934
** 7939
** 8044
** 8061
** 8067
** 8070
Category:3.12
Database row format

When upgrading Koha to versions newer than 20.05, some users see database errors like "Row size too large". This is typically due to an old database row format being used. You want to be using "DYNAMIC" rather than "COMPACT" or "REDUNDANT". 
If you've set up a new database server, you're unlikely to see this problem. But if you're using an old database server or have upgraded your database from old versions to newer versions, then you might have this problem.
Here is a script to resolve the problem by converting all row formats to "DYNAMIC". It takes a while to run. Afterwards, you should not see the "Row size too large" while upgrading.
#!/usr/bin/env sh
# Automatically fix row formats for all tables in a Koha database
# See:
# - https://wiki.koha-community.org/wiki/Database_row_format
# - https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=28267
# - https://mariadb.com/kb/en/troubleshooting-row-size-too-large-errors-with-innodb/
set -eu
INSTANCE="$1"
DB_NAME="koha_$INSTANCE"
echo "Fixing row formats for koha instance $INSTANCE in database $DB_NAME ..."
TABLES_QUERY="SELECT table_name FROM information_schema.tables WHERE engine = 'InnoDB' AND row_format IN('Redundant', 'Compact') AND table_schema = '$DB_NAME';"
TABLES="$(mysql --batch --skip-column-names --execute="$TABLES_QUERY")"
for TABLE in $TABLES
do
 echo "Converting $TABLE to DYNAMIC row format ..."
 mysql --execute="ALTER TABLE $DB_NAME.$TABLE ROW_FORMAT=DYNAMIC;"
done
Script usage:
$ ./FILENAME.sh INSTANCE
An alternate script you can run from koha-shell would be:
#!/usr/bin/env perl
use Modern::Perl;
use C4::Context;
use feature 'say';
my $db = C4::Context->config("database");
my $dbh = C4::Context->dbh;
my $sth = $dbh->prepare("SELECT table_name FROM information_schema.tables WHERE engine = 'InnoDB' AND row_format IN('Redundant', 'Compact') AND table_schema = '$db'");
$sth->execute();
while ( my $row = $sth->fetchrow_hashref() ) {
 my $table = $row->{table_name};
 print "Working on $table....";
 $dbh->do(qq{ALTER TABLE $db.$table ROW_FORMAT=DYNAMIC});
 say "done!";
}
For more in-depth information about this problem, see:
* Troubleshooting Row Size Too Large Errors with InnoDB from the MariaDB knowledge base
* Bug 28267 - Older databases fail to upgrade due to having a row format other than "DYNAMIC" on Bugzilla
Debugging in VIM

= Debugging Perl CGI mode with VIM =
== Install the plugin VIM Vdebug ==
With pathogen
* Download the plugin
cd ~/.vim/bundle
git clone https://github.com/joonty/vdebug.git
* Add the following line to vimrc
call pathogen#helptags()
* You can now access Vdebug using the following command
:h Vdebug
Note:Vdebug require vim with compiled in python support. If you're useing Debian Wheezy, then the 'default' vim package does not have this. You can try vim-nox instead ;)
== Install Perl module "remote debugging" ==
This module is provided by ActiveState at the following address 
wget http://downloads.activestate.com/Komodo/releases/archive/4.x/4.4.1/remotedebugging/Komodo-PerlRemoteDebugging-4.4.1-20896-linux-x86.tar.gz
tar xzf Komodo-PerlRemoteDebugging-4.4.1-20896-linux-x86.tar.gz
== Edit the Apache vHosts ==
It is necessary to add some environment variables and change the PERL5LIB variable in the virtualhost:
SetEnv PERL5LIB "/home/koha/src:/home/koha/Komodo-PerlRemoteDebugging-4.4.1-20896-linux-x86"
SetEnv PERL5DB "BEGIN { require q(/home/koha/Komodo-PerlRemoteDebugging-4.4.1-20896-linux-x86/perl5db.pl)}"
SetEnv PERLDB_OPTS "RemotePort=localhost:9000"
SetEnv DBGP_IDEKEY "whatever"
SetEnv PERL5OPT "-d"
Remote Debugging won't work under plack; you'll also have to disable plack in the virtualhost as well.
Disable Plack
Restart Apache
== Start a debug session ==
In Vim, open the perl script to debug and press <F5>.
From there, you have 20 seconds to launch the web page through a browser.
If all went well, 3 new windows open in Vim: you are in debug mode! 
== Commands available to you in debug mode ==
<F2> Step over
<F3> Step in
<F4> Step out
<F5> Run
<F6> Stop/Close
<F9> Run to cursor
<F12> Evaluate variable under cursor
See :h Vdebug for more information
= Configuration under kohadevbox =
Before you run vagrant up, make the following changes to vars/user.yml:
plack: false
# ...
extra_tools:
 - vim
# ...
editor: vim
If you're changing an existing kohadevbox, run
vagrant up --provision
Neither the Vdebug vim plugin, nor the PerlRemoteDebugging script are installed (
yet). The steps for installation are the same as above, but should be installed under the vagrant user. You *will* have to install vim-nox:
sudo apt-get install vim-nox
Edit /etc/apache2/sites-enabled/kohadev.conf:
Comment out apache-shared-opac-plack.conf and apache-shared-intranet-plack.conf if they're not commented out already.
Replace SetEnv PERL5LIB line in both the opac and staff sections with the following lines:
 SetEnv PERL5LIB "/home/vagrant/kohaclone:/home/vagrant/Komodo-PerlRemoteDebugging-4.4.1-20896-linux-x86"
 SetEnv PERL5DB "BEGIN { require q(/home/vagrant/Komodo-PerlRemoteDebugging-4.4.1-20896-linux-x86/perl5db.pl)}"
 SetEnv PERLDB_OPTS "RemotePort=localhost:9000"
 SetEnv DBGP_IDEKEY "whatever"
 SetEnv PERL5OPT "-d"
Category:Technical
Developers IRC Meeting, August 31, 2007

== Developers Meeting August 31st, 2007 ==
Place: irc.katipo.co.nz #koha
Time: 16:00 GMT: http://tinyurl.com/2bteuw
=== Database Design (10 minutes) ===
* Installer SQL should not cause FOREIGN KEY violations -- MJ's response to Bug 1386
* remove all SQL92 keywords as field names
* SET SQL_MODE='ANSI_QUOTES'
* Design for date field with NULL rather than '0000-00-00'
* no quotes around integer values (default '0' becomes default 0
=== Database Maintenance ( 10 minutes ) ===
* best way to maintain an authoritative database definition
* role of updatedatabase
* best way to handle upgrades from 2.2, etc.
* best way to handle upgrades from 3.0 to 3.1
NOTES:
Paul's technique for version control includes adding:
 $DBversion = "3.00.00.003";
 if (C4::Context->preference("Version") < TransformToNum($DBversion))
 {
 $dbh->do("create the tables we need for label management");
 }
I'd like to decide on a clear set of steps for how to maintain SQL in
Koha -- one thing I agree with MJ on, is that one person should
maintain the SQL. Also, I think there should only be one authoritative
source for the SQL structure definition (kohastructure.sql) and there
should be a way to 'prove' that updatedatabase (or whatever replaces
it) is identical to the official structure.
Secondly, I think we need to discuss the versioning scheme that's in
place a bit. For one, we've not yet released 3.0 yet, so it should be
starting at 2.9.
=== Table Walk Through ( 40 minutes ) ===
* walk through the database tables one by one
Category:Developers_IRC_Meetings
Developers IRC Meeting, February 25, 2014

Email sent to koha-devel:
 Hi,
 
 I am calling a development meeting for Tuesday, 25 February 2014, to
 be held in the #koha IRC channel. All are welcome, but the focus will
 be on development topics. Tentatively, I would like to discuss the
 following topics:
 
 - DBIx::Class and guidelines for its use in Koha
 - Search engine work, including enhancements to usage of Zebra and
 Elastic Search
 - Pending large enhancements for 3.16
 
 The agenda is being kept intentionally short to permit an in-depth
 discussion of each item, but if there is a topic that you want to be
 covered and which requires the participation of most or all of the
 active developers, please let me know.
 
 To permit everybody to participate, I propose that we effectively meet
 /twice/ that day.
 
 15:00 UTC+0 (http://www.timeanddate.com/worldclock/fixedtime.html?msg=xxx&iso=20140225T15)
 
 and
 
 21:00 UTC+0 (http://www.timeanddate.com/worldclock/fixedtime.html?msg=xxx&iso=20140225T21)
 
 I will be attending both parts, of course, and will try to act as a
 bridge between the two sessions.
 
 Regards,
 
 Galen
== Attending ==
I can't attend the first one, its 4am nz time, but will try for the second one. --Chris 16:07, 24 February 2014 (EST)
I will try to attend both meetings. --Kfischer 07:26, 25 February 2014 (EST)
== Agenda ==
===Elasticsearch===
Work for this is well underway already, we have indexing going and a basic search.
We are working on a Browse (the library kind of browse, not one that actually makes sense to anyone except libraries :)) search now and aim to have it all up on a server for playing with at the hackfest.
===DBIx::Class (aka DBIC)===
Coding guideline SQL8 forbids SQL statements in .pl files. Using DBIC is an alternative to writing SQL. So should we ban the use of DBIC from .pl files too, and just use it in subroutines in C4/* and Koha/*? --Magnus 03:12, 25 February 2014 (EST)
===Pending Large Enhancements===
...
===Minutes===
==First session==
* Minutes: http://meetings.koha-community.org/2014/koha_dev_meeting__25_february_2014_15_00_utc.2014-02-25-14.59.html
* Minutes (text): http://meetings.koha-community.org/2014/koha_dev_meeting__25_february_2014_15_00_utc.2014-02-25-14.59.txt
* Log: http://meetings.koha-community.org/2014/koha_dev_meeting__25_february_2014_15_00_utc.2014-02-25-14.59.log.html
==Second session==
* Minutes: http://meetings.koha-community.org/2014/koha_dev_meeting__25_february_2014_21_00_utc.2014-02-25-21.01.html
* Minutes (text): http://meetings.koha-community.org/2014/koha_dev_meeting__25_february_2014_21_00_utc.2014-02-25-21.01.txt
* Log: http://meetings.koha-community.org/2014/koha_dev_meeting__25_february_2014_21_00_utc.2014-02-25-21.01.log.html
Category:Developers_IRC_Meetings
Developers IRC Meeting, February 7, 2007

* News and Introductions
* Koha 2.2.8 release schedule, feature freeze and installer
* Koha rel_3 status
** web installer some design options questions + some data input questions. (HDL)
** what to do with HEAD & rel_3_0
* SQL version of rel3 or backport improvements to rel2_2?
Category:Developers_IRC_Meetings
Developers IRC Meeting, July 2, 2007

== Agenda for Koha Developers' Meeting for July 2, 2007 ==
Time: 19:00 GMT: http://tinyurl.com/3ajpxh
Place: irc.katipo.co.nz #koha
Moderated by: Joshua Ferraro
* Introductions, general news - 10 minutes
* Open Positions in the Community - 15 minutes
** Kaitiaki - Guardian of the Project
** Documentation Manager
** Quality Assurance Manager
** Translations Manager
** FAQ Manager
* Git - Chris explains how it will work - 20 minutes
* Release of 3.beta - 15 minutes
** goal is to release it in July
** discuss what we need to do before it can be released
* Koha and Copyright - 15 minutes
** thd sent through some clarification on copyright to help us understand the issues 
** http://lists.gnu.org/archive/html/koha-devel/2007-07/msg00001.html (section 5)
* Koha 3.0 installer - 15 minutes (will probably be a discussion for slef and kados later in the day, but any feedback before then would be useful)
* Improving the koha.org website (if we have time, probably move to next mtg) - 15 minutes
** multi-lingual, more user interaction
** encouraging participation in the community
** forums?
Category:Developers_IRC_Meetings
Developers IRC Meeting, June 18, 2007

== Koha Developers' Meeting for June 18, 2007 ==
Moderated by: Joshua Ferraro
* Introductions, general news - 10 minutes
* Git - A distributed version control system
* Koha 3.0 -- a plan for release - 15 minutes
* Koha 2.2 -- will 2.2.10 be based on rel_2_2? - 15 minutes
* Open Positions in the Community - 15 minutes
** Kaitiaki - Guardian of the Project
** Documentation Manager
** Quality Assurance Manager
** Translations Manager
* Copyright Notation in the code, conventions - 5 minutes
* Moving the IRC channel to freenode - 3 minutes
* Improving the koha.org website - 15 minutes
** multi-lingual, more user interaction
** encouraging participation in the community
** forums?
* %%OpenCataloger%% -- a new MARC editor - Toins and Paul - 10 minutes
Category:Developers_IRC_Meetings
Developers IRC Meeting, March 12, 2007

* user flags duplicate every time installer is run
* sys prefs duplicate every time installer is run
* bibliothesaurus table had a fulltext index, is it OK it's removed?
* how to signal that the install's already been done
* will web installer be used to handle upgrades?
* Where to put images for the installer?
* how to fix platform dependent code
* how to prevent opac and intranet from being visible before installer is run
Category:Developers_IRC_Meetings
Developers IRC Meeting, March 12 2014

=== Place ===
The #koha IRC channel (IRC server irc.oftc.net).
If you don't have an IRC client you can join the meeting using your web browser.
=== Time ===
* March 12 2014, 15UTC Time and Date.com converter for various local times
* March 12 2014, 21UTC Time and Date.com converter for various local times
=== Agenda ===
* Introductions (please use "#info" in front of your introduction to have it show up in the automatic minutes) 
* Update from Hackfest
* Performance
** What is the state of Plack for the Intranet? 
** Can we get some working Plack config into Koha? 
** Could http://git.catalyst.co.nz/gw?p=koha-plack.git;a=summary be integrated into Koha? And extended for the Intranet? 
** Should performance be an issue during the QA process? 
* Actions from Developers IRC Meeting, February 25, 2014
* Set time of next meeting?
===Apologies===
===Minutes===
* Minutes from part 1: http://meetings.koha-community.org/2014/koha_dev_meeting__12_march_2014_part1.html
* Minutes from part 2: http://meetings.koha-community.org/2014/dev_meeting__12_march_2014__part_2.2014-03-12-21.25.html
Category:Developers_IRC_Meetings
Developing Zebra

WARNING: This page is under active development! Use at your own risk! 
----
 
= Develop Zebra using Docker =
== Set up development environment ==
#Launch a Debian/Ubuntu Docker container (I used ubuntu:latest which was still set to Ubuntu 18.04 at the time of my work) 
#apt-get update 
#apt-get install wget vim 
#vi /etc/apt/sources.list.d/indexdata.listdeb https://ftp.indexdata.com/ubuntu bionic maindeb-src https://ftp.indexdata.com/ubuntu bionic main 
#wget -q -O- https://ftp.indexdata.com/debian/indexdata.asc | apt-key add - 
#apt-get update 
#apt-get install git build-essential autoconf automake libyaz5-dev libexpat1-dev tcl-dev libbz2-dev libtool xsltproc inkscape
#git clone https://github.com/indexdata/idzebra.git 
#sh buildconf.sh 
#./configure 
#make
== Run Zebra ==
#cd examples/marcxml 
#../../index/zebraidx init 
#../../index/zebraidx update collection-*.xml 
#../../index/zebrasrv
== Test Zebra ==
#Edit the C code (e.g. index/retrieve.c)
#cd to root directory of Git clone
#make
#Re-run zebrasrv
== Run yaz-client ==
#apt-get install yaz 
#yaz-client localhost:9999 
#form xml 
#find @attr 1=_ALLRECORDS @attr 2=103 ""
== Notes/Tips ==
#I noticed that "make install" didn't work when I tried it (https://github.com/indexdata/idzebra/issues/36), so I'd recommend statically compiling using "./configure --disable-shared". This is also useful if you want to test your customized Zebra against a Zebra database that you've created using Koha. You can just statically compile and copy the binary over to your target destination and run it using your koha-conf.xml like normal. 
#While I haven't tried building the RPM or DEB packages, that would probably be the best way to distribute a customized Zebra. That said, at this point, I wouldn't recommend forking and using a customized Zebra in production. I just created this wiki for people to hack on Zebra, so that they can send pull requests to Indexdata or so that they can submit more detailed issue reports to Indexdata.  
#Notice that you've compiled Zebra using libyaz5-dev. Some of the core server functionality of Zebra comes from libyaz5, so you may find you need to clone yaz (https://github.com/indexdata/yaz) too so that you can better understand index/zebrasrv.c
Development Community Statistics

= Some git stats when releasing 21.11 =
Some raw data (ie. not commented) generated from git.
== Number of commits per version ==
Total number of commits per version of Koha.
 
== Number of distinct authors ==
== Number of new authors ==
== Authors with more than 10 commits ==
== Authors with more than 100 commits ==
== Commits per author ==
== Proportion of commits per author ==
== Number of files per filetype ==
50 dbrevs, identified as new Perl files have been added between 21.05 and 21.11
== Number of words per filetype ==
Words felt better than lines.
== Number of files, lines and words for Perl fiels ==
== Percent of words in tests ==
== Evolution of C4 namespace (files, lines and words) ==
== Repartition of bug reports per importance ==
Development IRC Meeting 11 January 2023

=== Place ===
The #koha IRC channel (IRC server irc.oftc.net).
If you don't have an IRC client you can join the meeting using your web browser.
=== Time ===
* 11 January 2023, 15:00 UTC Time and Date.com converter for various local times
=== Agenda ===
* Introductions (please use "#info" in front of your introduction to have it show up in the automatic minutes)
* Announcements
* Update from the Release manager (23.05)
* Updates from the Release Maintainers
* Updates from the QA team
* Status of roadmap projects
* Actions from last meeting
** tuxayo: Open tickets on KTD for the basic stuff needed to easily work on the non-root user.
*** Done
** tuxayo: Call for a volunteer on mailing lists to open the bidding for KohaCon24 and confirm the task list for that.
*** Done
** tcohen: To schedule/call a "CSRF day" to work on related patches together (previously deferred until after the 22.11 release).
** tcohen: To draft proposal for master→main change and draft of action list (previously deferred until after the 22.11 release).
** oleonard ashimema: Draft in the developer handbook how to form our modals. With template of a simple case and a case with form inside. Update: focus is currently on staff interface redesign changes, see the draft style guide: https://annuel.framapad.org/p/koha-styleguide-draft (previously deferred until after the 22.11 release).
* General development discussion (trends, ideas, ...)
** Use of Gitea: We use Gitea for git.koha-community.org. Gitea was "forked" and is now Forgejo - see the links update and related links (sounds eerily familiar 8-(.. ). The community needs to look at what to do next, such as whether to continue to use Gitea, update to Forgejo, do something else.... (David Nind)
* Review of coding guidelines
** SQL8 of our coding guidelines state that SQL should not be in .pl, but should be in the module in C4 or Koha. This would mean that SQL in the Koha namespace is allowed and there is no mention of DBIC in the coding guidelines right now. (Deferred from previous meeting(s).)
* ACK pre vs post processing for background jobs
**Bug 32573 - background_jobs_worker.pl should ACK a message before it forks and runs the job suggests we should ACK of STOMP messages before we begin processing which would avoid the issue 30 minute time issue among other problems. It appears that the STOMP documentation and the RabbitMQ documentation do not agree. We should have a vote if needed.
* Set time of next meeting
=== Apologies ===
Please list your name here if you would like to attend but cannot make this meeting
* ...
===Minutes===
* Minutes: http://meetings.koha-community.org/2023/development_irc_meeting_11_january_2023.2023-01-11-15.03.html
* Minutes (text): http://meetings.koha-community.org/2023/development_irc_meeting_11_january_2023.2023-01-11-15.03.txt
* Log: http://meetings.koha-community.org/2023/development_irc_meeting_11_january_2023.2023-01-11-15.03.log.html
===Next meeting===
Development_IRC_meeting_25_January_2023
Category:Developers_IRC_Meetings
Category:Developers_IRC_Meetings_2023