Skip to content

Commit 30b00e7

Browse files
committed
Merge branch 'release/v6.1.5'
2 parents 8814f4e + 9800fb7 commit 30b00e7

File tree

20 files changed

+133
-126
lines changed

20 files changed

+133
-126
lines changed

.github/workflows/projects.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
- smartknob:
2222
repository: "scottbez1/smartknob"
2323
folder: "smartknob"
24-
config_dir: "smartknob/firmware"
24+
config_dir: "smartknob"
2525
env_name: "view"
2626
- espurna:
2727
repository: "xoseperez/espurna"

HISTORY.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,15 @@ PlatformIO Core 6
1313

1414
**A professional collaborative platform for declarative, safety-critical, and test-driven embedded development.**
1515

16+
6.1.5 (2022-11-01)
17+
~~~~~~~~~~~~~~~~~~
18+
19+
* Added a new `enable_proxy_strict_ssl <https://docs.platformio.org/en/latest/core/userguide/cmd_settings.html>`__ setting to disable the proxy server certificate verification (`issue #4432 <https://github.com/platformio/platformio-core/issues/4432>`_)
20+
* Documented `PlatformIO Core Proxy Configuration <https://docs.platformio.org/en/latest/core/installation/proxy-configuration.html>`__
21+
* Speeded up device port finder by avoiding loading board HWIDs from development platforms
22+
* Improved caching of build metadata in debug mode
23+
* Fixed an issue when `pio pkg install --storage-dir <https://docs.platformio.org/en/latest/core/userguide/pkg/cmd_install.html>`__ command requires PlatformIO project (`issue #4410 <https://github.com/platformio/platformio-core/issues/4410>`_)
24+
1625
6.1.4 (2022-08-12)
1726
~~~~~~~~~~~~~~~~~~
1827

docs

Submodule docs updated 41 files

platformio/__init__.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
import sys
1616

17-
VERSION = (6, 1, 4)
17+
VERSION = (6, 1, 5)
1818
__version__ = ".".join([str(s) for s in VERSION])
1919

2020
__title__ = "platformio"
@@ -44,8 +44,6 @@
4444
]
4545
__pioremote_endpoint__ = "ssl:host=remote.platformio.org:port=4413"
4646

47-
__default_requests_timeout__ = (10, None) # (connect, read)
48-
4947
__core_packages__ = {
5048
"contrib-piohome": "~3.4.2",
5149
"contrib-pysite": "~2.%d%d.0" % (sys.version_info.major, sys.version_info.minor),

platformio/app.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ def projects_dir_validate(projects_dir):
5858
"value": get_default_projects_dir(),
5959
"validator": projects_dir_validate,
6060
},
61+
"enable_proxy_strict_ssl": {
62+
"description": "Verify the proxy server certificate against the list of supplied CAs",
63+
"value": True,
64+
},
6165
}
6266

6367
SESSION_VARS = {

platformio/builder/tools/piointegration.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525

2626
def IsIntegrationDump(_):
27-
return set(["_idedata", "idedata"]) & set(COMMAND_LINE_TARGETS)
27+
return set(["__idedata", "idedata"]) & set(COMMAND_LINE_TARGETS)
2828

2929

3030
def DumpIntegrationIncludes(env):
@@ -147,6 +147,7 @@ def _subst_cmd(env, cmd):
147147
def DumpIntegrationData(*args):
148148
projenv, globalenv = args[0:2] # pylint: disable=unbalanced-tuple-unpacking
149149
data = {
150+
"build_type": globalenv.GetBuildType(),
150151
"env_name": globalenv["PIOENV"],
151152
"libsource_dirs": [
152153
globalenv.subst(item) for item in globalenv.GetLibSourceDirs()

platformio/debug/config/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ def server_ready_pattern(self):
145145
)
146146

147147
def _load_build_data(self):
148-
data = load_build_metadata(os.getcwd(), self.env_name, cache=True)
148+
data = load_build_metadata(os.getcwd(), self.env_name, cache=True, debug=True)
149149
if data:
150150
return data
151151
raise DebugInvalidOptionsError("Could not load a build configuration")

platformio/device/finder.py

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
import os
1616
from fnmatch import fnmatch
17+
from functools import lru_cache
1718

1819
import click
1920
import serial
@@ -119,6 +120,8 @@ def match_serial_port(pattern):
119120

120121
@staticmethod
121122
def match_device_hwid(patterns):
123+
if not patterns:
124+
return None
122125
for item in list_serial_ports(as_objects=True):
123126
if not item.vid or not item.pid:
124127
continue
@@ -143,10 +146,10 @@ def find(self, initial_port=None):
143146
if not device:
144147
device = self._find_known_device()
145148
if device:
146-
port = self._reveal_device_port(device)
149+
return self._reveal_device_port(device)
147150

148151
# pick the best PID:VID USB device
149-
best_port = None
152+
port = best_port = None
150153
for item in list_serial_ports():
151154
if self.ensure_ready and not is_serial_port_ready(item["port"]):
152155
continue
@@ -215,20 +218,26 @@ def _find_known_device(self):
215218
if os.path.isfile(udev_rules_path):
216219
hwids.extend(parse_udev_rules_hwids(udev_rules_path))
217220

218-
# load from installed dev-platforms
219-
for platform in PlatformPackageManager().get_installed():
220-
p = PlatformFactory.new(platform)
221-
for board_config in p.get_boards().values():
222-
for board_hwid in board_config.get("build.hwids", []):
223-
board_hwid = self.normalize_board_hwid(board_hwid)
224-
if board_hwid not in hwids:
225-
hwids.append(board_hwid)
221+
@lru_cache(maxsize=1)
222+
def _fetch_hwids_from_platforms():
223+
"""load from installed dev-platforms"""
224+
result = []
225+
for platform in PlatformPackageManager().get_installed():
226+
p = PlatformFactory.new(platform)
227+
for board_config in p.get_boards().values():
228+
for board_hwid in board_config.get("build.hwids", []):
229+
board_hwid = self.normalize_board_hwid(board_hwid)
230+
if board_hwid not in result:
231+
result.append(board_hwid)
232+
return result
226233

227234
try:
228235

229236
@retry(timeout=self.timeout)
230237
def wrapper():
231238
device = self.match_device_hwid(hwids)
239+
if not device:
240+
device = self.match_device_hwid(_fetch_hwids_from_platforms())
232241
if device:
233242
return device
234243
raise retry.RetryNextException()

platformio/home/helpers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@
1414

1515
import socket
1616

17-
import requests
1817
from starlette.concurrency import run_in_threadpool
1918

2019
from platformio import util
2120
from platformio.compat import IS_WINDOWS
21+
from platformio.http import HTTPSession
2222
from platformio.proc import where_is_program
2323

2424

25-
class AsyncSession(requests.Session):
25+
class AsyncSession(HTTPSession):
2626
async def request( # pylint: disable=signature-differs,invalid-overridden-method
2727
self, *args, **kwargs
2828
):

platformio/home/rpc/handlers/os.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
import click
2222

23-
from platformio import __default_requests_timeout__, fs
23+
from platformio import fs
2424
from platformio.cache import ContentCache
2525
from platformio.device.list.util import list_logical_devices
2626
from platformio.home import helpers
@@ -50,13 +50,9 @@ async def fetch_content(uri, data=None, headers=None, cache_valid=None):
5050

5151
session = helpers.requests_session()
5252
if data:
53-
r = await session.post(
54-
uri, data=data, headers=headers, timeout=__default_requests_timeout__
55-
)
53+
r = await session.post(uri, data=data, headers=headers)
5654
else:
57-
r = await session.get(
58-
uri, headers=headers, timeout=__default_requests_timeout__
59-
)
55+
r = await session.get(uri, headers=headers)
6056

6157
r.raise_for_status()
6258
result = r.text

0 commit comments

Comments
 (0)