From ecccf464a000743f768f06931b2e67b38d39ebdd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Jul 2026 22:56:36 +0200 Subject: [PATCH 1/4] Bump certifi from 2026.6.17 to 2026.7.22 (#1143) Bumps [certifi](https://github.com/certifi/python-certifi) from 2026.6.17 to 2026.7.22. - [Commits](https://github.com/certifi/python-certifi/compare/2026.06.17...2026.07.22) --- updated-dependencies: - dependency-name: certifi dependency-version: 2026.7.22 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 92add4689..eb1db817d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ attrs==26.1.0 -certifi==2026.6.17 +certifi==2026.7.22 charset-normalizer==3.4.9 idna==3.18 jsonschema==4.25.1 From 9afadc30203c5b78777983a353dcf5120adbcafa Mon Sep 17 00:00:00 2001 From: Andrei Ovcharenko Date: Thu, 30 Jul 2026 00:03:45 +0300 Subject: [PATCH 2/4] Retry transient download failures in the validator (#1145) Every run downloads the archive of every plugin in the list, so one dropped connection or gateway timeout on any single entry fails the whole validation and hides the real result. A recent run lost four unrelated plugins at once to ConnectionResetError(10054) from the release CDN, while the same JSON validated fine on the other two platforms. Downloads now go through a session that retries connection errors and the usual transient status codes three times with exponential backoff, and carries a 60 second timeout so a hung host cannot stall the job indefinitely. Permanent failures are unchanged: a host that stays unreachable still raises and a status that stays non-200 is still reported with the existing message, because the retry policy does not raise on status. --- validator.py | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/validator.py b/validator.py index 816ece204..62c0d0305 100755 --- a/validator.py +++ b/validator.py @@ -10,11 +10,26 @@ import requests from jsonschema import Draft202012Validator, FormatChecker +from requests.adapters import HTTPAdapter +from urllib3.util.retry import Retry from win32api import GetFileVersionInfo, LOWORD, HIWORD, error as win32api_error api_url = os.environ.get('APPVEYOR_API_URL') has_error = False +# Every run downloads the archive of every plugin in the list, so a single transient hiccup on any +# entry - a dropped connection, a gateway timeout - fails the whole validation and hides the real +# result. Retry those, and give up only when a host is genuinely unreachable. +DOWNLOAD_TIMEOUT_SECONDS = 60 +DOWNLOAD_RETRIES = Retry( + total=3, + backoff_factor=2, + status_forcelist=(408, 425, 429, 500, 502, 503, 504), + allowed_methods=frozenset(['GET']), + # Let the existing status code check report a persistent failure with its own message. + raise_on_status=False, +) + # Constants for creating the plugin list overview C_LINE_BREAK = '\x0d' C_LINE_FEED = '\x0a' @@ -38,6 +53,14 @@ def get_version_number(filename): return '.'.join(map(str, [HIWORD(ms), LOWORD(ms), HIWORD(ls), LOWORD(ls)])) +def create_download_session(): + session = requests.Session() + adapter = HTTPAdapter(max_retries=DOWNLOAD_RETRIES) + session.mount('https://', adapter) + session.mount('http://', adapter) + return session + + def post_error(message): global has_error @@ -182,6 +205,7 @@ def parse(filename): shutil.rmtree("./" + provided_architecture, True) os.mkdir("./" + provided_architecture) + download_session = create_download_session() for plugin in pl["npp-plugins"]: print(plugin["display-name"], end='') @@ -201,7 +225,10 @@ def parse(filename): print(f' *** {"; ".join(compatibility_messages)} ***') try: - response = requests.get(unquote_url(plugin["repository"])) + response = download_session.get( + unquote_url(plugin["repository"]), + timeout=DOWNLOAD_TIMEOUT_SECONDS, + ) except requests.exceptions.RequestException as e: post_error(f'{plugin["display-name"]}: {str(e)}') continue From 829423489bc336b80e558ca5f1f4e93b46b3c710 Mon Sep 17 00:00:00 2001 From: Andrei Ovcharenko Date: Thu, 30 Jul 2026 00:05:05 +0300 Subject: [PATCH 3/4] Update Markdown Table Editor to 11.1.0 (#1144) Co-authored-by: Claude Opus 5 --- src/pl.arm64.json | 6 +++--- src/pl.x64.json | 6 +++--- src/pl.x86.json | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/pl.arm64.json b/src/pl.arm64.json index 8c63ddb5a..fe2bc813a 100644 --- a/src/pl.arm64.json +++ b/src/pl.arm64.json @@ -184,10 +184,10 @@ { "folder-name": "MarkdownTableEditor", "display-name": "Markdown Table Editor", - "version": "11.0.2", + "version": "11.1.0", "npp-compatible-versions": "[8.3.1,]", - "id": "e6652a689d6b1781a23fb578eb9034dbbfd483ca608348ca4379b708465c0c6e", - "repository": "https://github.com/krotname/NppMarkdownTableEditor/releases/download/v11.0.2/MarkdownTableEditor-11.0.2-arm64-pluginadmin.zip", + "id": "37ed2e3ac28b514d3267e9bcd0cca18683d67ae817075e9f91a5b944c78e18ea", + "repository": "https://github.com/krotname/NppMarkdownTableEditor/releases/download/v11.1.0/MarkdownTableEditor-11.1.0-arm64-pluginadmin.zip", "description": "Edits Markdown pipe tables as aligned text. Align, fit width, narrow or widen columns, navigate, insert, delete, move and sort rows or columns, convert CSV/TSV blocks, and insert new tables from Notepad++.", "author": "Kreout", "homepage": "https://github.com/krotname/NppMarkdownTableEditor" diff --git a/src/pl.x64.json b/src/pl.x64.json index bd531efed..d99459fbd 100644 --- a/src/pl.x64.json +++ b/src/pl.x64.json @@ -867,10 +867,10 @@ { "folder-name": "MarkdownTableEditor", "display-name": "Markdown Table Editor", - "version": "11.0.2", + "version": "11.1.0", "npp-compatible-versions": "[8.3.1,]", - "id": "1c22f73d52b3586e00d8a757dd9af52589d497659dca81fb2c5b26d06d2ed553", - "repository": "https://github.com/krotname/NppMarkdownTableEditor/releases/download/v11.0.2/MarkdownTableEditor-11.0.2-x64-pluginadmin.zip", + "id": "a39a5f4cce2b726c585b80d142c755b1d2cd7cd3ef8c1afe6e3be41c0ff5fa40", + "repository": "https://github.com/krotname/NppMarkdownTableEditor/releases/download/v11.1.0/MarkdownTableEditor-11.1.0-x64-pluginadmin.zip", "description": "Edits Markdown pipe tables as aligned text. Align, fit width, narrow or widen columns, navigate, insert, delete, move and sort rows or columns, convert CSV/TSV blocks, and insert new tables from Notepad++.", "author": "Kreout", "homepage": "https://github.com/krotname/NppMarkdownTableEditor" diff --git a/src/pl.x86.json b/src/pl.x86.json index b7399f244..2005d89d5 100644 --- a/src/pl.x86.json +++ b/src/pl.x86.json @@ -882,10 +882,10 @@ { "folder-name": "MarkdownTableEditor", "display-name": "Markdown Table Editor", - "version": "11.0.2", + "version": "11.1.0", "npp-compatible-versions": "[7.5.9,]", - "id": "2f8fe08ab6c4c55b2111df2de398ecb185fa2691dea41083fad0e1f2138cb785", - "repository": "https://github.com/krotname/NppMarkdownTableEditor/releases/download/v11.0.2/MarkdownTableEditor-11.0.2-x86-pluginadmin.zip", + "id": "8d5b66e539cceef2bce664433616eacdf57c22cbd590d155f11c5d6266877bf5", + "repository": "https://github.com/krotname/NppMarkdownTableEditor/releases/download/v11.1.0/MarkdownTableEditor-11.1.0-x86-pluginadmin.zip", "description": "Edits Markdown pipe tables as aligned text. Align, fit width, narrow or widen columns, navigate, insert, delete, move and sort rows or columns, convert CSV/TSV blocks, and insert new tables from Notepad++.", "author": "Kreout", "homepage": "https://github.com/krotname/NppMarkdownTableEditor" From 56b89948f51812c891995187ac84d591565bc5f5 Mon Sep 17 00:00:00 2001 From: rdipardo <59004801+rdipardo@users.noreply.github.com> Date: Wed, 29 Jul 2026 17:09:38 -0400 Subject: [PATCH 4/4] HTMLTag v1.6.1 (#1141) https://github.com/rdipardo/nppHTMLTag/blob/v1.6.1/NEWS.textile --- src/pl.arm64.json | 6 +++--- src/pl.x64.json | 6 +++--- src/pl.x86.json | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/pl.arm64.json b/src/pl.arm64.json index fe2bc813a..665a97463 100644 --- a/src/pl.arm64.json +++ b/src/pl.arm64.json @@ -121,10 +121,10 @@ { "folder-name": "HTMLTag", "display-name": "HTML Tag", - "version": "1.6.0.0", + "version": "1.6.1.0", "npp-compatible-versions": "[8.3,]", - "id": "0f172f4244f31c180953682d3d30ba0c912ded7e2b235fea22aa9a117cb327bb", - "repository": "https://github.com/rdipardo/nppHTMLTag/releases/download/v1.6.0/HTMLTag_v1.6.0_arm64.zip", + "id": "870a1bd94c141e1c7d441a5ec1ae01a1c2650a86759b2b56822411738d4d1491", + "repository": "https://github.com/rdipardo/nppHTMLTag/releases/download/v1.6.1/HTMLTag_v1.6.1_arm64.zip", "description": "Provides three core functions:\r\n- HTML and XML tag jumping, like the built-in brace matching and selection\r\n of tags and/or contents.\r\n- HTML entity encoding/decoding (example: é to é)\r\n- JS character encoding/decoding (example: é to \\u00E9)", "author": "Martijn Coppoolse", "homepage": "https://github.com/rdipardo/nppHTMLTag" diff --git a/src/pl.x64.json b/src/pl.x64.json index d99459fbd..7e8ab11a1 100644 --- a/src/pl.x64.json +++ b/src/pl.x64.json @@ -656,11 +656,11 @@ { "folder-name": "HTMLTag", "display-name": "HTML Tag", - "version": "1.6.0.0", + "version": "1.6.1.0", "npp-compatible-versions": "[8.3,]", "old-versions-compatibility": "[,1.1][,8.2.1]", - "id": "0281be7b6f0c77661ba004e0c2f52f7f8b3289071535042879f8c69b242af5f4", - "repository": "https://github.com/rdipardo/nppHTMLTag/releases/download/v1.6.0/HTMLTag_v1.6.0_x64.zip", + "id": "32127f58479d106840a9790ed52296d62406e5715b63740ac96338d8ae8d515b", + "repository": "https://github.com/rdipardo/nppHTMLTag/releases/download/v1.6.1/HTMLTag_v1.6.1_x64.zip", "description": "Provides three core functions:\r\n- HTML and XML tag jumping, like the built-in brace matching and selection\r\n of tags and/or contents.\r\n- HTML entity encoding/decoding (example: é to é)\r\n- JS character encoding/decoding (example: é to \\u00E9)", "author": "Martijn Coppoolse", "homepage": "https://github.com/rdipardo/nppHTMLTag" diff --git a/src/pl.x86.json b/src/pl.x86.json index 2005d89d5..67c499eba 100644 --- a/src/pl.x86.json +++ b/src/pl.x86.json @@ -655,11 +655,11 @@ { "folder-name": "HTMLTag_unicode", "display-name": "HTML Tag", - "version": "1.6.0.0", + "version": "1.6.1.0", "npp-compatible-versions": "[7.7,]", "old-versions-compatibility": "[,1.1][,7.6.6]", - "id": "94872e5cc49d7b7e8bff641b1fc292ffbaba7a2d6841fe708137d4276d1384f6", - "repository": "https://github.com/rdipardo/nppHTMLTag/releases/download/v1.6.0/HTMLTag_v1.6.0.zip", + "id": "1d4fb8d05d14837620af8efa9314beb999ee99ab6760d0d3ea511afcab489808", + "repository": "https://github.com/rdipardo/nppHTMLTag/releases/download/v1.6.1/HTMLTag_v1.6.1.zip", "description": "Provides three core functions:\r\n- HTML and XML tag jumping, like the built-in brace matching and selection\r\n of tags and/or contents.\r\n- HTML entity encoding/decoding (example: é to é)\r\n- JS character encoding/decoding (example: é to \\u00E9)", "author": "Martijn Coppoolse", "homepage": "https://github.com/rdipardo/nppHTMLTag"