Revision history for oEdtk
2.1102 2026-10-06
- oEdtk::DBAdmin: new csv_import fast path for PostgreSQL using COPY ... FROM STDIN, the native equivalent of the MySQL LOAD DATA LOCAL INFILE path. It is selected automatically for the Pg driver when the import mode is not "merge"; rows are first cleaned through the same _get_col_meta / _make_clean_val pipeline into a temporary file, so truncation and '' => NULL conversion match the row-by-row path. New private helpers _load_csv_pg_copy, _pg_csv_field and _pg_encoding_name.
- oEdtk::DBAdmin: _load_csv_pg_copy reads records with Text::CSV getline (instead of parse) so that a quoted field may span several physical lines; COPY runs with FORMAT csv, the current separator/quote characters and NULL '' so an unquoted empty field is read back as NULL.
- oEdtk::DBAdmin: _load_csv_pg_copy re-encodes each row to the session client_encoding (from SHOW client_encoding, mapped to an Encode name) before pg_putcopydata, so multibyte values are stored correctly. New dependencies: File::Temp and Encode.
- oEdtk::DBAdmin: $VERSION 2.1071 → 2.1101 during the PostgreSQL COPY work.
- New test suite under t/ (Test::More): 00_load.t, 10_main_date.t, 11_main_num.t, 12_main_text.t, 20_fields.t, 21_dict_tags.t, 30_dbadmin_pure.t, 31_dbadmin_sqlite.t, 40_tracking_validate.t and 50_edms_pure.t, plus t/lib/TestOEdtk.pm (shared helpers), t/edtk.ini (test configuration) and t/test_csv_pg_copy.pl (PostgreSQL COPY import check).
- README.md: the former plain-text README was merged into README.md and the CONTENT OF THIS ARCHIVE section rewritten with the actual package tree; copyright year updated 2024 → 2026.
- oEdtk.pm: $VERSION 2.1071 → 2.1102.
2.1071 2026-07-01
- oEdtk::DBAdmin: _get_col_meta now distinguishes text types (varchar, character varying, char, bpchar, text) from numeric and date/time types. The truncation size is only used for text columns; numeric and date/time columns get a new blank_to_null flag. This fixes erroneous truncation of values on PostgreSQL (e.g. a date 2026-07-09 was being truncated to 2026 because column_info returns the internal storage size for non-text types).
- oEdtk::DBAdmin: _make_clean_val — empty-string → undef conversion now applies to both numeric AND date/time columns (blank_to_null), fixing PostgreSQL "invalid input syntax for type date" errors.
- oEdtk.pm: version bump to 2.1071.
- Makefile.PL / README.md: copyright year updated 2024 → 2026.
- META.json / META.yml: version bump only.
2.1065 2026-06-05
- oEdtk.pm: version bump to 2.1065; copyright year in the POD LICENCE section updated 2024 → 2026.
- META.json / META.yml: version bump only.
2.1064 2026-06-04
- oEdtk::DBAdmin: $VERSION = 2.1063; new $VERSION_TXT (version with dots replaced by underscores, used in index names). admin_check_db renamed to acheck_db_admin_on_connect; private _drop_table renamed to public db_drop_table (new export).
- oEdtk::DBAdmin: massive SQL rewrite to lowercase keywords and identifiers throughout (all maintenance queries, purges, rotations, table creation) for portability across MySQL / PostgreSQL / Oracle / SQLite. _sql_fixup gained a third $mysqlCasse argument: for MySQL the whole SQL is uppercased (except INSERT/REPLACE statements); for PostgreSQL empty strings '' are converted to NULL in VALUES/SET clauses; VARCHAR2→VARCHAR conversion is now case-insensitive.
- oEdtk::DBAdmin: insert_tData rewritten — driver-aware identifier case normalization (_norm_identifiers, uc for MySQL/MariaDB, lc otherwise), column metadata lookup (_get_col_meta via DBI column_info, with a SELECT * WHERE 1=0 fallback for drivers like SQLite), and value cleaning (_make_clean_val: empty string → undef for numeric columns, truncation to declared column size). Old implementations kept as insert_tData_deprecated_1 / insert_tData_deprecated_2.
- oEdtk::DBAdmin: csv_import rewritten with the same metadata/cleaning pipeline; old versions kept as csv_import_deprecated_1/2/3; new private helpers _norm_identifiers, _get_col_meta, _make_clean_val.
- oEdtk::DBAdmin: db_connect — FetchHashKeyName is now configurable via EDTK_DB_FetchHashKeyName (default NAME_uc); the TRACKING table is auto-created on connect if missing (_table_exists); the auto DB check now only runs when EDTK_DB_CHECK_AUTO is explicitly YES (previously defaulted to YES when unset); calls acheck_db_admin_on_connect instead of admin_check_db.
- oEdtk::DBAdmin: new _table_exists helper (DBI table_info); new acheck_db_admin2 (on-demand maintenance job) built on new _db_maintenance and _db_with_lock (locking via an edtk_admin insert).
- oEdtk::DBAdmin: _db_check_driver_name hardened (returns "NC" for an invalid/unconnected $dbh); old version kept as _db_check_driver_name_deprecated.
- oEdtk::DBAdmin: admin_optimize_db rewritten — driver detected per connection, no-op select 1 for NC/Oracle, REPAIR TABLE/OPTIMIZE TABLE for MySQL, VACUUM FULL for PostgreSQL; old version kept as admin_optimize_db_deprecated.
- oEdtk::DBAdmin: index names changed from ix.$VERSION.$table (dot-separated) to ix_${table}_${VERSION_TXT} (underscore-separated, portable) and use create index if not exists. create_lot_sequence now issues create sequence if not exists edtk_idlot minvalue 0 maxvalue 999 cycle through _sql_fixup.
- oEdtk::DBAdmin: all column-definition arrays (@TRACKER_COLS, @DISTRIB_COLS, @AGREGE_COLS, @INDEX_COLS) converted to lowercase column names. create_table_OUTMNGR: ed_ididx no longer NOT NULL; ed_nbdocpli and ed_numpgpli no longer NOT NULL. move_table, db_backup_agent, schema_Upgrade, schema_Create: lowercase SQL and _sql_fixup(..., 'casse').
- lib/oEdtk/logger2.pm: package renamed from oEdtk::logger2 to oEdtk::logger (the file is still logger2.pm); $VERSION = 1.9062. New exported subs set_logger_level($) and set_warn_to_logger(). Letter-based level normalization: new %hLETTER_LEVEL maps letters (H, F, C, E, S, X, W, A, I, P, L, D, U) to numeric levels; logger() now accepts a letter as the level or as the modifier argument. _DEBUG_ and _CONTXT_ constants swapped: _DEBUG_ = 7, _CONTXT_ = 8 (previously reversed). Log line format changed to >%date| %-7s|FH-%07d|PID-%s|last RC: %0.3d| %s|last RC: %0.3d-%s. logger() return value changed: scalar context returns $rcLogger[0] (or the joined string for FAIL level); list context returns @rcLogger. usage_logger renamed to logger_help; logger_help now takes an optional argument controlling whether logger_rc_list is printed.
- oEdtk::Tracking: track sub — the table name is now uppercased when the driver is MySQL (identifier case fix); stats_week, stats_iddest, stats_month: SQL converted to lowercase.
- oEdtk::Config: use oEdtk::logger now explicitly imports qw(logger $LOGGERLEVEL $WARN2LOGGER).
- oEdtk::TexDoc / oEdtk::TexTag: trivial — trailing newline at end of file removed (no functional change).
- oEdtk.pm: version bump only.
1.9013 2024-01-03
- oEdtk::DBAdmin: create_table_INDEX renamed to create_table_OUTMNGR; exports updated (added create_table_TRACKING, create_table_OUTMNGR, create_table_DISTRIB, removed create_table_INDEX). All CREATE TABLE statements changed to CREATE TABLE if not exists (idempotent schema creation).
- oEdtk::DBAdmin: create_table_TRACKING — added ENGINE=MyISAM for MySQL; added an index on ED_TSTAMP (skipped for SQLite). This fixes a bug creating the Tracking table in SQLite.
- oEdtk::DBAdmin: create_table_DISTRIB — PRIMARY KEY removed and replaced by a composite index ix.$VERSION.$table on (ED_IDLDOC, ED_SEQDOC, ED_IDSEQPG, ED_IDJOB, ED_CHANEL_OUT, ED_DTLOT); ENGINE=MyISAM for MySQL.
- oEdtk::DBAdmin: create_table_AGREGE — PRIMARY KEY removed, replaced by a composite index; @AGREGE_COLS gains a new ED_TSTAMP VARCHAR2(14) NOT NULL column; ED_CNTD_IDLDOC type changed from VARCHAR2(25) to INTEGER; ED_IDJOB column moved after ED_IDLOT.
- oEdtk::DBAdmin: create_table_OUTMNGR (ex-INDEX) — the three separate indexes (ED_DTEDTION, ED_SEQLOT, ED_TYPPROD) replaced by a single composite index; ENGINE=MyISAM for MySQL. create_table_ID: index renamed to ix.$VERSION.ED_ID_DATE; ENGINE=MyISAM for MySQL. create_table_ACQUIT: ENGINE=MyISAM for MySQL.
- oEdtk::DBAdmin: schema_Create — signature simplified to a single $dbh argument (dropped $table/$maxkeys); no longer creates the TRACKING table; calls create_table_OUTMNGR.
- oEdtk::DBAdmin: admin_optimize_db — signature changed from ($dbh) to hash-based (CFG => $cfg); now runs a REPAIR then an OPTIMIZE pass per table, connecting/disconnecting for each table; MySQL uses REPAIR TABLE + OPTIMIZE TABLE, other drivers a no-op SELECT * ... LIMIT 1.
- oEdtk::DBAdmin: the EDTK_AGREGE rotation INSERT ... SELECT now writes a new ED_TSTAMP stamp column and adds ED_IDJOB to the GROUP BY. acheck_db_admin/admin_check_db: EDTK_DB_MAX_DAYS_AGREGED now falls back to EDTK_DB_MAX_DAYS_TRACKED when not configured.
- oEdtk::DBAdmin: bug fix — error messages "..." . $DBI::errstr || "undefined" had an operator-precedence bug; fixed to ($DBI::errstr || "not defined"). Added &logger(7, $sql) debug logging to most SQL statements.
- oEdtk::Main: END block — _restore_sys_date; uncommented — the system date is now actually restored at program exit (previously commented out). oe_define_TeX_output re-indented only (no functional change).
- oEdtk::Outmngr: create_table_INDEX → create_table_OUTMNGR rename in the use oEdtk::DBAdmin import and in the SQLite table-creation call.
- lib/oEdtk/iniEdtk/tplate.edtk.ini: [ENVDESC] — EDTK_DIR_BASE now defaults to $EDTK_PRGPATH; added EDTK_DIR_DB, EDTK_DIR_DOCLIB, EDTK_DIR_EDOCMNGR; EDTK_TYPE_ENV default changed Production → Dev; EDTK_BIN_PERL now /usr/bin/perl (Linux default). New [EDTK_DB] section: full database configuration (SQLite default DSN, tracking keys, retention days, EDTK_DB_CHECK_AUTO=NO). New [EDTK_STATS] section: stats DSN/table aliases, CSV header definitions, stats SQL queries. [MAIL]: added EDTK_MAIL_TST. [COMPO]: EDTK_BIN_COMPO and EDTK_COMPO_LIB now use $EDTK_DIR_BASE / $EDTK_DIR_CONFIG (Linux paths). [COMSET] section removed entirely; old [EDTK_DB]/[EDTK_STATS] sections replaced by the new ones.
- lib/oEdtk/lib/db_Schema_init.pl: create_SCHEMA → schema_Create (function renamed).
- lib/oEdtk/COPYING: license text changed from GNU GPL v2 to GNU GPL v3.
- lib/oEdtk/README: added copyright line, updated version, removed the whole TODO list and the AUTHORS section.
1.9012 2024-01-02
- oEdtk::DBAdmin: revert of the 1.8122/1.8123 changes — create_table_OUTMNGR renamed back to create_table_INDEX; the EDTK_DB_CHECK_AUTO bug fix reverted (back to the default-YES test); $VERSION 1.8101 → 1.8097.
- lib/oEdtk/iniEdtk/tplate.edtk.ini: [EDTK_DB] section removed; Windows/Compuset configuration restored (EDTK_DIR_BASE=C:/editique, EDTK_TYPE_ENV=Production, EDTK_BIN_PERL=C:/Sources/Perl/bin).
- lib/oEdtk/COPYING: license text back to GNU GPL v2.
- oEdtk.pm: $VERSION 1.8123 → 1.9012, $YEAR 2025 → 2024; copyright 2005-2024.
- Config.pm, Main.pm, Outmngr.pm, TexDoc.pm, TexTag.pm, db_Schema_init.pl, README: reverted to the pre-1.8122 state.
1.8123 2023-12-03
- oEdtk::DBAdmin: bug fix — the EDTK_DB_CHECK_AUTO test now checks `defined $cfg->{EDTK_DB_CHECK_AUTO} && $cfg->{EDTK_DB_CHECK_AUTO} !~ /NO/i` instead of `($cfg->{EDTK_DB_CHECK_AUTO}||"YES")!~/NO/i` (the value is defined by default to YES). $VERSION 1.8111 → 1.8123.
- oEdtk.pm: $VERSION 1.8122 → 1.8123, $YEAR 2024 → 2025.
- README.md: copyright year updated to 2025.
- META.json / META.yml: version bump only.
1.8122 2023-12-02
- New module lib/oEdtk/logger2.pm.
- README renamed to README.md.
- lib/oEdtk/COPYING: license text changed from GNU GPL v2 to GNU GPL v3.
- oEdtk::DBAdmin: major rewrite — new subs admin_check_db, acheck_db_admin, agrege_idJob, schema_Create, schema_Upgrade, create_table_ADMIN, create_table_ID, create_table_AGREGE, create_table_OUTMNGR (renamed from create_table_INDEX); _drop_table_TRACKING → _drop_table; create_SCHEMA → schema_Create; new _load_csv_mysql_infile.
- lib/oEdtk/iniEdtk/tplate.edtk.ini: new [EDTK_DB] and [EDTK_STATS] sections; [COMSET] removed; Linux paths ($EDTK_PRGPATH, /usr/bin/perl, Dev env).
- New dependencies: Image::Size, Log::Log4perl, PDF::Create.
- oEdtk.pm: $VERSION 1.5093 → 1.8122, $YEAR 2024.
1.5093 2020-09-03
- New CHANGES file added.
- Makefile.PL: MIN_PERL_VERSION => 5.010, LICENSE => 'perl'.
- DBD::Oracle and DBD::Pg removed from META.yml/META.json and commented out in Makefile.PL.
- oEdtk.pm: use strict; use warnings; added; version bump 1.5091 → 1.5093.
1.5091 2020-09-01
- oEdtk.pm: require 5.10.0 (Perl 5.10.0 minimum); $VERSION 0.8052 → 1.5091.
- New dependencies: YAML, CPAN::DistnameInfo, DBD::Excel, DBD::Oracle, DBD::Pg, DBD::SQLite, JSON, XML::Simple.
- oEdtk::Config: config file lookup order changed — edtk.ini is now looked for in the program directory ($Bin) first, then in the perl module directory.
- oEdtk::DBAdmin: new sub insert_tData (insert tracking data from outside); new sub _load_csv_mysql_local_infile (csv_import uses MySQL LOAD DATA LOCAL INFILE when mysql_local_infile is detected in the DSN); new @TRACKER_COLS and @DISTRIB_COLS column-definition arrays; tracking table gains ED_ACCOUNT column.
- oEdtk::Tracking: track() now accepts entity/account/obj_typ/child_typ/child_id/parent_id parameters.
- oEdtk::logger: WARN and DIE behaviour configurable via $WARN2LOGGER to report events into the tracking database.
- oEdtk::trackEdtk: event levels extended — Job (default), Spool, Document, Line, Warning, Error, Halt (critic), Reject, Track; Halt events now logged via logger.
0.8052 2013-05-02
- New file META.json.
- lib/oEdtk/lib/html templates (edtk_ged.html, edtk_inged.html, index.html): hardcoded application/corporation names replaced with placeholder values (APP_1, APP_2, CORP_1, CORP_2, ...).
- oEdtk.pm: $VERSION 0.8035 → 0.8052; $YEAR 2013; authors updated (G Ballin added, 2005-2013).
- oEdtk::Tracking: version bump only.
- META.yml: version bump.
0.8035 2013-03-05
- oEdtk::Config: new sub get_ini_path() (returns the path of the ini file actually loaded); exported in @EXPORT_OK. $VERSION 0.8031 → 0.8034.
- oEdtk::EDMS: EDMS_package signature changed from ($$$@) to ($$@) — the path argument removed; files are now added with their basename. $VERSION 0.8033 → 0.8035.
- lib/oEdtk/lib/check_oEdtk_ini.pl: now uses get_ini_path() (warns "STARTING CHECK, loading config from ...").
- oEdtk.pm: version bump 0.8034 → 0.8035.
- META.yml: version bump.
0.8034 2013-03-04
- oEdtk::EDMS: new sub EDMS_package($$$@) — packages several documents along with one index in a zip archive for later processing (writes $EDTK_DIR_EDOCMNGR/$app.$idldoc.out.zip); the existing package sub refactored (returns 1, prints the zipfile name). $VERSION 0.8031 → 0.8033.
- libXls.pm: comment-only change.
- oEdtk.pm: version bump 0.8032 → 0.8034.
- META.yml: version bump.
0.8032.M.25.12.16 2025-12-16
- Production fork (MNT) based on the 0.8032 codebase — a divergent branch, not a mainline
release. It drops the whole Compuset/C7 subsystem and the tracking API, and adds ECM
(Alfresco), REST emailing, Keycloak authentication, IBAN/BIC validation, QR codes and
LaTeX index handling. The version string is not a valid CPAN version (kept as-is for
traceability).
- New modules: oEdtk::Utils (date/price parsing, tracking helpers, index formatting, string
cleaning), oEdtk::FixIdx (even page counts in .idx files), oEdtk::LaTeX (latin-9 escaping,
\gdef tags, index generation), oEdtk::Emailing (REST email via the nws_emailing service,
requires Perl 5.028), oEdtk::Keycloak (OAuth2 client_credentials token, requires Perl
5.020), oEdtk::Infinite (COBOL Infinite flow parsing), oEdtk::IBAN (IBAN/BIC validation),
oEdtk::Constants (ECM document typology), oEdtk::Restitution (path-based value extraction),
oEdtk::DisseminationPlan (REST dissemination plan), oEdtk::XML::DTD / oEdtk::XML::XSD /
oEdtk::XML::DTD::Utils (XML validation against DTD/XSD).
- oEdtk::Main: oe_ID_LDOC now generates a Data::UUID string instead of the numeric
YWWWDHHMMSSPPPP.r format; new job-handling subs (oe_options, oe_params, oe_simple_job,
oe_new_job_input_file, oe_new_job_output_file, oe_print_to_output_file,
oe_get_handle_to_input_file, oe_typ_prod, oe_watermark, oe_backgrounds_apps,
oe_config_compo, oe_clean_addr, oe_new_ID_LDOC); all Compuset/C7 functions removed
(c7Flux, toC7date, fmt_address, fmt_address_sender, fmt_monetary, date2time,
oe_CAP_sans_accents, oe_cdata_table_build, oe_close_fo, oe_compo_set_value,
oe_csv2data_handles, oe_define_Compuset_output, oe_env_var_completion, oe_fmt_date,
oe_outmngr_compo_run, oe_outmngr_full_run, oe_outmngr_output_run, oe_round, recEdtk_*,
prodEdtk_*, oe_rec_output, oe_unique_data_name).
- oEdtk::Run: new oe_background_pdf, update_idx, listing_depository (bpdf backgrounds via
PDF::Tk + EDMS_BIN_PDFTK); oe_outmngr_output_run_tex handles recto-verso filières with
make_docs_even_numbered and writes LOTPDF.txt in UTF-8; oe_after_compo honors
EDTK_KEEP_OUT_FILE, supports the bpdf option, keeps the index file and checks the PDF
exists; oe_status_to_msg returns '(status is zero)' for status 0.
- oEdtk::EDMS: rewritten for Perl 5.20+ (signatures, IPC::Run3); 36-column index CSV with
optional Alfresco header (EDMS_ACTIVATE_HEADER_ALFRESCO / EDMS_IDX_HEADER); new subs
_log, my_system, preprend_alfresco_header_if_needed, EDMS_merge_docs; EDMS_import returns 0.
- oEdtk::DBAdmin: new acquit processing (_acquit_API via oEUser::ECM, _acquit_table_INDEX,
create_table_ACQMGENTECH, get_columns_names); csv_import does acquit processing + email
report (EDTK_MAIL_ACQ) + uppercasing + ref_col; copy_table adds Oracle hints
(PARALLEL 4 COMPRESS NOLOGGING PCTFREE 0); @INDEX_COLS gains 4 ECM columns; removed
create_table_PARA, create_table_DATAGROUPS, _drop_table_TRACKING.
- oEdtk::Config: use utf8; new read_hash sub; tie with -fallback => 'DEFAULT'; the hostname
section is no longer merged last (mainline behavior).
- oEdtk::RecordParser: denormalized handling split into set_denormalized_option_record /
set_denormalized_on_record; byte cleaning via oEdtk::Utils::kill_non_latin_1_9_chars_in_place.
- oEdtk::TexDoc: new append_qr_code, hhline_content, is_in_list (QR codes via Text::QRCode).
- oEdtk::trackEdtk: tracking API removed (init_Tracking, track_Obj, define_Mod_Ed,
define_Job_Evt, define_Job_User, define_Track_Key, open_Tracking_Env, test_exist_table,
create_Track_Table, drop_Track_Table).
- oEdtk::libDev: removed delSp, IdUniqueSur6, IdUniqueSur7, lastLong; run_Edtk_dev is
LaTeX-only (no Compuset branch); bug fix in tree_Directory_Completion (numeric comparison).
- oEdtk::libXls: removed prod_Xls_Add_Sheet. oEdtk::Spool: removed emit. oEdtk::Record:
bind() semantics changed; bind_all/bind_all_c7 removed. oEdtk::Doc: $LINE_CUTOFF = 1
(one TeX command per line).
- New scripts lib/db_move.pl, lib/edms_runner.pl; acq_Load.pl removed.
- New tests t/IBAN.pm.t, t/Utils.pm.t, t/FixIdx.pm.t.
- cpanfile rewritten (replaces the Makefile.PL PREREQ_PM list); new dependencies Text::CSV_XS,
XML::Simple, XML::Parser, XML::Encoding, Mail::Sender, Barcode::DataMatrix, PDF::API2,
Hash::Merge::Simple, Hash::Flatten, MIME::Lite, Email::Valid, YAML::Tiny, Text::QRCode,
Regexp::Common, PDF::Tk, Locale::PO, XML::LibXSLT, Text::Unaccent::PurePerl.
- iniEdtk/edtk.ini added (mainline only ships tplate.edtk.ini): new [ENVDESC] keys
(EDTK_XML_CATALOG_FILES, EDTK_DIR_FORMS, EDTK_DIR_BACKGROUNDS, ...), enriched [MAIL]
section, [COMPO] lualatex switch (EDTK_COMPO_ASYNC), [EDOCMNGR] Alfresco keys,
[EDTK_DB] and [EDTK_STATS] sections.
0.8032 2013-03-02
- DBD::Oracle removed from META.yml and commented out in Makefile.PL (no longer a hard prerequisite).
- Version bump only in lib/oEdtk.pm.
0.8031 2013-03-01
- oEdtk::EDMS: archives may now contain .xls or .doc documents in addition to .pdf; non-PDF documents are no longer page-burst but moved to a Docubase-compatible filename via the new _docubase_file_name helper; EDMS_FILENAME derived from the ED_DOCLIB extension; EDMS_idx_process now captures the ED_DOCLIB value.
- oEdtk::Tracking: application-name extraction regex now accepts hyphens and underscores; long application names truncated to the last 20 characters; new Reject (R) job event added to _validate_event.
- oEdtk::Config: added a warning message when reading the template ini file (tplate.edtk.ini).
- lib/oEdtk/lib/check_oEdtk_ini.pl: fixed the -h check to guard against an undefined $ARGV[0]; shebang changed to /usr/bin/perl.
- New module lib/oEdtk/OmgrIdxDoc.pm (subclass of oEdtk::Doc) that builds an index CSV row from @INDEX_COLS tags (mktag/reset/dump).
- New dependency DBD::Oracle added to META.yml and Makefile.PL.
- README: authors updated (G Ballin added); install notes updated.
0.8022 2013-02-02
- oEdtk::DBAdmin: new sub copy_table (copies data from a source table into a target table; with -create it creates the target table first via CREATE TABLE AS SELECT; aborts with a warning if the source table is empty); move_table is now deprecated and delegates to copy_table; historicize_table now uses copy_table; new sub db_backup_agent backs up and purges old rows from the EDTK_DBI_TRACKING, EDTK_DBI_OUTMNGR and EDTK_DBI_ACQUIT tables based on the new EDTK_ENTIRE_YEARS_KEPT config.
- oEdtk::Outmngr: encart (insert) validity — ED_DEBVALID equal to '99999999' is now treated as "no start date"; omgr_purge_fs now calls db_backup_agent before purging; doclibs referenced in the last EDTK_DCLIB_PURGE_WEEKS_KEPT weeks are now kept.
- lib/oEdtk/lib/index_Purge_DCLIB.pl: fixed the -h check to guard against an undefined $ARGV[0].
- New script lib/oEdtk/lib/db_copy.pl (CLI wrapper around copy_table: db_copy.pl table_source table_cible [-create]).
- Removed script lib/oEdtk/lib/db_move.pl (replaced by db_copy.pl).
0.8021 2013-02-01
- oEdtk::Tracking: new() — the source parameter now defaults to the command line ($ARGV[1] || $ARGV[0]) when not provided; if the value starts with '-' (an option), it falls back to $ARGV[0]. The tracking source is thus auto-detected from the command line.
0.8014 2013-01-04
- oEdtk::Config: the Compuset-specific block that stripped environment-type extensions (EDTK_FTYP_TEST/HOMOL/PROD) from program names is now commented out as deprecated — the behavior is disabled.
- oEdtk::DBAdmin: EDTK_LOTS table creation now includes a new column ED_CONSIGNE VARCHAR2(250).
- oEdtk::Outmngr: omgr_export — the job CSV export now includes the new ED_CONSIGNE field; ED_LISTEREFIMP is now defaulted to "" when empty. omgr_stats — return format changed: the returned arrayref now starts with a printf format string and a header row; column order changed to put CORP first (then LOT, then ID_SEQLOT for idlot queries). Callers must now shift off the format/header.
- oEdtk::Run: bug fix — intermediate-file cleanup after zipping is now skipped only for Dev/Debug environments ($type_env !~ /^De/i instead of !~ /D/); previously any environment whose name contained the letter "D" (e.g. PROD) was wrongly affected.
- oEdtk::Tracking: job tracking now records the full command line (join(' ', @ARGV)) in the message zone of the Job event; the tracking insert now includes the ED_SOURCE field.
- lib/oEdtk/lib/index_Block_refs.pl: removed the dependency on oEdtk::Outmngr; new feature — block/unblock by partial idldoc with a % wildcard (4-15 digits + %), using LIKE; bug fix — the STOP filter now filters on ED_STATUS instead of ED_SEQLOT; SQL refactored so the WHERE clause is shared between the SELECT and the UPDATE.
- lib/oEdtk/lib/index_Run_lot.pl, index_Statistics.pl: adapted to the new omgr_stats return format (shift format string and header from the rows arrayref).
- New dependency Roman added to META.yml and Makefile.PL.
- README: installation instructions updated (XML-LibXML setup, dmake on Windows).
- Main.pm: usage message reworded. Messenger.pm, TexDoc.pm, EDMS.pm: comment-only changes.
0.7125 2012-12-05
- Version bump only (0.7121 → 0.7125); whitespace-only changes in the POD examples.
0.7121 2012-12-01
- oEdtk::Main: new --noinputfiles command-line option — allows treatments without an input data file. Argument parsing reworked: defaults are merged into params earlier, help/usage handling moved into a conditional block, and the input file is only opened when an input file is actually provided; the IN handle is not closed when noinputfiles is set. Version bump 0.7007 → 0.7125.
- oEdtk::Outmngr: omgr_check_acquit — postal code (CP) field is now truncated to 10 characters (first 4 + last 6) when longer than 10; job ticket file now includes ED_PRIORITE, ED_REFIDDOC, and ED_REFENC fields (fields reordered); added commented-out TODO for ED_REFENC/lot handling in the lot-matching UPDATE. Version bump 0.7031 → 0.7121.
- oEdtk::Run: oe_outmngr_output_run_tex — the [MTD] type check is commented out, so lotissement is no longer suspended for non-Mass/Debug/Test types; deletion of intermediate files is now controlled by the EDTK_TYPE_ENV config value instead of the $type parameter. Version bump 0.7006 → 0.7111.
- oEdtk::DBAdmin: EDTK_LOTS schema — ED_REFENC widened VARCHAR2(20) → VARCHAR2(32); EDTK_INDEX schema — ED_REFIMP widened VARCHAR2(8) → VARCHAR2(16); ED_IDLOT widened VARCHAR2(6) → VARCHAR2(8). Version bump 0.7031 → 0.7111.
- oEdtk (main module): version bump 0.7029 → 0.7121; copyright year updated to 2013.
- Documentation: README added XML-LibXML installation instructions (PPM on Windows, distribution package installer on Linux).
0.7029 2012-02-09
- oEdtk::TexDoc: renamed $_DICO_CHAR → $_DICO_TEX_CHAR and enabled the LATEX dictionary substitution in escape() (the substitue() call was previously commented out). Version bump 0.03 → 0.7004.
- oEdtk::RecordParser: new set_motif_to_denormalized_split() method (sets the denormalized split motif). Version bump 0.7005 → 0.7006.
- oEdtk::Dict: substitue() no longer decodes chr(\d+) keys into their character (feature removed). Version bump 0.11 → 0.7012.
- oEdtk::Main: trivial comment whitespace change only.
- Packaging: META.yml version bump; generated_by MakeMaker 6.55_02; META.json removed (Only in 0.7028); MANIFEST reverted to not list it; Makefile.PL, all lib scripts, iniEdtk files, and t/test_fixe_oEdtk.pl: line-ending changes only (LF → CRLF this time), no functional change.
0.7028 2012-02-08
- oEdtk::Outmngr: lot matching now uses the ED_REFIDDOC column instead of ED_IDAPPDOC in the SELECT, the UPDATE WHERE clause, and the INSERT (column renamed). Version bump 0.7005 → 0.7031.
- oEdtk::DBAdmin: EDTK_LOTS table schema — ED_IDAPPDOC is no longer NOT NULL; a new ED_REFIDDOC VARCHAR2(20) NOT NULL column is added (consistent with the Outmngr rename). Version bump 0.27 → 0.7031.
- oEdtk::Main: cleanup of commented-out address-normalization code (no behavior change). Version bump 0.7006 → 0.7007.
- Packaging: META.yml version bump; generated_by MakeMaker 6.56; new file META.json (Only in 0.7028); MANIFEST updated to list it; Makefile.PL, all lib scripts, iniEdtk files, and t/test_fixe_oEdtk.pl: line-ending changes only (CRLF → LF), no functional change.
0.7027 2012-02-07
- oEdtk::Record: new seek_key attribute (default "LIGNE.{153}(.{10})") and new set_seek_key() method to override it; parse() no longer slices off the first fields_offset characters before unpacking (that logic is commented out); the full line is now unpacked; template building no longer inserts a space between fields (commented out). Version bump 0.04 → 0.7005.
- oEdtk::RecordParser: new dumper() method (a Data::Dumper wrapper); new Data::Dumper dependency; new() now builds a seek_keys hash from each record's seek_key; undef records are ignored; parsing loop rewritten — instead of matching mute_record/line_record with a fixed key_offset/key_size, it now tries each registered seek_key regex (SEEK block); unknown records are now warned and ignored instead of dying with "Unexpected record identifier". Version bump 0.04 → 0.7005.
- oEdtk (main module): version bump 0.7025 → 0.7027.
- Packaging: META.yml and Makefile.PL added Data::Dumper prerequisite; lib/oEdtk/README added TODO items (embed fonts in PDF flows rather than vectorizing, optimize continuous flows (omgr), flatten PDFs so they are not a frame assembly).
0.7025 2012-02-05
- oEdtk::Outmngr: omgr_stats_referent and omgr_stats now use config_read('EDTK_STATS') and $cfg->{'EDTK_STATS_OUTMNGR'} instead of hardcoded EDTK_INDEX / EDTK_DBI_OUTMNGR table names.
- lib scripts (db_historicize_ALL.pl, db_historicize_index.pl, db_historicize_tracking.pl): wait time now 30*EDTK_WAITRUN || 600; pressing N/S aborts the run; clearer messages.
- lib/oEdtk/lib/params_Import.pl: new optional INI_SECTION argument to load params in a specific environment (uses EDTK_DBI_DSN when a section is given).
- acq_Load.pl, check_oEdtk_ini.pl, cob2pm.pl, db_move.pl: add use oEdtk.
- check_oEdtk_ini.pl: COMSET option marked deprecated.
- index_Block_refs.pl: usage() now warns + exit 1 instead of die.
- Most lib scripts: added -h/usage help handling (most now warn + exit 1 instead of die).
- Removed script lib/oEdtk/lib/edms_runner.pl (also removed from MANIFEST).
- META.yml, oEdtk.pm version bumps; oEdtk_release adds a leading newline. Config.pm: whitespace only. DBAdmin.pm: comment only. README: TODO list updated.
0.7023 2012-02-03
- oEdtk::RecordParser: denormalized-record split regex changed from (?:motif)+ (collapsing consecutive separators) to (?:motif) (each separator now produces a split).
- META.yml, oEdtk.pm version bumps.
0.7021 2012-02-01
- oEdtk::Run: oe_after_compo now always unlinks $app.aux (previously only when EDTK_TYPE_ENV ne 'Test').
- oEdtk::Tracking: track() uses $val = $data[$i] || "" to avoid undef warnings when a data value is undefined.
- META.yml, oEdtk.pm version bumps. Main.pm: whitespace/formatting only.
0.7017 2012-01-07
- oEdtk::Doc: removes use oEdtk::Dict and the char_xlate method (moved out); adds an abstract escape method that dies "unimplemented" (to be implemented by subclasses).
- oEdtk::TexDoc: new escape method (moved from TexTag): escapes LaTeX special characters ({, }, \, %, &, $, _, #), replaces \"{} and \" by \textquotestraightdblbase{}; loads the LATEX dictionary statically via oEdtk::Dict.
- oEdtk::TexTag: digit-in-tag-name warning now emitted only once (flag $_FLAG_DIGITS); escape() renamed to escape_0() and now delegates to oEdtk::TexDoc::escape; static LATEX dictionary loaded.
- oEdtk::Outmngr: new sub omgr_track_no_omgr (stub returning 1, with commented-out SQL for tracking docs without omgr); omgr_check_acquit SQL: condition between the date check and status check changed from AND to OR.
- oEdtk::Run: oe_cmd_run now dies instead of warns when a command fails.
- oEdtk::Tracking: new() defaults $source to ""; track() allows one extra data value (@usercols + 1) for the new message column.
- oEdtk::Dict: substitue() refactored (parameter renamed, logic restructured; chr(N) key handling kept).
- oEdtk::Main: export list reordered (prodEdtk_* functions moved); oe_char_xlate indentation only.
- lib scripts: index_Check_tracked_docs.pl — YWWD (year-week-weekday) value computed and shown in usage; index_Block_refs.pl — abort message changed from die "ERROR:" to die "INFO :".
- META.yml, oEdtk.pm version bumps. EDMS.pm: message text "pages" → "docs".
0.7014 2012-01-04
- oEdtk.pm: oEdtk_version() renamed to oEdtk_release(); the END block now prints oEdtk_release() (banner text changed to include daunay@cpan.org).
- oEdtk::Main: new exported subs oe_CAP_sans_accents, oe_char_xlate, oe_list_encodings; oe_oe_uc_sans_accents removed (renamed to oe_CAP_sans_accents). New sub oe_char_xlate($;$) translates characters in a string using the EDTK_DICO_XLAT dictionary (section parameter, default DEFAULT), memoized in a static $_DICO_CHAR. New sub oe_list_encodings lists encodings available on the machine via Encode->encodings(). oe_clean_addr_line: hardcoded punctuation/special-char replacements are commented out and replaced by a call to oe_char_xlate($$rLine, 'ADDRESS') — character cleaning is now dictionary-driven. oe_new_job: new --input_code option; input file opened with encoding layer <:encoding(...); output file opened with >:encoding(...) using new config key EDTK_OUT_ENCODING (default utf8); outfile now derived from $params->{'outfile'}. oe_app_usage: usage text updated (documents --input_code); now calls oe_list_encodings(). One system() error check changed from $? to $@. END block no longer prints the version banner.
- oEdtk::Dict: substitue_char renamed to substitue; now iterates the dictionary and converts keys matching chr(N) into the actual character before substitution — dictionary keys can now be written as chr(123) to target special characters.
- oEdtk::Doc: new method char_xlate($$) translates characters using the EDTK_DICO_XLAT dictionary (section passed as argument), memoized in a static $_DICO_CHAR.
- oEdtk::TexTag: now warns (INFO) when a tag name contains digits (previously a commented-out die); escape() now calls oEdtk::Doc::char_xlate($new, "LATEX") for special-character translation; adds replacement of \"{} by \textquotestraightdblbase{}.
- oEdtk::TexDoc: only version bump and added trailing 1;.
- oEdtk::Record: new fields_offset attribute (default 10) and set_fields_offset method; parse() now uses the configurable offset instead of a hardcoded 8-character prefix.
- oEdtk::RecordParser: new() dies if the filehandle is undefined; parser is now fully configurable: new attributes skip_line ('FLUX'), mute_record ('ENTETE'), mute_id ('ENT'), line_record ('LIGNE'), key_offset (153), key_size (10), denormalized ('OPTION'), denormalized_split_motif, with setter methods; next() uses these configurable values; line-record parsing now captures the key and data separately (key whitespace-stripped); current line stored in $self->{'line'}.
- oEdtk::Tracking: new BEGIN block installs $SIG{'__WARN__'} and $SIG{'__DIE__'} handlers that call track('Warn'/'Halt', 1, $msg) when signal tracking is active; new() enables signal tracking if config EDTK_TRACK_SIG is set (and not 'no'); track() — new ED_MESSAGE column handling (data values concatenated into the message); ED_SOURCE now also set for Halt events; user key columns (ED_K{i}_NAME/VAL) are only filled when more than one data value is passed (a single value goes to the message column).
- oEdtk::DBAdmin: tracking table schema — new ED_MESSAGE VARCHAR2(256) column added; lots table schema — ED_REFENC column moved (no functional change); error messages prefixed with ERROR:; one WARN level changed to INFO.
- oEdtk::Outmngr: omgr_check_acquit SQL — ORDER BY now includes STATUS; report format string adjusted. omgr_stats SQL — table name now from $cfg->{'EDTK_STATS_OUTMNGR'} instead of hardcoded EDTK_INDEX. Several WARN messages downgraded to INFO; END banner commented out.
- oEdtk::EDMS: zip-creation sub now returns 1; error messages prefixed with ERROR:.
- oEdtk::Run: several subs now return 1 explicitly; one WARN downgraded to INFO.
- oEdtk::C7Tag / oEdtk::SignedField / oEdtk::trackEdtk: only WARN → INFO message-level changes.
- lib scripts: cob2pm.pl — usage() now exits; identifier regex allows names longer than 31 chars; strips first-column comments; replaces _ with -; strips trailing whitespace; more detailed error messages. index_Run_lot.pl — mail subject no longer prefixed with EDTK_TYPE_ENV. check_oEdtk_ini.pl, db_historicize_*.pl, db_move.pl — print → warn, WARN → INFO. index_Block_refs.pl — WARN → INFO; abort message changed to die "ERROR: abort request". index_Statistics.pl, params_Export.pl, params_Import.pl — error messages prefixed with ERROR:. libDev.pm — message prefixes standardized (INFO :/ERROR:); one error check changed from $? to $@.
- MANIFEST, MANIFEST.SKIP, README: trailing-space changes only. META.yml: version bump only.
0.6122 2011-12-02
- execution control on cgi
- ISO dictionary of country codes
- control of acknowledgement return to the finisher for verification
- technical folio numbering in the lotissement
0.6115 2011-11-05
- SGBD connexion retry (3 times)
- correcting bug in FIFO configuration
0.6000 2011-06-01
- added ed_host in check ini
- ALTER table edtk_index modify ED_SEQLOT VARCHAR2(7); => modify the seqlots to add the year '391123' => '1391123'
- integrate the lotissement constraints (ed_cpdest => ed_constraint (e.g. values: "ED_CODRUPT = 'NOUVEL_ER'" or "ED_CPDEST like '75%' and ED_CODRUPT = 'NOUVEL_ER'" or "ED_HOST ='SRVPROD'" ))
- clean up Main.pm => oEUser.pm
- move CodRupt to 8 characters
- group the .tar files in the same deployment directory
- preview resume at the end of runEdtk.pl
- rounding management oEdtk::Main::oe_round
0.5000 2010-01-01
- LaTeX integration
- Output management integration
- Electronic Documents Management and Sharing integration
0.400 2009-01-01
- File configuration for developpements
- Developpement application launcher
- Integration of DSC Compuset launcher
- Beta text user interface for developpements
- Records methods for production
- Excel file spliting
- tracking module
- Documentation
0.30 2008-01-01
- Optimized for production version.
0.21 2007-01-01
- Production test version.
0.10 2006-01-01
- Functionnal version.
0.01 2005-01-01
- Original beta version.
Keyboard Shortcuts
Global
s
Focus search bar
?
Bring up this help dialog
GitHub
gp
Go to pull requests
gi
Go to GitHub issues (only if GitHub is preferred repository)