Developer documentation

Getting started with Genelet Perl

This guide targets guruperl/perl main. The README calls master the legacy branch. When maintaining an existing deployment, identify its branch and revision before adapting current examples.

1. Clone the current source

git clone --branch main https://github.com/guruperl/perl.git genelet-perl
cd genelet-perl
git rev-parse HEAD
perl -v

The current README contains a placeholder clone URL; use the verified repository above. The cpanfile requires Perl 5.10 or later. Some dependencies compile against system libraries; follow the repository's operating-system prerequisite guidance.

2. Install dependencies

cpanm --cpanfile cpanfile --installdeps .

Run this in a development environment with your chosen Perl dependency-management approach. The dependency file includes CGI/CGI::Fast, DBI, JSON, Template, HTTP and mail-related modules. Database drivers are separate; the default tests require DBD::SQLite.

3. Run the default tests

cpanm Test::More Test::Class DBD::SQLite
prove -I. -r Genelet/Test

TESTING.md says the default suite uses temporary SQLite databases and needs no test-database environment variables. It separately documents Docker-backed PostgreSQL and MySQL runs, including their cleanup command. Treat optional integration tests as a separate verification stage.

4. Inspect the generator before using it

The help.pl tool builds an application skeleton from database tables. The documented output includes project configuration, Filter/Model modules, component JSON, templates and a CGI entrypoint. Its options include database type/name, project name, script path and output directory.

Use a disposable schema and a new output directory. Review the source/README for your revision before providing database credentials. Do not paste real passwords into shell history or reuse the README's sample credentials. Avoid --force unless replacing generated files is deliberate.

5. Connect generation to request handling

Generated components define the framework's data/action contract; your application still needs a web-server CGI or FastCGI setup, correct module paths, reachable templates and appropriate role configuration. Start with one component and verify the intended response format, then test failed validation and unauthorized requests.

The historical polling tutorial explains the original workflow. Its commands and security settings are preserved for context and have not been tested against main. Use the current repository as the authority for today's setup.

Distribution note

The repository contains cpanfile but no Makefile.PL, Build.PL or META.* upload metadata. A documented version in RELEASE.md is not evidence of a currently published CPAN or GitHub release. This setup path uses source directly. No commands above were executed during content restoration.