From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pve-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
	by lore.proxmox.com (Postfix) with ESMTPS id F31091FF164
	for <inbox@lore.proxmox.com>; Fri, 20 Dec 2024 19:52:42 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 619EBBFEB;
	Fri, 20 Dec 2024 19:52:42 +0100 (CET)
From: Max Carrara <m.carrara@proxmox.com>
To: pve-devel@lists.proxmox.com
Date: Fri, 20 Dec 2024 19:51:55 +0100
Message-Id: <20241220185207.519912-1-m.carrara@proxmox.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.036 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DMARC_MISSING             0.1 Missing DMARC policy
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more
 information. [proxmox.com, path.pm, filesystem.pm]
Subject: [pve-devel] [PATCH v2 pve-common 00/12] Introduce and Package
 PVE::Path & PVE::Filesystem
X-BeenThere: pve-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

Introduce and Package PVE::Path & PVE::Filesystem - v2
======================================================

Notable Changes Since v1
------------------------

Incorporate Thomas's feedback [1] as much as possible.

I was probably too eager to push this out yesterday and did notice many
spots where the amount of test cases / tests being performed can be
reduced significantly. The original commit that added all the tests to
begin with is also split into multiple smaller commits to hopefully make
reviewing this easier. The total amount of tests performed has therefore
gone down from 1050 to 475 if I counted correctly (yikes).

The only things that are still tested more elaborately are the file name
manipulation and path comparison functions. There is some potential to
slim those down as well, but I wanted to get a v2 out before Christmas
for some additional feedback.

Additionally, there was one slight discrepancy I noticed between how I
documented path_parent and it's actual behaviour -- the behaviour was
adapted accordingly. The behaviour of the boolean functions
path_is_absolute and path_is_relative is also improved. See patch 01 for
all details.

Closing Remarks
---------------

As always, any feedback is welcome -- if possible, it would be nice if
somebody could give these two modules a spin and tell me how they feel.
If there's anything that is or feels unexpected, surprising,
inconsistent, etc. please let me know!

References
----------

[1]: https://lore.proxmox.com/pve-devel/4990a4b4-5027-4db2-9909-d36af8a54a07@proxmox.com/

Older Versions
--------------

v1: https://lore.proxmox.com/pve-devel/20241219183143.526267-1-m.carrara@proxmox.com/

Summary of Changes
------------------

Max Carrara (12):
  introduce PVE::Path
  test: add directory for tests of PVE::Path module
  test: add tests for path_is_absolute and path_is_relative of PVE::Path
  test: add tests for path_components of PVE::Path
  test: add tests for path_join of PVE::Path
  test: add tests for path_push of PVE::Path
  test: add tests for path_parent of PVE::Path
  test: add tests for path_starts_with, path_ends_with, path_equals
  test: add test for file path operation functions of PVE::Path
  test: add tests for path_normalize of PVE::Path
  introduce PVE::Filesystem
  debian: introduce package libproxmox-fs-path-utils-perl

 debian/control                               |    6 +
 debian/libproxmox-fs-path-utils-perl.install |    2 +
 debian/libpve-common-perl.install            |   29 +
 src/Makefile                                 |    2 +
 src/PVE/Filesystem.pm                        |   78 ++
 src/PVE/Path.pm                              |  987 ++++++++++++++
 test/Makefile                                |    5 +-
 test/Path/Makefile                           |   24 +
 test/Path/path_comparison_tests.pl           |  851 ++++++++++++
 test/Path/path_components_tests.pl           |  159 +++
 test/Path/path_file_ops_tests.pl             | 1220 ++++++++++++++++++
 test/Path/path_is_absolute_relative_tests.pl |  122 ++
 test/Path/path_join_tests.pl                 |  310 +++++
 test/Path/path_normalize_tests.pl            |  176 +++
 test/Path/path_parent_tests.pl               |  153 +++
 test/Path/path_push_tests.pl                 |  159 +++
 16 files changed, 4282 insertions(+), 1 deletion(-)
 create mode 100644 debian/libproxmox-fs-path-utils-perl.install
 create mode 100644 debian/libpve-common-perl.install
 create mode 100644 src/PVE/Filesystem.pm
 create mode 100644 src/PVE/Path.pm
 create mode 100644 test/Path/Makefile
 create mode 100755 test/Path/path_comparison_tests.pl
 create mode 100755 test/Path/path_components_tests.pl
 create mode 100755 test/Path/path_file_ops_tests.pl
 create mode 100755 test/Path/path_is_absolute_relative_tests.pl
 create mode 100755 test/Path/path_join_tests.pl
 create mode 100755 test/Path/path_normalize_tests.pl
 create mode 100755 test/Path/path_parent_tests.pl
 create mode 100755 test/Path/path_push_tests.pl

-- 
2.39.5



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel