From 942f0f41e06865a41f55ee8471c3c0573234370e Mon Sep 17 00:00:00 2001 From: Bo Bayles Date: Mon, 28 Jul 2025 09:19:10 -0500 Subject: [PATCH 01/11] Upgrade to ada 3.2.7 --- ada_url/ada.cpp | 11 ++++++++++- ada_url/ada.h | 9 +++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/ada_url/ada.cpp b/ada_url/ada.cpp index 16e3fe2..b796823 100644 --- a/ada_url/ada.cpp +++ b/ada_url/ada.cpp @@ -1,4 +1,4 @@ -/* auto-generated on 2025-07-16 22:15:14 -0400. Do not edit! */ +/* auto-generated on 2025-07-27 12:29:50 -0400. Do not edit! */ /* begin file src/ada.cpp */ #include "ada.h" /* begin file src/checkers.cpp */ @@ -9511,12 +9511,14 @@ bool is_label_valid(const std::u32string_view label) { for (size_t i = 0; i <= last_non_nsm_char; i++) { const direction d = find_direction(label[i]); + // NOLINTBEGIN(bugprone-assignment-in-if-condition) // In an RTL label, if an EN is present, no AN may be present, and vice // versa. if ((d == direction::EN && ((has_en = true) && has_an)) || (d == direction::AN && ((has_an = true) && has_en))) { return false; } + // NOLINTEND(bugprone-assignment-in-if-condition) if (!(d == direction::R || d == direction::AL || d == direction::AN || d == direction::EN || d == direction::ES || d == direction::CS || @@ -10908,6 +10910,7 @@ bool percent_encode(const std::string_view input, const uint8_t character_set[], } ada_log("percent_encode appending ", std::distance(input.begin(), pointer), " bytes"); + // NOLINTNEXTLINE(bugprone-suspicious-stringview-data-usage) out.append(input.data(), std::distance(input.begin(), pointer)); ada_log("percent_encode processing ", std::distance(pointer, input.end()), " bytes"); @@ -10942,6 +10945,7 @@ bool to_ascii(std::optional& out, const std::string_view plain, std::string percent_encode(const std::string_view input, const uint8_t character_set[], size_t index) { std::string out; + // NOLINTNEXTLINE(bugprone-suspicious-stringview-data-usage) out.append(input.data(), index); auto pointer = input.begin() + index; for (; pointer != input.end(); pointer++) { @@ -12008,6 +12012,7 @@ ada_warn_unused std::string to_string(ada::state state) { #include #include +#include #include #include #include @@ -12570,6 +12575,7 @@ ada_really_inline void url::parse_path(std::string_view input) { if (has_search()) { answer.append(",\n"); answer.append("\t\"query\":\""); + // NOLINTNEXTLINE(bugprone-unchecked-optional-access) helpers::encode_json(query.value(), back); answer.append("\""); } @@ -13316,6 +13322,7 @@ result_type parse_url_impl(std::string_view user_input, // If c is U+002F (/), then set state to relative slash state. if ((input_position != input_size) && + // NOLINTNEXTLINE(bugprone-branch-clone) (url_data[input_position] == '/')) { ada_log( "RELATIVE_SCHEME if c is U+002F (/), then set state to relative " @@ -13848,6 +13855,7 @@ template url_aggregator parse_url( /* end file src/parser.cpp */ /* begin file src/url_components.cpp */ +#include #include namespace ada { @@ -13897,6 +13905,7 @@ namespace ada { /* end file src/url_components.cpp */ /* begin file src/url_aggregator.cpp */ +#include #include #include #include diff --git a/ada_url/ada.h b/ada_url/ada.h index e0be62f..a525f93 100644 --- a/ada_url/ada.h +++ b/ada_url/ada.h @@ -1,4 +1,4 @@ -/* auto-generated on 2025-07-16 22:15:14 -0400. Do not edit! */ +/* auto-generated on 2025-07-27 12:29:50 -0400. Do not edit! */ /* begin file include/ada.h */ /** * @file ada.h @@ -947,7 +947,7 @@ constexpr uint8_t WWW_FORM_URLENCODED_PERCENT_ENCODE[32] = { // 50 51 52 53 54 55 56 57 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00, // 58 59 5A 5B 5C 5D 5E 5F - 0x00 | 0x00 | 0x00 | 0x08 | 0x00 | 0x20 | 0x40 | 0x00, + 0x00 | 0x00 | 0x00 | 0x08 | 0x10 | 0x20 | 0x40 | 0x00, // 60 61 62 63 64 65 66 67 0x01 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00, // 68 69 6A 6B 6C 6D 6E 6F @@ -6641,6 +6641,7 @@ inline std::ostream &operator<<(std::ostream &out, const ada::url &u) { out.protocol_end = uint32_t(get_protocol().size()); // Trailing index is always the next character of the current one. + // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) size_t running_index = out.protocol_end; if (host.has_value()) { @@ -10514,14 +10515,14 @@ constructor_string_parser::parse(std::string_view input) { #ifndef ADA_ADA_VERSION_H #define ADA_ADA_VERSION_H -#define ADA_VERSION "3.2.6" +#define ADA_VERSION "3.2.7" namespace ada { enum { ADA_VERSION_MAJOR = 3, ADA_VERSION_MINOR = 2, - ADA_VERSION_REVISION = 6, + ADA_VERSION_REVISION = 7, }; } // namespace ada From a40f4eebcc24d54aeef14609a3a484c3c0274066 Mon Sep 17 00:00:00 2001 From: Bo Bayles Date: Mon, 28 Jul 2025 09:19:29 -0500 Subject: [PATCH 02/11] Bump version to 1.26.0 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index e56678e..8bc4e27 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "ada-url" -version = "1.25.0" +version = "1.26.0" authors = [ {name = "Bo Bayles", email = "bo@bbayles.com"}, ] From bba98eeaa1cc47e77f264dc9efd6319ad4109860 Mon Sep 17 00:00:00 2001 From: Bo Bayles Date: Mon, 28 Jul 2025 09:24:02 -0500 Subject: [PATCH 03/11] Build docs on latest Ubuntu --- .readthedocs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 706d2d4..945e8ac 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -1,7 +1,7 @@ version: 2 build: - os: ubuntu-22.04 + os: ubuntu-lts-latest tools: python: "3.11" jobs: From 84c2889f88faa94fefcb364ef33d764805e67171 Mon Sep 17 00:00:00 2001 From: Bo Bayles Date: Mon, 28 Jul 2025 09:52:58 -0500 Subject: [PATCH 04/11] Which G++? --- .readthedocs.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 945e8ac..6a52cdb 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -6,6 +6,7 @@ build: python: "3.11" jobs: pre_install: + - g++ --version - make requirements - make package - python -m pip install -e . From 77ff47f54c099fe9689137f4bfdff276f04b13a4 Mon Sep 17 00:00:00 2001 From: Bo Bayles Date: Mon, 28 Jul 2025 10:15:29 -0500 Subject: [PATCH 05/11] Build docs with g++-13 --- .readthedocs.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 6a52cdb..e5d930e 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -2,10 +2,13 @@ version: 2 build: os: ubuntu-lts-latest + apt_packages: + - g++-13 tools: python: "3.11" jobs: pre_install: + - update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 100 - g++ --version - make requirements - make package From c3b0c0996b88488531bc513ced9e6055474c3d46 Mon Sep 17 00:00:00 2001 From: Bo Bayles Date: Mon, 28 Jul 2025 10:19:51 -0500 Subject: [PATCH 06/11] Where is g++? --- .readthedocs.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index e5d930e..450d66b 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -8,6 +8,7 @@ build: python: "3.11" jobs: pre_install: + - ls -la /usr/bin/g++ - update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 100 - g++ --version - make requirements From d830dd6886edbebfabbfc160364bd2a5837047a3 Mon Sep 17 00:00:00 2001 From: Bo Bayles Date: Mon, 28 Jul 2025 10:21:37 -0500 Subject: [PATCH 07/11] Where is g++-11? --- .readthedocs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 450d66b..8970fce 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -8,7 +8,7 @@ build: python: "3.11" jobs: pre_install: - - ls -la /usr/bin/g++ + - ls -la /usr/bin/g++-11 - update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 100 - g++ --version - make requirements From 467e525eea79d30c7101a77475b30f1f0c2f4db0 Mon Sep 17 00:00:00 2001 From: Bo Bayles Date: Mon, 28 Jul 2025 10:23:07 -0500 Subject: [PATCH 08/11] What are the other options? --- .readthedocs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 8970fce..a4e4da9 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -8,7 +8,7 @@ build: python: "3.11" jobs: pre_install: - - ls -la /usr/bin/g++-11 + - ls -la /usr/bin | grep -i g++ - update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 100 - g++ --version - make requirements From cca50678f36c47aa91565a3f789c008e00683dff Mon Sep 17 00:00:00 2001 From: Bo Bayles Date: Mon, 28 Jul 2025 10:24:41 -0500 Subject: [PATCH 09/11] Use clang++-13 --- .readthedocs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index a4e4da9..d354c7e 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -9,7 +9,7 @@ build: jobs: pre_install: - ls -la /usr/bin | grep -i g++ - - update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 100 + - update-alternatives --install /usr/bin/g++ g++ /usr/bin/clang++-13 100 - g++ --version - make requirements - make package From 0b234e15ed3b9090940ae727d390c29c9a97927c Mon Sep 17 00:00:00 2001 From: Bo Bayles Date: Mon, 28 Jul 2025 15:48:14 -0500 Subject: [PATCH 10/11] Environment change --- .readthedocs.yaml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index d354c7e..792e0f7 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -8,10 +8,7 @@ build: python: "3.11" jobs: pre_install: - - ls -la /usr/bin | grep -i g++ - - update-alternatives --install /usr/bin/g++ g++ /usr/bin/clang++-13 100 - - g++ --version - - make requirements + - CXX="/usr/bin/clang++-13" make requirements - make package - python -m pip install -e . sphinx: From 3d24fc682c8897c0b7c75e400c58a2fd1d048ebc Mon Sep 17 00:00:00 2001 From: Bo Bayles Date: Mon, 28 Jul 2025 16:00:47 -0500 Subject: [PATCH 11/11] Try on 24.04 --- .readthedocs.yaml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 792e0f7..0ccac1c 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -1,14 +1,12 @@ version: 2 build: - os: ubuntu-lts-latest - apt_packages: - - g++-13 + os: ubuntu-24.04 tools: python: "3.11" jobs: pre_install: - - CXX="/usr/bin/clang++-13" make requirements + - make requirements - make package - python -m pip install -e . sphinx: