Version 1.0 + remove "experimental" notices
This commit is contained in:
parent
383ed8409c
commit
32c8fc1b89
13 changed files with 35 additions and 53 deletions
19
ChangeLog
19
ChangeLog
|
|
@ -1,3 +1,22 @@
|
||||||
|
1.0 - 2025-05-11
|
||||||
|
- FU::Util: Fix parsing of empty sections in query_decode()
|
||||||
|
- FU::Util: Fix buffer overflow in json_format() float formatting
|
||||||
|
- FU::Util: Reject `0x1f` in utf8_decode()
|
||||||
|
- FU::Pg: Add perl<->text and bin<->text type conversion methods
|
||||||
|
- FU::Validate: Improved error messages
|
||||||
|
- FU::MultipartFormData: Various parser fixes
|
||||||
|
- FU: Include request body in verbose error logs
|
||||||
|
- FU: Add fu->log_verbose()
|
||||||
|
- FU: Extend debug_info pages with request body, response body, 'fu'
|
||||||
|
object dump, expandable query parameters and interpolated SQL queries
|
||||||
|
- FU: Improve styling of debug_info pages
|
||||||
|
- FU: Preserve headers on fu->redirect
|
||||||
|
- FU: Ignore HTTP_CONTENT_LENGTH and HTTP_CONTENT_TYPE FastCGI parameters
|
||||||
|
- FU: Suppress warning about missing files in FU::monitor_path
|
||||||
|
- FU: Reject hash character and newlines in request path
|
||||||
|
- Fix creating read-only undef/true/false in json_parse() and FU::Pg
|
||||||
|
- Benchmark updates
|
||||||
|
|
||||||
0.5 - 2025-04-24
|
0.5 - 2025-04-24
|
||||||
- FU::Util: Set O_CLOEXEC on fds received through `fdpass_recv()`
|
- FU::Util: Set O_CLOEXEC on fds received through `fdpass_recv()`
|
||||||
- FU::Util: Fix interpretation of false options in `json_format()` and
|
- FU::Util: Fix interpretation of false options in `json_format()` and
|
||||||
|
|
|
||||||
15
FU.pm
15
FU.pm
|
|
@ -1,4 +1,4 @@
|
||||||
package FU 0.5;
|
package FU 1.0;
|
||||||
use v5.36;
|
use v5.36;
|
||||||
use Carp 'confess', 'croak';
|
use Carp 'confess', 'croak';
|
||||||
use IO::Socket;
|
use IO::Socket;
|
||||||
|
|
@ -978,14 +978,6 @@ __END__
|
||||||
|
|
||||||
FU - A Lean and Efficient Zero-Dependency Web Framework.
|
FU - A Lean and Efficient Zero-Dependency Web Framework.
|
||||||
|
|
||||||
=head1 EXPERIMENTAL
|
|
||||||
|
|
||||||
This module is still in development: it's missing important functionality and
|
|
||||||
there will likely be a few breaking API changes. This framework currently
|
|
||||||
powers manned.org as a test. I'll do a stable 1.0 release once FU is used in
|
|
||||||
production for vndb.org, which will take a few months in the best case
|
|
||||||
scenario.
|
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
use v5.36;
|
use v5.36;
|
||||||
|
|
@ -1011,6 +1003,11 @@ scenario.
|
||||||
|
|
||||||
=head1 DESCRIPTION
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
FU is the backend web framework developed for L<VNDB.org|https://vndb.org/> and
|
||||||
|
L<Manned.org|https://manned.org/>, but is also perfectly suitable for other
|
||||||
|
projects. Besides a web framework, this distrubion also includes a bunch of
|
||||||
|
handy utility functions and modules.
|
||||||
|
|
||||||
=head2 Distribution Overview
|
=head2 Distribution Overview
|
||||||
|
|
||||||
This top-level C<FU> module is a web development framework. The C<FU>
|
This top-level C<FU> module is a web development framework. The C<FU>
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ The following module versions were used:
|
||||||
|
|
||||||
=item L<DBD::Pg> 3.18.0
|
=item L<DBD::Pg> 3.18.0
|
||||||
|
|
||||||
=item L<FU> 0.5
|
=item L<FU> 1.0
|
||||||
|
|
||||||
=item L<HTML::Tiny> 1.08
|
=item L<HTML::Tiny> 1.08
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
# Internal module used by FU.pm
|
# Internal module used by FU.pm
|
||||||
package FU::DebugImpl 0.5;
|
package FU::DebugImpl 1.0;
|
||||||
use v5.36;
|
use v5.36;
|
||||||
use utf8;
|
use utf8;
|
||||||
use experimental 'for_list';
|
use experimental 'for_list';
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package FU::Log 0.5;
|
package FU::Log 1.0;
|
||||||
use v5.36;
|
use v5.36;
|
||||||
use Exporter 'import';
|
use Exporter 'import';
|
||||||
use POSIX 'strftime';
|
use POSIX 'strftime';
|
||||||
|
|
@ -65,11 +65,6 @@ __END__
|
||||||
|
|
||||||
FU::Log - Extremely Basic Process-Wide Logging Infrastructure
|
FU::Log - Extremely Basic Process-Wide Logging Infrastructure
|
||||||
|
|
||||||
=head1 EXPERIMENTAL
|
|
||||||
|
|
||||||
This module is still in development and there will likely be a few breaking API
|
|
||||||
changes, see the main L<FU> module for details.
|
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
use FU::Log 'log_write';
|
use FU::Log 'log_write';
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package FU::MultipartFormData 0.5;
|
package FU::MultipartFormData 1.0;
|
||||||
use v5.36;
|
use v5.36;
|
||||||
use Carp 'confess';
|
use Carp 'confess';
|
||||||
use FU::Util 'utf8_decode';
|
use FU::Util 'utf8_decode';
|
||||||
|
|
|
||||||
7
FU/Pg.pm
7
FU/Pg.pm
|
|
@ -1,4 +1,4 @@
|
||||||
package FU::Pg 0.5;
|
package FU::Pg 1.0;
|
||||||
use v5.36;
|
use v5.36;
|
||||||
use FU::XS;
|
use FU::XS;
|
||||||
|
|
||||||
|
|
@ -35,11 +35,6 @@ __END__
|
||||||
|
|
||||||
FU::Pg - The Ultimate (synchronous) Interface to PostgreSQL
|
FU::Pg - The Ultimate (synchronous) Interface to PostgreSQL
|
||||||
|
|
||||||
=head1 EXPERIMENTAL
|
|
||||||
|
|
||||||
This module is still in development and there will likely be a few breaking API
|
|
||||||
changes, see the main L<FU> module for details.
|
|
||||||
|
|
||||||
=head1 SYNOPSYS
|
=head1 SYNOPSYS
|
||||||
|
|
||||||
use FU::Pg;
|
use FU::Pg;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package FU::SQL 0.5;
|
package FU::SQL 1.0;
|
||||||
use v5.36;
|
use v5.36;
|
||||||
use Exporter 'import';
|
use Exporter 'import';
|
||||||
use Carp 'confess';
|
use Carp 'confess';
|
||||||
|
|
@ -103,11 +103,6 @@ __END__
|
||||||
|
|
||||||
FU::SQL - Small and Safe SQL Query Builder
|
FU::SQL - Small and Safe SQL Query Builder
|
||||||
|
|
||||||
=head1 EXPERIMENTAL
|
|
||||||
|
|
||||||
This module is still in development and there will likely be a few breaking API
|
|
||||||
changes, see the main L<FU> module for details.
|
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
use FU::SQL;
|
use FU::SQL;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package FU::Util 0.5;
|
package FU::Util 1.0;
|
||||||
|
|
||||||
use v5.36;
|
use v5.36;
|
||||||
use FU::XS;
|
use FU::XS;
|
||||||
|
|
@ -98,11 +98,6 @@ __END__
|
||||||
|
|
||||||
FU::Util - Miscellaneous Utility Functions
|
FU::Util - Miscellaneous Utility Functions
|
||||||
|
|
||||||
=head1 EXPERIMENTAL
|
|
||||||
|
|
||||||
This module is still in development and there will likely be a few breaking API
|
|
||||||
changes, see the main L<FU> module for details.
|
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
use FU::Util qw/json_format/;
|
use FU::Util qw/json_format/;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package FU::Validate 0.5;
|
package FU::Validate 1.0;
|
||||||
|
|
||||||
use v5.36;
|
use v5.36;
|
||||||
use experimental 'builtin', 'for_list';
|
use experimental 'builtin', 'for_list';
|
||||||
|
|
@ -447,11 +447,6 @@ __END__
|
||||||
|
|
||||||
FU::Validate - Data and form validation and normalization
|
FU::Validate - Data and form validation and normalization
|
||||||
|
|
||||||
=head1 EXPERIMENTAL
|
|
||||||
|
|
||||||
This module is still in development and there will likely be a few breaking API
|
|
||||||
changes, see the main L<FU> module for details.
|
|
||||||
|
|
||||||
=head1 DESCRIPTION
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
This module provides an easy and simple interface for data validation. It can
|
This module provides an easy and simple interface for data validation. It can
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package FU::XMLWriter 0.5;
|
package FU::XMLWriter 1.0;
|
||||||
use v5.36;
|
use v5.36;
|
||||||
use Carp 'confess';
|
use Carp 'confess';
|
||||||
use Exporter 'import';
|
use Exporter 'import';
|
||||||
|
|
@ -83,11 +83,6 @@ __END__
|
||||||
|
|
||||||
FU::XMLWriter - Convenient and efficient XML and HTML generator.
|
FU::XMLWriter - Convenient and efficient XML and HTML generator.
|
||||||
|
|
||||||
=head1 EXPERIMENTAL
|
|
||||||
|
|
||||||
This module is still in development and there will likely be a few breaking API
|
|
||||||
changes, see the main L<FU> module for details.
|
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
use FU::XMLWriter ':html5_';
|
use FU::XMLWriter ':html5_';
|
||||||
|
|
|
||||||
2
FU/XS.pm
2
FU/XS.pm
|
|
@ -1,5 +1,5 @@
|
||||||
# This module is for internal use by other FU modules.
|
# This module is for internal use by other FU modules.
|
||||||
package FU::XS 0.5;
|
package FU::XS 1.0;
|
||||||
use Carp; # may be called by XS.
|
use Carp; # may be called by XS.
|
||||||
use XSLoader;
|
use XSLoader;
|
||||||
XSLoader::load('FU');
|
XSLoader::load('FU');
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,6 @@ collection of handy utility modules.
|
||||||
|
|
||||||
*Contributing:* Refer to my [contribution guidelines](https://dev.yorhel.nl/contributing).
|
*Contributing:* Refer to my [contribution guidelines](https://dev.yorhel.nl/contributing).
|
||||||
|
|
||||||
## Project Status
|
|
||||||
|
|
||||||
**EXPERIMENTAL**; expect breaking changes.
|
|
||||||
|
|
||||||
## Build & Install
|
## Build & Install
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue