Version 1.0 + remove "experimental" notices

This commit is contained in:
Yorhel 2025-05-11 11:03:32 +02:00
parent 383ed8409c
commit 32c8fc1b89
13 changed files with 35 additions and 53 deletions

View file

@ -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
View file

@ -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>

View file

@ -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

View file

@ -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';

View file

@ -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';

View file

@ -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';

View file

@ -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;

View file

@ -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;

View file

@ -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/;

View file

@ -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

View file

@ -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_';

View file

@ -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');

View file

@ -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