Arduino Versions Save

ESP8266 core for Arduino

2.7.0

4 years ago

Changes since 2.6.3 (to 2.7.0)

Breaking Changes

None

Great additions

  • Allow GZIP compressed flash updates (#6820)
  • Add CryptoInterface library (#6961, #7252)

Core

  • Added missing "if (umm_heap == NULL) {..." to umm_free_heap_size_lw (#6929)
  • Code size optimisations for ESP.getFullVersion() (#6936)
  • I2C: allow clocks below 100KHz (#6934)
  • Reduce mem footprint of ESP.getResetInfo() (#7030)
  • Code size optimisation of ESP.getResetReason() (#7029)
  • Low-Power demo (#6989)
  • Fix WMath's map() implementation for inverse/round-trip mapping (#7027)
  • Fix optimistic_yield to not yield on each call after x µs (#6804)
  • Updated stack offsets for postmortem stack dump (#7066)
  • Corrected stack start and end in stack_thunk_dump_stack() (#7085)
  • configTime(tzsec,dstsec,): fix UTC/local management (#6993)
  • dtostrf: round fix (#7068, #7093)
  • simple TZ api: bypass sprintf/sscanf (= do not use 7KB flash) (#7109)
  • Pull GPIO initialization into its own 'weak' function. (#7044)
  • Attribute __real_system_restart_local() as (noreturn) (#7167)
  • Move floating point from libgcc out of IRAM (#7180, #7188)
  • Tone: extend to 20KHz (#7179)
  • Add CryptoInterface library (#6961, #7252)
  • Fix for MD5 leak bug (#7197, #7208)
  • Use F_CPU if (?) CPU frequency switch is compile-time only (#6833)
  • expose setTZ() (#7234)
  • XMC flash support - WIP (#6725)
  • Allow waveforms to be specified in clock cycles (#7211)
  • Waveforms: cherry pick nice changes from ongoing #7122 (#7218)
  • Allow stopWaveform to stop timed-out waveforms (#7236)
  • Hold transmitter in reset during rate change (#7248)
  • Fix minor GCC10 static analyzer warnings (#7255)

Core (FS)

  • Skip . and .. on LittleFS::dir::rewind() (#6959)
  • Only update LittleFS timestamp when opened write (#6956)
  • Update LittleFS to latest upstream head (#6986)
  • Add SDFS::Dir::fileTime callback (#6985)
  • Add LittleFS support to ESP8266WebServer.serveStatic() (#6987)
  • Fix boolean/logical & mixup in LittleFS open (#6996)
  • Add fileCreation/getCreation create-time accessors (#7000)
  • Improve LittleFS support (#7071)
  • Update to LittleFS v2.2.0 (#7240)

Network (Core, Library/ESP8266WiFi)

  • lwip2: no more git sub-sub-module deps, faster checksum, backlog limitation and other fixes (#6887)
  • Fix/enable UDP packet reassembly (#7036, #7132)
  • SNTP: backport espressif sntp api for lwip2 (#7097)
  • TCP: fixes backlog limit handling, and allows ephemeral TCP connections (#7096)
  • lwip2 update: stop dhcp when interface goes down (#7114)
  • Fix UDP send to IPv6 link local addresses (#6541)
  • Fix TCP send to IPv6 link local addresses (#7207)
  • Updating _port to really used port and made _port accessible (#7003)
  • Make DNS resolution order selectable during runtime or compile time (#6865)
  • WiFi: ARP gratuitous API for wifi station mode (#6889, #7203)
  • fix null pointer call from WiFiClient::localIP() to IPAddress (#7221)

Library - ESP8266WiFi (SSL/TLS)

  • Update BearSSL, increase SSL stack (#6980)
  • Remove memory leak on multiple calls to initCertStore (#7021)
  • Update to latest BearSSL (#7098)
  • Abort if BearSSL stack allocation fails (#7152)

Flashing - OTA - Updater

  • Allow GZIP compressed flash updates (#6820)
  • Add documentation for compressed OTA, fix bug (#6924)
  • Add a CRC32 over progmem and ESP.checkFlashCRC (#6566)
  • Fix Updater potential overflow, add host tests (#6954)
  • allow ".bin.gz" filter in HTTP updater file selector (#7026)
  • Updater: prevent closing webserver (option) (#6969)
  • Use 2nd stack for update signature verification (#7149)
  • Fix espota completion success/fail check (#7204)

Library - SoftwareSerial

  • EspSoftwareSerial release 6.8.1 (#6922, #6932, #6943, #7034, #7133, #7139, #7205)

Library - ESP8266WebServer

  • PROGMEM footprint cleanup for responseCodeToString (#6950)
  • Fix search order for index.htm(l)(.gz) files (#7069)
  • Add Uri with support for regexUri and globUri (#6696)
  • Add flash helper constructor to Uri (#7105)
  • Expose webserver's chunk api (#7134)
  • Make getContentType available for 3rd party usage (#7254)

Library - ESP8266HTTPClient

  • Reduce temporary string creation in HTTPClient::sendHeader (#6937)
  • Move a couple larger strings from rodata to flash (#6976)
  • clear _canReuse in setUrl if its not a local redirect (#7039)
  • Fixes large payload issues for sendRequest (#7051)
  • Better follow redirection for HTTPClient (#7157)

Library - mDNS

  • Update LEAmDNS.cpp (fix issue #6982) (#7025)
  • use STA as default interface in mDNS (#7042)
  • Additions to UdpContext needed for LEAmDNS2 (#7048)
  • mDNS: protect MDNSResponder::queryService against misuse (#7216)
  • Add isRunning getter to check is ::begin already called (#7219)
  • Changing listen to listen the current iface only instead of 0 (#7217)

Library - Servo

  • Define MAX_SERVOS to 12, like original Servo.h (#6999)

Libraries

  • Various String handling cleanups (Libraries&Core) (#6945)
  • Set a value for SSDP notify interval (#7110)

Documentation

  • Installation guide for PlatformIO (#7142)
  • Fix RST links for PlatformIO (#7143)
  • (STA) Fixed misplacement of back quotes (#7247)

CI

  • Fix Windows CI build (#6927)
  • fix CI: switch to python3 for pio (#7035)
  • update to new prebuilt win sed version (#7062)
  • Switch espressif8266 platform to development branch in PlatformIO build (#7170)
  • fix style checking: (#7222)

Examples

  • CaptivePortal: improve HTML quality (#7227)
  • ESP8266WebServer: Revamp of the FSBrowser and SDWebServer examples (#7182)

Boards

  • Made changes to include "ESP8266_" with ITEAD board names, {build.board}, (#7024)
  • Add support for eduino wifi (#6554)
  • Add 2MB obtion to 8285 generic board (#7163)
  • esp8285: properly initialize free gpio as input (#7165)

Build System

  • Add back mklittlefs for linux32 target (#7011)
  • Use a python3 script to call python3 (#6960)
  • boards.txt.py: Use correct file name when writing (#7018)
  • PIO: Allow using custom linker scripts (#7078)
  • package builder: updates for alpha releases (#7088)
  • Switch espressif8266 platform to development branch in PlatformIO build (#7170)
  • Use F_CPU if (?) CPU frequency switch is compile-time only (#6833)

Device tests

  • device tests: some of them can be run on host (#6912)
  • Add test for FS::open("w+") (#7241)

Boot

  • eboot: fix linking and padding (#7047)
  • Allow GZIP compressed flash updates (#6820)

Building on host

  • host build: optimistic_yield() wrongly delays() instead of avoiding excessive yields (#6802)

2.6.3

4 years ago

Changes since 2.6.2 (to 2.6.3)

Breaking Change

none

eboot

  • Rebuild eboot.elf to include #6823 changes (#6890)

Core

  • I2C: put inline helpers in IRAM for slave ISRs (#6898)
  • Add hh (byte) format for printf and scanf (#6896)
  • sntp callback: use a recurrent schedule function (#6888)
  • Use 128B chunks instead of 1B writes in Print::print(FlashStringHelper) (#6893)
  • updater: Only set flashmode byte when uploading an executable (#6891)
  • sdk:22x-191122 (optional, non default) (#6879)
  • removed TWI_CLOCK_STRETCH_MULTIPLIER (#6867)
  • added clock stretch yield, [issue 2162] fixed twi::status (#6860)
  • sntp: fix conflict with pre-included Arduino.h (#6853)

Libraries

  • udp: limit buffer depth (#6895)
  • Fix sending headers in #send_P(int, PGM_P, PGM_P, size_t) (#6881)
  • EspSoftwareSerial 6.4.0: Non-parity modes save 56 bytes of heap memory (#6882)
  • Webserver: Handle HEAD requests for static files correctly (#6837)
  • Webserver: fix sending char* (#6878)
  • Remove user_interface.h from gdbstub includes (#6862)

Documentation

  • Update PROGMEM.rst (#6872)

Examples

  • POST http client example (#2704)

Boards

  • fix NodeMCU v1.0 board option "Builtin Led" (#6905)

Build System

  • fix device tests (#6861)

2.6.2

4 years ago

Changes since 2.6.1 (to 2.6.2)

Breaking Change

Arduino IDE FS plugin must be updated (#6807)

Build System

  • switch to firmware 2.2.x-190703 by default (#6826)

eboot

  • Move eboot_command_clear to after firmware copy (#6823)

Core

  • HWSerial: uninitialized stack object can have unintended bad values (#6846)
  • [BREAKING] Update FS plugin info for python3 compat (#6807)
  • FS upload: Make upload.py compatible with existing FS upload (#6788)
  • configTime: reset artificial timezone when using newlib (#6828)
  • Implement invert for HardwareSerial (#6816)
  • Mark esp_schedule IRAM_ATTR to make it ISR safe (#6809)
  • Weak binding lessens version dependency between ESP8266 and MT library CoopTask. (#6790)
  • Add stdint, move headers up in core_features.h (#6793)

Libraries

  • HTTPClient: Allow for POSTs larger than a few 100 bytes (#6800, #6830)
  • HTTPClient: fix in beginInternal() (#6786)
  • WiFi: use wificlient.available() where relevant (#6827)
  • EspSoftwareSerial: ctor/begin() compatibility to AVR/ESP8266/ESP32 (#6814)
  • BearSSL: Expand BSSL stack (#6819)
  • Add callbacks for ESP8266HTTPUpdate (#6796)
  • Add const char* content to ESP8266WebServer::send() (#6797)
  • WebServer: Only add "l" to XX.htm URLs if XX.html exists (#6794)
  • SSDP: add schema(Print &) const (#6798)
  • WiFiClient: Fix typo in mode timeout loop (#6801)
  • Update SdFat to not undefine F() macro (#6787)

Documentation

  • Add/unify comments for target and source sites of async scheduling via delay()/esp_yield()/esp_schedule() (#6780)
  • Change Sphinx version to latest (#6817)

Emulation on host

  • Using clockCyclesPerMicrosecond() in host build fails (#6844)
  • F_CPU is available and is 80000000 (#6841)

Examples

  • Terminate (fix) the chunked printDirectory (#6808)
  • Root page should be of type text/html (#6776)
  • Add missing "LittleFS.begin()" in LittleFS_Timestamp example. (#6762)

2.6.1

4 years ago

Changes since 2.6.0 (to 2.6.1)

Breaking Changes

none

Build System

  • esptool.py: single command for erasing and flashing (#6765)
  • release script: remove makecorever.py call in released version (#6747)

Core

  • Fix issue with functions scheduled from scheduled functions (#6770)
  • Update String::concat(char*, len) to allow non null-term strings (#6754)
  • Update to LittleFS 2.1.3 (#6757)
  • WString explicit converters to reduce Flash size (#6759)
  • Add ipv4_addr_t for espconn/LwIP1.4 compat (#6740)

Libraries

  • Minimize header use, move Ticker function definitions into cpp file (#6496)
  • EspSoftwareSerial release 6.1.1, "9bit" support (#6761)
  • Updated EspSoftwareSerial brings backward compatibility for ctor/begin() pair (only for the common cases with complete default argument use) (#6746)

Boards

  • board NodeMCUv1 menu: led selection (2, 16) (#6743, #6748)

Documentation

  • Add some useful links (#6744)
  • Mention erasing arduino15 contents before installing git (#6741)
  • document how to get POST body in ESP8266WebSever (#6736)

2.6.0

4 years ago

Changes since 2.5.2 (to 2.6.0)

Breaking Changes

  • SoftwareSerial constructor - will be fixed in 2.6.1

Great additions

  • Ets intr lock nest (#6484) This great fixing PR has - among others - closed the old infamous #2330
  • Add LittleFS as an optional filesystem w/subdirectories, API compatible w/SPIFFS and SDFS (but not on-flash-format compatible) (#5511)

Build System

  • Update esptool reset method (#6429)
  • Fix Python3 errors for device tests (#6670)
  • Dynamically find the Python3 dir on Windows (#6646)
  • esptool-2.7 (#6634)
  • CI: trusty (u14.04) -> bionic (u18.04) (#6627)
  • remove esptool.py --trace option (#6606)
  • prepare alpha channel release builder (#6512)
  • Move all PSTRs to own section, allow string dedup (#6565)
  • use arduino IDE stable in CI (#6572)
  • Add 20/26MHz Flash frequencies for slow/cheap flash chips on the Generic ESP board (#6552)
  • Add segment size printout to standard build process (#6525)
  • Fix tool name to point to proper JSON entry (#6513)
  • Run makecorever.py before specific prebuild hooks. (#6504)
  • Add Win32 build to CI system (#6493)
  • Add OSX build to CI, fix OSX builds (#6492)
  • Fix the python3 directory so scripts work on Win32 (#6472)
  • Move all scripts and documentation to Python3 (#6378)
  • fix arduino builder command line (#6461)
  • Prevent rewriting core_version.h if content unchanged (#6414)
  • esptool: 3M-baud serial upload speed (#6399)
  • Move to -std=g++11 from -std=c++11 (#6339)
  • Upgrade to 2.5.0-4 toolchain w/improved pgm_read_x, C++ exceptions (#6273)
  • Clean tools key of obsolete version on next release (#6258)
  • esptool.py: disable 9600bauds in menu for flash upload serial speed (#6292)
  • Prepare signing before sketch is compiled (#6287)
  • Refactored to avoid compiler warning (#6278)
  • Make SPIFFS be an integer number of blocks (#5989, #6537)
  • Updater signature validation - format incompatible w/RFC8017 (#6250)
  • Fix device test environment variables (#6229)
  • Expand gitignore to cover files created by Visual Micro (#6231)
  • Update mklittlefs to match library (#6230)
  • filter weird characters from esp output to python (#6226)
  • Add some more CI tests for String::replace (#6193)
  • IDE menu info: change SPIFFS -> FS and show max OTA size (#6159)
  • emulation on host updates (#6210, #6211, #6248, #6327, #6342, #6507)

Core

  • Add missing time.h include, use relative include path on time.h includes (#6730)
  • Save 16 bytes RAM by placing esp8266_gpioToFn (core_esp8266_wiring_digital.cpp) array in PROGMEM (#6703)
  • precache() - preload code into the flash cache (#6628, #6674)
  • Double I2C read in one transaction skips a clock pulse (#5528) (#6654)
  • Move cont_run/cont_yield out of IRAM (#6617)
  • NTP-TZ-DST example: list SNTP servers (#6611)
  • Remove duplication and incompatible declarations in sntp.h (#6610)
  • cleanups in ESPClass (#6608)
  • Cleanup base64::encode functions (#6607)
  • use a scheduled function for settimeofday_cb (#6600)
  • Fix pgm_read_float_unaligned macro (#6593)
  • Base64::encode : const correctness / String by reference passing (#6581)
  • Replace ASM block w/C macro for PSTR (#6577)
  • Speed up empty String creation slightly (#6573)
  • const correctness / String by reference passing cleanups (#6571)
  • Remove duplicated sha1 implementation (Fixes #6568) (#6569)
  • Add typedef for putc1, fn_putc1_t. (#6550)
  • Add time to filesystem API (#6544)
  • Add memmove_P, use it in String to ensure F() safety (#6514)
  • Support FS update in two steps (#6505)
  • Add ::updateBaudRate(unsigned long baud) to change the baudrate after begin was called (#6494)
  • Update UART selection for Boot ROM ets_putc, when debug port is selected. (#6489)
  • Wakeup delayed scheduling (#6485)
  • Inline ESP::getCycleCount() to make it safe to call from ISRs (#6477)
  • move timer functions to iram (#6466)
  • Allow Print::println() to work with PROGMEM strings (#6450)
  • Update core with upstream umm_malloc (#6438)
  • Remove ROM routines from libc.a, save progmem (#6432)
  • Fix reverse dependency core Updater -> library ESP8266WiFi (#6398)
  • ensure consistency for gdb hooks signatures (#6391)
  • Uncouple uart from GDBStub library (#6390)
  • fix _min and _max macros (#6374)
  • time: import IANA timezone definitions, expose SNTP API (#6373)
  • Refactor HardwareSerial.cpp for consistent use of PolledTimeout (#6371)
  • wstring: fix concatenation from flash (#6368)
  • enable puya support by default (can be disabled with -DPUYA_SUPPORT=0) (#6362, #6619)
  • Preserve prior bitrate for I2S begin (#6349)
  • Add a FS::check() optional method (#6340)
  • tools: fixed bug to select signed bin (#6334)
  • exceptions: optionally enforce c++ standards (#6333)
  • Reduce the IRAM usage of I2C code by 600-1500 bytes (#6326)
  • Clear updater state on any error (#6325)
  • Add using fs::SPIFFSConfig to FS.h (#6324)
  • Don't throw exceptions from operator new by default (#6312)
  • Make delay() and loop_end() weak functions (#6306)
  • Added memory fence to xt_rsil() (#6301)
  • Fix for future GCC 9.1 warnings (except Ticker.h, gdbstub) (#6298)
  • Create (set/is)empty methods for String class (#6293)
  • Fix raise_exception() (#6288)
  • proposed umm_malloc improvements (#6274)
  • Clean up code to build under GCC7, fix pgm_read_unaligned (#6270)
  • Clean up trivial gcc -wextra warnings (#6254)
  • using std::nothrow instead of malloc (#6251)
  • Do not call yield() from timedRead() or timedPeek() when _timeout is set to 0. (#6242)
  • Put InterruptLock (from interrupts.h) into namespace esp8266 to fix now and future (#6225)
  • Move umm_malloc back to IRAM (#6161)
  • Make SSO support \0s, use memmove, add test (#6155)
  • Add FS::info64 call for filesystems > 4GB (#6154)
  • Bugfix: attach interrupt (#6049) (#6048)
  • add regular scheduled functions (#6039, #6137, #6147, #6158, #6214, #6228, #6233)
  • Implementation of a generic CallBackList (#5710)
  • Serial.flush modification (#5293)

Style

  • Style (#6653)
  • Allman style: mDNS (#6629)

SDK

  • sync with upstream NONOS-SDK branch 2.2.x (#6257, #6272, #6672, #6724)

Boards

  • board filter support (+ iTead sonoff, ESP-Mx boards) (#6643)
  • Adds SparkFun Blynk Board (#6713)
  • Fix espduino verbose upload (#6426)
  • Allow use of LED16 for generic boards (#6343)

Library - ESP8266WiFi

  • Add wait loop at the end of WiFi::mode (+refactor can_yield) (#6721)
  • ClientContext: restore use of two different pending booleans for connect and write #6483
  • standardizes processing of _delaying in lwIP callbacks (remove assert) (#6460)
  • lwIP-1.4: use fixed locking functions (#6455)
  • ClientContext: break timeout delays also on error while writing or connecting (#6454)
  • new network feature: NAPT (widely known as NAT) (#6360)
  • Experimental: add new WiFi (pseudo) modes: WIFI_SHUTDOWN & WIFI_RESUME (#6356)
  • udp remote pbuf helper: honor fragmented packets (#6222, #6263)
  • TCP connect and send delay fix (#6213)
  • lwip2: fix setting static ip address (#6194)
  • Add timeout to STA::waitForConnectResult (#5371)
  • added public cleanAPlist() function (#4107)

Library - ESP8266WiFi (SSL/TLS)

  • Fix WiFiClientSecure::available() blocking on dropped connections (#6449)
  • Set method _connectSSL as protected (#6424)
  • SSL: Fix Crash with basic ciphers (#6402)
  • Update to latest BearSSL (#6337)
  • SSL: Add a dump of received FP and CERT when in debug mode (#6300)
  • Update axtls libs with fix for #6260 (#6262)
  • Fix mixup with boolean/bitwise or for BSSL probing (#6252)
  • Add an EC keyed certificat to BearSSL Server example (#6202)
  • Obey the BASIC_SSL request for TLS servers (#6187)
  • Added BR_OPT_NO_RENEGOTIATION flag to forbid TLS renegotiation (#6165)
  • 64 bytes more free by moving DES init constants to flash (#6160)
  • Save 484 bytes of heap foe BSSL applications (#6157)
  • Add basic canary check to BSSL stack thunk (#6156)
  • Expand BSSL stack to 5750 bytes (#6153)
  • Make CertStore natively use File interface (#6131)

Library - ESP8266WebServer

  • Fix trivial extra "\n" on web update success (#6350)
  • Add HTTP_HEAD to HTTPMethod and parse it (#6413)
  • Add plain char* signatures WebServer::sendContent (#6341)
  • webserver: restore legacy request handler (#6321)
  • allow for authentication with H(A1) with example (#6020)
  • Convert ESP8266WebServer* into templatized model (#5982)
  • fallback onto index.html if index.htm fails (#2614)
  • POST web server example (#2705)

Library - ESP8266HTTPClient

  • Fix build with -DHTTPCLIENT_1_1_COMPATIBLE=0 (#6597)
  • Fix setURL() handling of path-only parameters (#6570)
  • BasicHttpsClient: Updated demo certificate fingerprint (#6462)
  • Bugfix/esp8266 http client (#6176)
  • Infinite loop while passing File(FS.h) resolved (#5038)
  • Added possibility of sending POST with empty payload (#4275)

Library - mDNS

  • fix legacy unicast responses (#6613)
  • Clean up remaining non-LeaMDNS diffs from gcc4.8 to gcc7.2 (#6279)
  • fix random crash on startup (#6261)
  • restriction to a single interface (#6224)

Library - SPI

  • Set SPI_HAS_TRANSACTION to 1 (#6591)
  • Spi slave improvments (#6580)
  • SPI: wrong value for setFrequency() (#6409)

Library - Ticker

  • Ticker: Fix callback casting. (#6282)
  • Ticker: Use placement new for ETSTimer - no heap fragmentation (#6164)
  • The use of bind in Ticker.h is prone to type inference failure (#6129)

Libraries

  • EspSoftwareSerial release 5.4.0 with performance/error rate improvement in TX (#6722)
  • Update EEPROM.cpp (#6556, #6599)
  • Put more string literals into PROGMEM (#6588)
  • add or improve some debug messages (#6508)
  • OTA: fixed no "OK" ACK for Signed Update (#6351)
  • FS: Update LittleFS/SdFat to current project head (#6345)
  • ConfigFile: Updated Example to use ArduinoJson6 (#6203)
  • DNSServer: Add support for newer mobile OS changes. (#5529)
  • ESP8266HTTPUpdate: Added Chip ID into HTTP header in lib (#3877)
  • ESP8266HTTPUpdate: Allow Filesystem update (#3732)

Documentation

  • Re-wording of ATOMIC_FS_UPDATE documentation (#6693)
  • Update installing.rst (#6625)
  • Installing (#6624)
  • Minor FS documentation change from #2904 (#6563)
  • Add interrupt section to docs (#6560)
  • Add info about installing python3 on Mac, Linux (#6558)
  • Update EEPROM library documentation (#6548)
  • Edited OTA readme, added Stream Interface snippet (#6487)
  • Fix the number of examples (#6407)
  • Grammar edits in documentation (#6401)
  • fix documented parameter (#6392)
  • Update WiFiServer docs for ::write(all clients) (#6338)
  • Fix typo in doc (#6313)
  • Minor doc update, "How to make a PR" link (#6297)
  • add documentation to scheduled functions (#6234)
  • Fix editing, typos and grammatical errors (#6207)
  • Document ISRs need ICACHE_RAM_ATTR before them (#6141)

2.5.2

4 years ago

Changes since 2.5.1 (to 2.5.2)

Core

  • Add explicit Print::write(char) (#6101)

Build system

  • Fix typo in elf2bin for QOUT binary generation (#6116)
  • Support PIO Wl-T and Arduino -T linking properly (#6095)
  • Allow *.cc files to be linked into flash by default (#6100)
  • Use custom "ElfToBin" builder for PIO (#6091)
  • Fail if generated JSON file cannot be read (#6076)
  • Moved 'Dropping' print from stdout to stderr in drop_versions.py (#6071)
  • Fix PIO issue when build environment contains spaces (#6119)

Libraries

  • Remove deadlock when server is not acking our data (#6107)
  • Bugfix for stuck in write method of WiFiClient and WiFiClientSecure until the remote peer closed connection (#6104)
  • Re-add original SD FAT info access methods (#6092)
  • Make FILE_WRITE append in SD.h wrapper (#6106)
  • Drop X509 after connection, avoid hang on TLS broken (#6065)

2.5.1

5 years ago

Changes since 2.5.0 (to 2.5.1)

Breaking changes

  • Hardware SPI: unswap mode 2 and 3 for portability (#5948)
  • Revert to nonos-sdk 2.2.1, new sdk-switching option in IDE menu for generic board only (#5763)

Great Additions

  • SD Filesystem compatible with 8266 File, using latest SdFat (#5525, #5861)
  • Unification of SPIFFS and SD, into single compatible FS, File, and Dir objects (#5525)
  • Use esptool.py to handle sketch upload, make python available on Windows, too (#5635)
  • Small String Optimization (SSO) (#5690)

Documentation

  • Clarify analog output doc for pwm limits (#6051)
  • Upgrade to https: serving for JSON, links in docs (#5992)
  • Added notice to update submodules to test README (#6008)
  • Add note about needing 0.4 esp8266fs uploader (#5976)
  • UDP: Correct out of bounds condition and remove an unnecessary cast (#5924)
  • submodules: git command for updating (#5882)
  • Update adruino link in platform.txt (#5900)

Core

  • Use "bool" for "boolean" type (#5693)
  • Migrate configTime() to use sntp_set_timezone_in_seconds() to correctly allow timezone spec in seconds without rounding (#5835)
  • Test for StreamString SSO bug (#6035) (#6041)
  • Fix StreamString SSO bug (#6035)
  • Use original ESP8266-specific speeds for SPI speeds (#6023)
  • restore proper arduino Client:: & Wire:: API (#5969)
  • ISR code must be in ICACHE_RAM (#6002)
  • ISR: check for address in IRAM (#5995)
  • Add String::toDouble from upstream Arduino core (#5986)
  • Unaligned access support for pgm_read_word/dword (#5692)
  • Make SPIFFS garbage collection publicly available (#5944)
  • Fix String.replace overlapping strcpy (#5966)
  • Split IRAM into 2 linker sections to move std::fcn to IRAM (#5922)
  • Hardware SPI: unswap mode 2 and 3 for portability (#5948)
  • polledTimeout: add option to use CPU count instead of millis() (#5870)
  • use static_assert to check on fw structure changes over updates (#5937, #5939)
  • Fix String::replace() garbage at end of string (#5897)
  • fix DEBUG macros (all stringsin flash) (#5728)
  • Fix Serial.write(0) overloading (#5878)
  • SD Filesystem compatible with 8266 File, using latest SdFat (#5525, #5861)
  • const for Ticker::active() (#5850)
  • Remove redundant check for zero size SPIFFS partition (#5841)
  • Implement sntp_get|set_timezone_in_seconds() (#5828)
  • Fix repaintable stack calculation (#5821)
  • Revert to nonos-sdk 2.2.1, new sdk-switching option in IDE menu for generic board only (#5763)
  • prepare allman style (#5774)
  • fix UdpContext::(connect,listen) signature by using IPAddress (#5742)
  • Small String Optimization (#5690)
  • Fix pgm_read_ptr() (#5735)
  • Use "bool" for "boolean" type (#5693)

SSL-TLS:

  • Fix MFLN probe and allow returning whether MFLN succeeded or not after a connection. (#6000)
  • BearSSL Max Fragment Length Negotation and Node.js server (#5929)
  • example: Fix the changed structure of the input file (#5891)
  • Add OOM check and debug message in CertStore (#5820)
  • Add debug messages on BSSL errors (#5723)
  • New menu option to minimize BearSSL ROM with only RSA (#6006)

Libraries: MDNS

  • MDNS Callback setting needs std::bind parameter by reference instead of by value (#6037)
  • Fix OTA in AP mode (#5894)
  • LEAmDNS: remove implicit debug statements (#5895)

Libraries: WiFi

  • WiFi: fix switching to static address after WiFi.begin() with lwip2 (#6026)
  • udp: restore correct address/port when parsing packet (#6011)
  • reenable ARP queuing in lwIP2 (#5978)
  • lwIP-v2: new patch to randomize tcp source ports (#5906)
  • bugfix: restore WiFi::setSleepMode functionality with sdk-2.2.x (#5919)
  • Fix SSID reporting for 32-char SSIDs (#5889)
  • Allow to disable DHCP gateway offer when set up of AP. (#4421)
  • lwip2: ipv6: fix udp_new() #5744 (#5752)
  • UdpContext::setMulticastInterface(): fix for IPv6 (#5743)

Libraries:

  • SPISlave: Fix spi slave timing (#6022)
  • Fix ssdp (#5750)
  • optionally allow redirects on HTTPClient & OTA updates (#5009)
  • OTA: Add progress callback to Updater class. (#5754)
  • Fix hardcoded dependency of ArduinoOTA on mDNS (#5768)
  • change ESP8266WebServer::send_P to function the same as ::send (#5507)
  • Honor timeout in HTTPClient (#6056)

Examples

  • Fix example DigestAuthorization.ino: Fix WiFiClient vs. HttpClient declaration order (#6029)
  • Fix example StreamHttpClient.ino: Fix WiFiClient vs. HttpClient declaration order (#6030)

Emulation on Host:

  • Various fixes (#5764, #5765, #5766, #5771, #5772, #5802, #5809, #5840, #5829, #5994, #6013)
  • emulation on host: Add full UART driver emulation. (#5785)

Submodules:

  • SoftwareSerial: version 5.0.4 (#5965, #5977, #5993, #5981)
  • SoftwareSerial: fix for inverse logic mode (#5972)

Boards:

  • boards: Invent One: fix analog pin (#5741)

Build system, Toolchain & Newlib

  • Fix default git version for non git users (#6044)
  • git clean honors .gitignore, tools downloaded by tools/get.py in place (#6036)
  • PlatformIO: generate core_version.h when using feature/stage (#5917)
  • Fix boards-manager install issues on Linux and Windows (#5898)
  • Fix crash in certain PMEM printf format parsing (#5968)
  • fix boards.txt.py with python3 (#5887)
  • add optional espressif fw nonos-sdk 2.2.x (19.03.13) (#5873)
  • Adjust python module search path to avoid picking up pre-existing pyserial/esptool instead of one under tools/ (#5854)
  • PlatformIO: Append FLASHMODE_* macro (#5813)
  • Make signing.py Python2.6+ and Python3+ compat (#5807)
  • PlatformIO: Make exceptions off by default #5538 (#5814)
  • Clean up uploader.py, use implied paths (#5805)
  • Use Pythonic way of calling esptool, avoid fork(#5797)
  • Use local copy of python distro to include a subdir (#5796)
  • Use esptool.py to handle sketch upload, make python available on Windows, too (#5635)
  • Move __PRETTY_FUNCTION__ to progmem (#5758)
  • msys2 support for tools/get.py (#5751)
  • Wrap get.py's "if __name__ == '__main__':" into a function so it can be externally called (#4475)
  • Move .C to .CPP in the code (#5696)

2.5.0

5 years ago

Changes since 2.4.2 (to 2.5.0)

Breaking change

  • Arduino FQBN has changed since release 2.4.2 (issue #5572)
  • SSL/TLS API (BearSSL)

Great additions

  • overall stability and performance improvements
  • modern SSL/TLS with BearSSL (now default)
  • new mDNS library rewrite (aka LEA version is default)
  • nonos-SDK pre-3.0.0 (#5210)
  • C++ Exceptions (experimental, not enabled by default)
  • newlib update (fixes + *printf accepts fmt and args from flash)
  • IPv6 support
  • sketch execution on mock Arduino environment on host computer (experimental)

Core

  • Improved readString() for File (#5445)
  • stop lwIP dhcp client when WiFi goes off. (#5703)
  • Fix pgm_read_float() macro definitions (#5666)
  • Release buffer/cache on SPIFFS.end() (#5651)
  • GDB support w/new toolchain and UART driver (#5559)
  • hardwareSerial: add missing include (#5648)
  • Changed I2C buffer from 32 to 128 bytes to match Espressif's ESP32 Arduino core (#3576)
  • Remove broken ltoa/ultoa, call itoa/utoa (#5625)
  • Make waveform generator a NMI to run always, increase accuracy (#5578)
  • Remove interrupt disable around flash operations (#5577)
  • Make exceptions off by default (#5538)
  • Rewrite PUYA patch to be more universal and mem friendly. (#5504)
  • Increase free IRAM (#5499)
  • better compatibility for IPAddress changes with external libraries (#5438)
  • Make exceptions a configurable menu (#5434)
  • Use Python JSON to format packages.json file (#5429)
  • Fix pgmspace 32-bit read macros (#5425)
  • fix inconsistent block size for spiffs in board.txt. and ld files (#5412)
  • Split AddrList into object-iterator-container components (#5410)
  • weak hook preinit() #2111 #2133 #2136 (#5395)
  • fix espconn and err_t (#5392)
  • Pass string objects by reference (#5378)
  • Fix rtc mem bounds check (#5372)
  • Check for WEP when setting authmode (#5364)
  • i2s can send now buffers (#5349)
  • cleanup/unify flash sector size define value (#5327)
  • deprecate RTC_REG macros in favor of TIMER_REG macros (old typo in macro names) (#5326)
  • Only stop waveforms actually running in ISR (#5308)
  • Use "PIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY" as default lwIP profile for @PlatformIO (#5305)
  • Add missing decrement operator to I2C clockCount (#5292)
  • Fix arg type in Wire to size_t (#5289)
  • constexpr helpers to identify core version (#5269)
  • Allow override of macros in core_version.h (#5268)
  • fix md5 comparison (#5265)
  • fix SPIFFS when not enabled in build options (#5249)
  • Make stopWaveform call interrupt callable (#5248)
  • I2C slave support (originally by bjoham) (#5226)
  • Add stack repainting call to ESP class (#5221)
  • Fix led-pin in updater, also no need to backup LED state (#5217)
  • Update to the last version of nonos-sdk V2, WiFi addons (#5210)
  • PolledTimeout Class for wrapping millis() loops (#5198)
  • cleanly restore spiffs data in boards.txt (#5195)
  • IPv6 and major IPAddress changes (#5136)
  • Allow GPIO 9 and 10 for waveform generation (#5055)
  • Consolidate .iram.text matcher in linker to wildcard matcher (#4356)
  • implement EspClass::getFreeContStack method (#5133)
  • restore SPIFFS symbols when null-sized (#5122)
  • Make unique sections for ICACHE_* variables (#5117)
  • metric for heap fragmentation (#5090)
  • revert e02932f (#619 works now without it) (#5056)
  • Add instantly option to deepSleep (#5052)
  • Move some exception strings to PROGMEM (#5050)
  • Enclose PROGMEM segment names in quotes (#5049)
  • Move all PROGMEM to their own section (#5048)
  • Fix iostream related issues (#5047)
  • uart: BW improvements (#4620)

Library - mDNS

  • Functional update, host and service probes (#5653)
  • LEAmDNS fixes #3 (#5689)
  • Undo move of keywords.txt and readme.rst for ESP8266mDNS library (#5495)
  • LEAmDNS Fixes (#5641, #5619, #5563)
  • Update mDNS examples to use HTTP Server instead of TCP Server (#5589)
  • use newlib api in new mDNS, fix host using mDNS (#5545)
  • mDNS: Add support for String arg to begin() (#5542)
  • LEAmDNS - Multicast DNS Responder rewrite (#5442)

Library - ESP8266WiFi

  • Add capability to have light static DHCP lease (#5594)
  • dynamic WiFi.hostname("newname") (#5652)
  • decorate as override virtual methods in WiFiUDP (#5637)
  • WiFiClient::remoteIP: fix nullptr crash (#5634)
  • turn off random delay before sntp request (#5567)
  • fix dhcp6 in upstream lwIP (#5560)
  • fixes for IPv6, added in CI (#5557)
  • add 1 more IPAddress constructor for IPv6 (#5551)
  • Add support for String args to softAP and begin (#5295)
  • let lwIP route packets, do not let SDK teaching how to do so (#5526)
  • in sta mode, empty passphrase should not use secure auth mode (#5516)
  • Implement for ssid a similar approach as for passphrase (#5411)
  • Move WiFi debug messages to PMEM (#5388)
  • Check if AP exists before adding it (#5373)
  • Check for WEP when setting authmode (#5364)
  • Set authmode if passphrase is provided (#5317)
  • Fix: WiFiClient::flush() yields but can be called from events (#5254)
  • Add cryptographically signed update support (#5213)
  • WiFi: improve WiFiClient(Basic) examples (#5197)
  • ClientContext: restore TCP PuSH flasg when needed (#5176)
  • fix: tcp_output() should always be called after tcp_write(), does not break nagle (+ doc) (#5172)
  • Fix TCP race condition, remove fixed delay in CC (#5167)
  • automatically WiFiClient::flush before ::stop (#5135)
  • read all lines from slow servers (#5113)
  • ClientContext (tcp) updates (#5089)

Library - ESP8266WiFi (SSL/TLS)

  • Fix memory related issues w/BearSSL server/client (#5706)
  • Fix BearSSL Server WDT (#5702)
  • Update to latest BearSSL code. (#5669)
  • Silently eat \rs in PEM decoder in BearSSL (#5598)
  • Update to latest BearSSL w/EC25519 fix (#5468)
  • fix compilation error - can't find axTLS::WiFiServerSecure (#5407)
  • Don't clear authentication options on a ::stop (#5386)
  • Remove obsolete BSSL debug print routines (#5368)
  • Deprecate axTLS, update examples (#5366)
  • Move BearSSLHelpers into BearSSL namespace (#5315)
  • Patch axTLS CVEs and fix CA verification (#5270)
  • Add warning when no authenticator, drop verify() (#5205)
  • Add BearSSL::setFingerprint(char* fp) (#5204)
  • Really free stack after last BearSSL obj destroyed (#5185)
  • Move BearSSL _cipher* init to _clear() for consistency (#5178)
  • Clear cipher list on server creation, fix crash (#5171)
  • Move BearSSL from STACK_PROXY to a real, thunked 2nd stack (#5168)
  • Add SSL Session capability to speed reconnections (#5160)
  • Allow cipher specification for BearSSL (#5151)
  • Move SSLContext to its own header (#5121)
  • Update axTLS to e634adf (#5125)
  • Fix connection options and update github pubkey (#5120)
  • Add WiFiClient parameter to HTTPClient (#4980)

Library - ESP8266WebServer

  • update HTTPCLIENT_1_1_COMPATIBLE (#5389)
  • fix http parsing (#5262)
  • Fix webserver unresponsiveness (#5259)
  • Improved parameter validation (#5256)
  • fix parseArgument #2 (#5252)
  • fix typo (#5189)
  • Added naive content length to upload struct (#5142)
  • Expose post args during upload (#4935)

Library - ESP8266HTTPClient

  • Save 2.3K in HTTPClient debug mode by PSTR (#5387)
  • Bugfix/esp8266 http client (#5250)
  • ESP8266httpClient crash-on-destructor bugfix (#5220)
  • Update api.github.com certificate signature (#5145)
  • ESP8266HTTPClient: allow getString() more than once (#5091)
  • Support for concatenation of headers (#4864)

Other Libraries

  • Update ArduinoOTA and examples with MDNS.update() calls (#5494)
  • DNS: CaptivePortalAdvanced example: Fix compatibility with Android (#5069)
  • Wire Examples based on AVR ones of the same name (#5713)
  • SPI: Allow unaligned input/output to SPI::transferBytes (#5709)
  • Release referenced resources in the destructor for ESP8266SSDP (#5607)
  • Rework DNSServer to be more robust (#5573)
  • Fix negative SPIFFS size (#5522)
  • Webserver: some clients were not able to authenticate using DIGEST_AUTH (#5506)
  • OTA (espota.py) (#5454)
  • Add SD.end() method, including arg to leave SPI up (#5402)
  • (SSDP) usn and udn differences cause issues with smarthings (#5401)
  • Fix debug provision for DNSServer (#5329)
  • Update ESP8266HTTPUpdateServer library (#5297)
  • examples code cleanup (#5290)
  • Dns server cleanup (#5194)
  • Add missing keywords.txt files to bundled libraries (#5183)
  • WiFi Mesh Update 2.1 (#5157)
  • Create library.properties (#5129 #5128 #5127 #5119)
  • Fix min and max for Servo library (#5064)
  • Hash: make actual SHA1 result and comment consistent (#5057)
  • Implementation of Functional and Scheduled option in Ticker lib (#5030)
  • CaptivePortalAdvanced: Change debug print to println (#5000)
  • SD: Implement readBytes (#4931)

Build system, Toolchain & Newlib

  • Update to toolchain 2.5.0-3 JSON (#5502)
  • Move libstdc++-nox out of IRAM (#5492)
  • fix lwip selection in tests/device Makefile (#5643)
  • Split common.sh into separate scripts for each job (#5569)
  • make CI starts with (longer) PIO jobs, also move (shorter) host job later (#5599)
  • Add Linux i686 (32bit) architecture toolchain (#5586)
  • Speed up CI builds with caching hacks (#5539)
  • emulation on host: fixes and updates (#5537, #5633, #5605)
  • Update to Newlib c0f3596 with regexp/fnmatch (#5457)
  • Update toolchain and bins to 2.5.0-2 autobuild(#5441)
  • Add 64-bit %ll printf format support (#5435)
  • Add in Win64 pointers to Win32 tools (#5427)
  • Add %z and %x to printf backend (#5424)
  • Enable exceptions, update to optimized newlib, migrate to new toolchain (#5376)
  • Move ICACHE_* to unique sections, local LD script (#5150)
  • Add full debug builds for all tests (#5146)
  • build: place generated ld script into build directory (#5043)
  • Automatic stack location selection (SYS or HEAP), enable per library AR-chive in arduino build system (#5018)
  • Switch to isolated build flags per framework (#5028)

Package builder

  • Keep signing commands in platform.txt on release (#5491)
  • package: add version to board package name (#5046)
  • Minor fixes for #4999 (#5003)

Upstream dependency - BearSSL

  • Update BearSSL to latest toolchain (#5449)
  • Update to BearSSL 0.6+ release, add AES_CCM modes (#5164)

Upstream dependency - lwIP-v2

  • lwip2: 3 sntp servers, autoip (169.254), esp-ping, espconn (#5444)
  • update to lwIP-2.1.0: partial SACK support by default (de-selectable in menu) (#5126)

Documentation

  • Update conf.py from git tag, fix sphinx warnings (#5716)
  • Update release instructions README.md (#5482)
  • Update conf.py (#5518)
  • Correct 'git submodule' syntax (#5654)
  • Correct link to Arduino Board Manager info (#5650)
  • Add fix for SoftwareSerial submodule errors to documentation (#5602)
  • Add specific instructions for breaking changes (#5581)
  • clarify some points, add links, add doc/conf.py (#5519)
  • Mention eboot use of rtc memory (#5439)
  • Add doc for ESP8266WebServer (#5400)
  • documentation: add quick links (#5391)
  • document wificlient loop (#5355)
  • Update generic-class.rst (#5338)
  • Fix doc for ESP8266WiFi (#5325)
  • Update libraries.rst with ESP-NOW (#5322)
  • typo fix (#5319)
  • Add BearSSL documentation (#5311)
  • Add missing decrement operator to I2C clockCount (#5292)
  • Update debugging.rst (#5234)
  • Fix Readme Link (#5215)
  • Add BearSSL license info to README.md (#5211)
  • Revert "Wrong directory for installation??" (#5199)
  • fix doc link (#5190)
  • Make softAP documentation state the correct min value (0) for the max_connection argument. (#5165)
  • Wrong directory for installation?? (#5163)
  • Require sphinx 1.7 due to bugs with new v1.8 (#5132)
  • Fix formatting of bullet lists (#5098)
  • Update a05-board-generator.rst (#5093)
  • Update readme.rst (#5092)
  • Soft-AP documentation update (#5088)
  • Format lists for readability (#5082)
  • doc: improve WiFi.persistent documentation (#5081)
  • Analog input voltage can be 3.3V (#5020)

Boards

  • XinaBox CW01: DIO flash mode (#5720)
  • generic esp8266 board: Use flash mode DOUT by default, in place of QIO (#5601)
  • ESPectro Core board support (#5419)
  • Added 2M generic boards (#5404)
  • support new board (invent one) (#5286)
  • Fix NUM_ANALOG_INPUTS for Amperka WiFi slot (#5219)
  • Fix boards.txt.py compatible with python3 (#4998)
  • Update ESPduino pin definitions (#4828)

Tests / CI

  • device test updates (ping, test_millis_mm) (#5455)
  • fix device test test_http_server (#5414)
  • Split PIO job into even and odd builds (#5405)
  • Move from container to VM per Travis requirements (#5367)
  • Class mocks for sketch emulation on host (#5342)
  • Fix device/test_http_client tests (#5309)
  • reduce git load in travis (#5490)
  • ci: fix checking CI_GITHUB_API_KEY, refactoring (#5496)
  • ci: use travis jobs to structure the CI flow

2.5.0-beta3

5 years ago

Breaking change

  • Arduino FQBN has changed since release 2.4.2 (issue #5572)

Core

  • Fix pgm_read_float() macro definitions (#5666)
  • Release buffer/cache on SPIFFS.end() (#5651)
  • GDB support w/new toolchain and UART driver (#5559)
  • hardwareSerial: add missing include (#5648)
  • Changed I2C buffer from 32 to 128 bytes to match Espressif's ESP32 Arduino core (#3576)
  • Remove broken ltoa/ultoa, call itoa/utoa (#5625)
  • Make waveform generator a NMI to run always, increase accuracy (#5578)
  • Remove interrupt disable around flash operations (#5577)
  • Make exceptions off by default (#5538)
  • Rewrite PUYA patch to be more universal and mem friendly. (#5504)

Library - ESP8266WiFi (SSL/TLS)

  • Update to latest BearSSL code. (#5669)
  • Silently eat \rs in PEM decoder in BearSSL (#5598)

Library - ESP8266WiFi

  • Add capability to have light static DHCP lease (#5594)
  • dynamic WiFi.hostname("newname") (#5652)
  • decorate as override virtual methods in WiFiUDP (#5637)
  • WiFiClient::remoteIP: fix nullptr crash (#5634)
  • turn off random delay before sntp request (#5567)
  • fix dhcp6 in upstream lwIP (#5560)
  • fixes for IPv6, added in CI (#5557)
  • add 1 more IPAddress constructor for IPv6 (#5551)
  • Add support for String args to softAP and begin (#5295)
  • let lwIP route packets, do not let SDK teaching how to do so (#5526)
  • in sta mode, empty passphrase should not use secure auth mode (#5516)

Library - mDNS

  • LEAmDNS Fixes (#5641, #5619, #5563)
  • Update mDNS examples to use HTTP Server instead of TCP Server (#5589)
  • use newlib api in new mDNS, fix host using mDNS (#5545)
  • mDNS: Add support for String arg to begin() (#5542)

Other Libraries

  • Release referenced resources in the destructor for ESP8266SSDP (#5607)
  • Rework DNSServer to be more robust (#5573)
  • Fix negative SPIFFS size (#5522)
  • Webserver: some clients were not able to authenticate using DIGEST_AUTH (#5506)

Build system, Toolchain & Newlib -

  • fix lwip selection in tests/device Makefile (#5643)
  • Split common.sh into separate scripts for each job (#5569)
  • make CI starts with (longer) PIO jobs, also move (shorter) host job later (#5599)
  • Add Linux i686 (32bit) architecture toolchain (#5586)
  • Speed up CI builds with caching hacks (#5539)
  • emulation on host: fixes and updates (#5537, #5633, #5605)

Boards

  • generic esp8266 board: Use flash mode DOUT by default, in place of QIO (#5601)

Documentation

  • Update conf.py (#5518)
  • Correct 'git submodule' syntax (#5654)
  • Correct link to Arduino Board Manager info (#5650)
  • Add fix for SoftwareSerial submodule errors to documentation (#5602)
  • Add specific instructions for breaking changes (#5581)
  • clarify some points, add links, add doc/conf.py (#5519)

2.5.0-beta2

5 years ago

Changes since 2.5.0-beta1:

Core

  • Increase free IRAM (#5499)

Library - mDNS

  • Undo move of keywords.txt and readme.rst for ESP8266mDNS library (#5495)

Library - ArduinoOTA

  • Update ArduinoOTA and examples with MDNS.update() calls (#5494)

Build system, Toolchain & Newlib

  • Update to toolchain 2.5.0-3 JSON (#5502)
  • Move libstdc++-nox out of IRAM (#5492)

Package Builder

  • Keep signing commands in platform.txt on release (#5491)

Documentation

  • Update release instructions README.md (#5482)

Tests / CI

  • reduce git load in travis (#5490)
  • ci: fix checking CI_GITHUB_API_KEY, refactoring (#5496)
  • ci: use travis jobs to structure the CI flow