Skip to content

Commit 0d00d05

Browse files
committed
Merge branch 'release/v4.0.0'
2 parents f078548 + fe210aa commit 0d00d05

File tree

115 files changed

+6955
-3168
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

115 files changed

+6955
-3168
lines changed

.appveyor.yml

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
build: off
22

33
platform:
4-
- x86
54
- x64
65

76
environment:
87
matrix:
98
- TOXENV: "py27"
9+
PLATFORMIO_BUILD_CACHE_DIR: C:/Temp/PIO_Build_Cache_P2_{build}
10+
11+
- TOXENV: "py36"
12+
PLATFORMIO_BUILD_CACHE_DIR: C:/Temp/PIO_Build_Cache_P3_{build}
1013

1114
install:
1215
- cmd: git submodule update --init --recursive
1316
- cmd: SET PATH=C:\MinGW\bin;%PATH%
14-
- if %PLATFORM% == x64 SET PATH=C:\Python27-x64;C:\Python27-x64\Scripts;%PATH%
15-
- if %PLATFORM% == x86 SET PATH=C:\Python27;C:\Python27\Scripts;%PATH%
16-
- cmd: pip install tox
17+
- cmd: pip install --force-reinstall tox
1718

1819
test_script:
1920
- cmd: tox

.github/FUNDING.yml

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
custom: https://platformio.org/donate

.isort.cfg

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
[settings]
22
line_length=79
3-
known_third_party=bottle,click,pytest,requests,SCons,semantic_version,serial
3+
known_third_party=bottle,click,pytest,requests,SCons,semantic_version,serial,twisted,autobahn,jsonrpc

.pylintrc

+11-22
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,12 @@
11
[MESSAGES CONTROL]
2-
3-
# Only show warnings with the listed confidence levels. Leave empty to show
4-
# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED
5-
confidence=
6-
7-
# Enable the message, report, category or checker with the given id(s). You can
8-
# either give multiple identifier separated by comma (,) or put this option
9-
# multiple time. See also the "--disable" option for examples.
10-
#enable=
11-
12-
# Disable the message, report, category or checker with the given id(s). You
13-
# can either give multiple identifiers separated by comma (,) or put this
14-
# option multiple times (only on the command line, not in the configuration
15-
# file where it should appear only once).You can also use "--disable=all" to
16-
# disable everything first and then reenable specific checks. For example, if
17-
# you want to run only the similarities checker, you can use "--disable=all
18-
# --enable=similarities". If you want to run only the classes checker, but have
19-
# no Warning level messages displayed, use"--disable=all --enable=classes
20-
# --disable=W"
21-
# disable=import-star-module-level,old-octal-literal,oct-method,print-statement,unpacking-in-except,parameter-unpacking,backtick,old-raise-syntax,old-ne-operator,long-suffix,dict-view-method,dict-iter-method,metaclass-assignment,next-method-called,raising-string,indexing-exception,raw_input-builtin,long-builtin,file-builtin,execfile-builtin,coerce-builtin,cmp-builtin,buffer-builtin,basestring-builtin,apply-builtin,filter-builtin-not-iterating,using-cmp-argument,useless-suppression,range-builtin-not-iterating,suppressed-message,no-absolute-import,old-division,cmp-method,reload-builtin,zip-builtin-not-iterating,intern-builtin,unichr-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,input-builtin,round-builtin,hex-method,nonzero-method,map-builtin-not-iterating
22-
23-
disable=locally-disabled,missing-docstring,invalid-name,too-few-public-methods,redefined-variable-type,import-error,similarities,unsupported-membership-test,unsubscriptable-object,ungrouped-imports,cyclic-import,superfluous-parens
2+
disable=
3+
missing-docstring,
4+
ungrouped-imports,
5+
invalid-name,
6+
cyclic-import,
7+
duplicate-code,
8+
superfluous-parens,
9+
too-few-public-methods,
10+
useless-object-inheritance,
11+
useless-import-alias,
12+
fixme

.travis.yml

+6-6
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,24 @@ matrix:
77
python: 2.7
88
env: TOX_ENV=docs
99
- os: linux
10-
sudo: false
10+
sudo: required
1111
python: 2.7
12-
env: TOX_ENV=lint
12+
env: TOX_ENV=py27 PLATFORMIO_BUILD_CACHE_DIR=$(mktemp -d)
1313
- os: linux
1414
sudo: required
15-
python: 2.7
16-
env: TOX_ENV=py27
15+
python: 3.6
16+
env: TOX_ENV=py36 PLATFORMIO_BUILD_CACHE_DIR=$(mktemp -d)
1717
- os: osx
1818
language: generic
1919
env: TOX_ENV=skipexamples
2020

2121
install:
2222
- git submodule update --init --recursive
2323
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then curl -fsSL https://bootstrap.pypa.io/get-pip.py | sudo python; fi
24-
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then sudo pip install "tox==3.0.0"; else pip install -U tox; fi
24+
- pip install -U tox
2525

2626
# ChipKIT issue: install 32-bit support for GCC PIC32
27-
- if [[ "$TOX_ENV" == "py27" ]] && [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libc6-i386; fi
27+
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libc6-i386; fi
2828

2929
script:
3030
- tox -e $TOX_ENV

.vscode/settings.json

-15
This file was deleted.

HISTORY.rst

+72
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,78 @@
11
Release Notes
22
=============
33

4+
.. _release_notes_4_0:
5+
6+
PlatformIO 4.0
7+
--------------
8+
9+
4.0.0 (2019-07-10)
10+
~~~~~~~~~~~~~~~~~~
11+
12+
`Migration Guide from 3.0 to 4.0 <http://docs.platformio.org/page/migration.html>`__.
13+
14+
* `PlatformIO Plus Goes Open Source <https://community.platformio.org/t/platformio-plus-goes-open-source-improving-embedded-development-community-worldwide/8240/4>`__
15+
16+
- Built-in `PIO Unified Debugger <http://docs.platformio.org/page/plus/debugging.html>`__
17+
- Built-in `PIO Unit Testing <http://docs.platformio.org/page/plus/unit-testing.html>`__
18+
19+
* **Project Configuration**
20+
21+
- New project configuration parser with a strict options typing (`API <https://github.com/platformio/platformio-core/blob/develop/platformio/project/options.py>`__)
22+
- Unified workspace storage (`workspace_dir <http://docs.platformio.org/page/projectconf/section_platformio.html#workspace-dir>`__ -> ``.pio``) for PlatformIO Build System, Library Manager, and other internal services (`issue #1778 <https://github.com/platformio/platformio-core/issues/1778>`_)
23+
- Share common (global) options between project environments using `[env] <http://docs.platformio.org/page/projectconf/section_env.html#global-scope-env>`__ section (`issue #1643 <https://github.com/platformio/platformio-core/issues/1643>`_)
24+
- Include external configuration files with `extra_configs <http://docs.platformio.org/page/projectconf/section_platformio.html#extra-configs>`__ option (`issue #1590 <https://github.com/platformio/platformio-core/issues/1590>`_)
25+
- Custom project ``***_dir`` options declared in `platformio <http://docs.platformio.org/page/projectconf/section_platformio.html>`__ section have higher priority than `Environment variables <http://docs.platformio.org/page/envvars.html>`__
26+
- Added support for Unix shell-style wildcards for `monitor_port <http://docs.platformio.org/page/projectconf/section_env_monitor.html#monitor-port>`__ option (`issue #2541 <https://github.com/platformio/platformio-core/issues/2541>`_)
27+
- Added new `monitor_flags <http://docs.platformio.org/page/projectconf/section_env_monitor.html#monitor-flags>`__ option which allows passing extra flags and options to `platformio device monitor <http://docs.platformio.org/page/userguide/cmd_device.html#cmd-device-monitor>`__ command (`issue #2165 <https://github.com/platformio/platformio-core/issues/2165>`_)
28+
- Added support for `PLATFORMIO_DEFAULT_ENVS <http://docs.platformio.org/page/envvars.html#envvar-PLATFORMIO_DEFAULT_ENVS>`__ system environment variable (`issue #1967 <https://github.com/platformio/platformio-core/issues/1967>`_)
29+
- Added support for `shared_dir <http://docs.platformio.org/page/projectconf/section_platformio.html#shared-dir>`__ where you can place an extra files (extra scripts, LD scripts, etc.) which should be transferred to a `PIO Remote <http://docs.platformio.org/page/plus/pio-remote.html>`__ machine
30+
31+
* **Library Management**
32+
33+
- Switched to workspace ``.pio/libdeps`` folder for project dependencies instead of ``.piolibdeps``
34+
- Save libraries passed to `platformio lib install <http://docs.platformio.org/page/userguide/lib/cmd_install.html>`__ command into the project dependency list (`lib_deps <http://docs.platformio.org/page/projectconf/section_env_library.html#lib-deps>`__) with a new ``--save`` flag (`issue #1028 <https://github.com/platformio/platformio-core/issues/1028>`_)
35+
- Install all project dependencies declared via `lib_deps <http://docs.platformio.org/page/projectconf/section_env_library.html#lib-deps>`__ option using a simple `platformio lib install <http://docs.platformio.org/page/userguide/lib/cmd_install.html>`__ command (`issue #2147 <https://github.com/platformio/platformio-core/issues/2147>`_)
36+
- Use isolated library dependency storage per project build environment (`issue #1696 <https://github.com/platformio/platformio-core/issues/1696>`_)
37+
- Look firstly in built-in library storages for a missing dependency instead of PlatformIO Registry (`issue #1654 <https://github.com/platformio/platformio-core/issues/1654>`_)
38+
- Override default source and include directories for a library via `library.json <http://docs.platformio.org/page/librarymanager/config.html>`__ manifest using ``includeDir`` and ``srcDir`` fields
39+
- Fixed an issue when library keeps reinstalling for non-latin path (`issue #1252 <https://github.com/platformio/platformio-core/issues/1252>`_)
40+
- Fixed an issue when `lib_compat_mode = strict <http://docs.platformio.org/page/librarymanager/ldf.html#ldf-compat-mode>`__ does not ignore libraries incompatible with a project framework
41+
42+
* **Build System**
43+
44+
- Switched to workspace ``.pio/build`` folder for build artifacts instead of ``.pioenvs``
45+
- Switch between `Build Configurations <http://docs.platformio.org/page/projectconf/build_configurations.html>`__ (``release`` and ``debug``) with a new project configuration option `build_type <http://docs.platformio.org/page/projectconf/section_env_build.html#build-type>`__
46+
- Custom `platform_packages <http://docs.platformio.org/page/projectconf/section_env_general.html#platform>`__ per a build environment with an option to override default (`issue #1367 <https://github.com/platformio/platformio-core/issues/1367>`_)
47+
- Print platform package details, such as version, VSC source and commit (`issue #2155 <https://github.com/platformio/platformio-core/issues/2155>`_)
48+
- Control a number of parallel build jobs with a new `-j, --jobs <http://docs.platformio.org/page/userguide/cmd_run.html#cmdoption-platformio-run-j>`__ option
49+
- Override default `"platformio.ini" (Project Configuration File) <https://docs.platformio.org/page/projectconf.html>`__ with a custom using ``-c, --project-conf`` option for `platformio run <http://docs.platformio.org/page/userguide/cmd_run.html>`__, `platformio debug <http://docs.platformio.org/page/userguide/cmd_debug.html>`__, or `platformio test <http://docs.platformio.org/page/userguide/cmd_test.html>`__ commands (`issue #1913 <https://github.com/platformio/platformio-core/issues/1913>`_)
50+
- Override default development platform upload command with a custom `upload_command <http://docs.platformio.org/page/projectconf/section_env_upload.html#upload-command>`__ (`issue #2599 <https://github.com/platformio/platformio-core/issues/2599>`_)
51+
- Configure a shared folder for the derived files (objects, firmwares, ELFs) from a build system using `build_cache_dir <http://docs.platformio.org/page/projectconf/section_platformio.html#build-cache-dir>`__ option (`issue #2674 <https://github.com/platformio/platformio-core/issues/2674>`_)
52+
- Fixed an issue when ``-U`` in ``build_flags`` does not remove macro previously defined via ``-D`` flag (`issue #2508 <https://github.com/platformio/platformio-core/issues/2508>`_)
53+
54+
* **Infrastructure**
55+
56+
- Python 3 support (`issue #895 <https://github.com/platformio/platformio-core/issues/895>`_)
57+
- Significantly speedup back-end for PIO Home. It works super fast now!
58+
- Added support for the latest Python "Click" package (CLI) (`issue #349 <https://github.com/platformio/platformio-core/issues/349>`_)
59+
- Added options to override default locations used by PlatformIO Core (`core_dir <http://docs.platformio.org/page/projectconf/section_platformio.html#core-dir>`__, `globallib_dir <http://docs.platformio.org/page/projectconf/section_platformio.html#globallib-dir>`__, `platforms_dir <http://docs.platformio.org/page/projectconf/section_platformio.html#platforms-dir>`__, `packages_dir <http://docs.platformio.org/page/projectconf/section_platformio.html#packages-dir>`__, `cache_dir <http://docs.platformio.org/page/projectconf/section_platformio.html#cache-dir>`__) (`issue #1615 <https://github.com/platformio/platformio-core/issues/1615>`_)
60+
- Removed line-buffering from `platformio run <http://docs.platformio.org/page/userguide/cmd_run.html>`__ command which was leading to omitting progress bar from upload tools (`issue #856 <https://github.com/platformio/platformio-core/issues/856>`_)
61+
- Fixed numerous issues related to "UnicodeDecodeError" and international locales, or when project path contains non-ASCII chars (`issue #143 <https://github.com/platformio/platformio-core/issues/143>`_, `issue #1342 <https://github.com/platformio/platformio-core/issues/1342>`_, `issue #1959 <https://github.com/platformio/platformio-core/issues/1959>`_, `issue #2100 <https://github.com/platformio/platformio-core/issues/2100>`_)
62+
63+
* **Integration**
64+
65+
- Support custom CMake configuration for CLion IDE using ``CMakeListsUser.txt`` file
66+
- Fixed an issue with hardcoded C standard version when generating project for CLion IDE (`issue #2527 <https://github.com/platformio/platformio-core/issues/2527>`_)
67+
- Fixed an issue with Project Generator when an include path search order is inconsistent to what passed to the compiler (`issue #2509 <https://github.com/platformio/platformio-core/issues/2509>`_)
68+
- Fixed an issue when generating invalid "Eclipse CDT Cross GCC Built-in Compiler Settings" if a custom `PLATFORMIO_CORE_DIR <http://docs.platformio.org/page/envvars.html#envvar-PLATFORMIO_CORE_DIR>`__ is used (`issue #806 <https://github.com/platformio/platformio-core/issues/806>`_)
69+
70+
* **Miscellaneous**
71+
72+
- Deprecated ``--only-check`` PlatformIO Core CLI option for "update" sub-commands, please use ``--dry-run`` instead
73+
- Fixed "systemd-udevd" warnings in `99-platformio-udev.rules <http://docs.platformio.org/page/faq.html#platformio-udev-rules>`__ (`issue #2442 <https://github.com/platformio/platformio-core/issues/2442>`_)
74+
- Fixed an issue when package cache (Library Manager) expires too fast (`issue #2559 <https://github.com/platformio/platformio-core/issues/2559>`_)
75+
476
PlatformIO 3.0
577
--------------
678

Makefile

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
lint:
32
pylint --rcfile=./.pylintrc ./platformio
43

@@ -10,7 +9,7 @@ yapf:
109
yapf --recursive --in-place platformio/
1110

1211
test:
13-
py.test -v -s -n 3 --dist=loadscope tests --ignore tests/test_examples.py --ignore tests/test_pkgmanifest.py
12+
py.test --verbose --capture=no --exitfirst -n 3 --dist=loadscope tests --ignore tests/test_examples.py --ignore tests/test_pkgmanifest.py
1413

1514
before-commit: isort yapf lint test
1615

@@ -23,4 +22,9 @@ clean: clean-docs
2322
rm -rf .cache
2423
rm -rf build
2524
rm -rf htmlcov
26-
rm -f .coverage
25+
rm -f .coverage
26+
27+
profile:
28+
# Usage $ > make PIOARGS="boards" profile
29+
python -m cProfile -o .tox/.tmp/cprofile.prof $(shell which platformio) ${PIOARGS}
30+
snakeviz .tox/.tmp/cprofile.prof

README.rst

+7
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ Registry
7878
Development Platforms
7979
---------------------
8080

81+
* `Aceinna IMU <https://platformio.org/platforms/aceinna_imu?utm_source=github&utm_medium=core>`_
8182
* `Atmel AVR <https://platformio.org/platforms/atmelavr?utm_source=github&utm_medium=core>`_
8283
* `Atmel SAM <https://platformio.org/platforms/atmelsam?utm_source=github&utm_medium=core>`_
8384
* `Espressif 32 <https://platformio.org/platforms/espressif32?utm_source=github&utm_medium=core>`_
@@ -86,16 +87,19 @@ Development Platforms
8687
* `Infineon XMC <https://platformio.org/platforms/infineonxmc?utm_source=github&utm_medium=core>`_
8788
* `Intel ARC32 <https://platformio.org/platforms/intel_arc32?utm_source=github&utm_medium=core>`_
8889
* `Intel MCS-51 (8051) <https://platformio.org/platforms/intel_mcs51?utm_source=github&utm_medium=core>`_
90+
* `Kendryte K210 <https://platformio.org/platforms/kendryte210?utm_source=github&utm_medium=core>`_
8991
* `Lattice iCE40 <https://platformio.org/platforms/lattice_ice40?utm_source=github&utm_medium=core>`_
9092
* `Maxim 32 <https://platformio.org/platforms/maxim32?utm_source=github&utm_medium=core>`_
9193
* `Microchip PIC32 <https://platformio.org/platforms/microchippic32?utm_source=github&utm_medium=core>`_
9294
* `Nordic nRF51 <https://platformio.org/platforms/nordicnrf51?utm_source=github&utm_medium=core>`_
9395
* `Nordic nRF52 <https://platformio.org/platforms/nordicnrf52?utm_source=github&utm_medium=core>`_
9496
* `NXP LPC <https://platformio.org/platforms/nxplpc?utm_source=github&utm_medium=core>`_
9597
* `RISC-V <https://platformio.org/platforms/riscv?utm_source=github&utm_medium=core>`_
98+
* `RISC-V GAP <https://platformio.org/platforms/riscv_gap?utm_source=github&utm_medium=core>`_
9699
* `Samsung ARTIK <https://platformio.org/platforms/samsung_artik?utm_source=github&utm_medium=core>`_
97100
* `Silicon Labs EFM32 <https://platformio.org/platforms/siliconlabsefm32?utm_source=github&utm_medium=core>`_
98101
* `ST STM32 <https://platformio.org/platforms/ststm32?utm_source=github&utm_medium=core>`_
102+
* `ST STM8 <https://platformio.org/platforms/ststm8?utm_source=github&utm_medium=core>`_
99103
* `Teensy <https://platformio.org/platforms/teensy?utm_source=github&utm_medium=core>`_
100104
* `TI MSP430 <https://platformio.org/platforms/timsp430?utm_source=github&utm_medium=core>`_
101105
* `TI Tiva <https://platformio.org/platforms/titiva?utm_source=github&utm_medium=core>`_
@@ -111,8 +115,11 @@ Frameworks
111115
* `ESP-IDF <https://platformio.org/frameworks/espidf?utm_source=github&utm_medium=core>`_
112116
* `ESP8266 Non-OS SDK <https://platformio.org/frameworks/esp8266-nonos-sdk?utm_source=github&utm_medium=core>`_
113117
* `ESP8266 RTOS SDK <https://platformio.org/frameworks/esp8266-rtos-sdk?utm_source=github&utm_medium=core>`_
118+
* `Freedom E SDK <https://platformio.org/frameworks/freedom-e-sdk?utm_source=github&utm_medium=core>`_
119+
* `Kendryte Standalone SDK <https://platformio.org/frameworks/kendryte-standalone-sdk?utm_source=github&utm_medium=core>`_
114120
* `libOpenCM3 <https://platformio.org/frameworks/libopencm3?utm_source=github&utm_medium=core>`_
115121
* `mbed <https://platformio.org/frameworks/mbed?utm_source=github&utm_medium=core>`_
122+
* `PULP OS <https://platformio.org/frameworks/pulp-os?utm_source=github&utm_medium=core>`_
116123
* `Pumbaa <https://platformio.org/frameworks/pumbaa?utm_source=github&utm_medium=core>`_
117124
* `Simba <https://platformio.org/frameworks/simba?utm_source=github&utm_medium=core>`_
118125
* `SPL <https://platformio.org/frameworks/spl?utm_source=github&utm_medium=core>`_

docs

Submodule docs updated 202 files

platformio/__init__.py

+1-10
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
import sys
16-
17-
VERSION = (3, 6, 7)
15+
VERSION = (4, 0, 0)
1816
__version__ = ".".join([str(s) for s in VERSION])
1917

2018
__title__ = "platformio"
@@ -33,10 +31,3 @@
3331
__copyright__ = "Copyright 2014-present PlatformIO"
3432

3533
__apiurl__ = "https://api.platformio.org"
36-
37-
if sys.version_info < (2, 7, 0) or sys.version_info >= (3, 0, 0):
38-
msg = ("PlatformIO Core v%s does not run under Python version %s.\n"
39-
"Minimum supported version is 2.7, please upgrade Python.\n"
40-
"Python 3 is not yet supported.\n")
41-
sys.stderr.write(msg % (__version__, sys.version))
42-
sys.exit(1)

0 commit comments

Comments
 (0)