Skip to content

Commit a69cc5c

Browse files
authored
Prepare 3.3.0 (#87)
* updated newly added keywords * migrated from CHANGES.txt to CHANGELOG.md
1 parent 2490f64 commit a69cc5c

7 files changed

Lines changed: 197 additions & 154 deletions

File tree

CHANGELOG.md

Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
6+
[Semantic Versioning](https://semver.org/).
7+
8+
## [3.3.0] - 2025-12-14
9+
10+
### Added
11+
12+
* Speedup publish large messages by using a buffer by @TD-er in [#59](https://github.com/hmueller01/pubsubclient3/pull/59)
13+
* Support `PROGMEM` and `__FlashStringHelper` topics by @hmueller01 in [#72](https://github.com/hmueller01/pubsubclient3/pull/72)
14+
* Added issue template by @hmueller01 in [#76](https://github.com/hmueller01/pubsubclient3/pull/76)
15+
* Report delta sizes in pull requests by @hmueller01 in [#77](https://github.com/hmueller01/pubsubclient3/pull/77)
16+
17+
### Changed
18+
19+
* Refactored private members by @hmueller01 in [#68](https://github.com/hmueller01/pubsubclient3/pull/68)
20+
* Refactored private functions by @hmueller01 in [#70](https://github.com/hmueller01/pubsubclient3/pull/70)
21+
* Do not crash if `_client` not set by @hmueller01 in [#69](https://github.com/hmueller01/pubsubclient3/pull/69)
22+
* Minor updates that come across by @hmueller01 in [#73](https://github.com/hmueller01/pubsubclient3/pull/73)
23+
* Inline optimisation by @hmueller01 in [#75](https://github.com/hmueller01/pubsubclient3/pull/75)
24+
* Bump actions/upload-pages-artifact from 3 to 4 by @dependabot[bot] in [#78](https://github.com/hmueller01/pubsubclient3/pull/78)
25+
* Bump actions/checkout from 2 to 5 by @dependabot[bot] in [#79](https://github.com/hmueller01/pubsubclient3/pull/79)
26+
* Tag unused parameter to avoid warnings by @hmueller01 in [#82](https://github.com/hmueller01/pubsubclient3/pull/82)
27+
* Fix compile warning at strnlen bound by @hmueller01 in [#83](https://github.com/hmueller01/pubsubclient3/pull/83)
28+
* Fix deprecated `BUILTIN_LED` by @hmueller01 in [#84](https://github.com/hmueller01/pubsubclient3/pull/84)
29+
* Bump actions/checkout from 5 to 6 by @dependabot[bot] in [#85](https://github.com/hmueller01/pubsubclient3/pull/85)
30+
* Update workflows by @hmueller01 in [#86](https://github.com/hmueller01/pubsubclient3/pull/86)
31+
32+
## [3.2.1] - 2025-09-11
33+
34+
### Fixed
35+
36+
- Fixed bug introduced with QoS > 0 support (#65)
37+
38+
## [3.2.0] - 2025-07-20
39+
40+
### Added
41+
42+
- Support publish at QoS 1 and 2 (by @hmueller01) (#49)
43+
- Doxygen API documentation on gh-pages (by @hmueller01) (#51)
44+
45+
### Changed
46+
47+
- Add check for nullptr in `CHECK_STRING_LENGTH` (by @TD-er) (#48)
48+
- Move `CHECK_STRING_LENGTH` to `PubSubClient.cpp` (by @hmueller01) (#50)
49+
- Get rid of lazy calling parameter (by @hmueller01) (#53)
50+
- Implemented `writeNextMsgId()` (by @hmueller01) (#54)
51+
- Cleanup `writeString()` (by @hmueller01) (#55)
52+
53+
## [3.1.0] - 2025-03-20
54+
55+
### Added
56+
57+
- Added `ERROR_PSC_PRINTF` and `ERROR_PSC_PRINTF_P` outputs (#25)
58+
59+
### Changed
60+
61+
- Fix `setServer(domain, ...)` by copying domain string to an internal buffer (prevent potential dangling pointer) (#10)
62+
- Connect to broker only if port != 0 (protect against incorrect initialization) (#10)
63+
- Refactored buffer length types to `size_t` (#11)
64+
- Added warnings and `-Werror` to tests Makefile (#11)
65+
- Reformatted tests code using Google style (see `.clang-format`) (#11)
66+
- Fix keepalive handling (thanks to @uschnindler) (#14)
67+
- Use initializer lists for constructors (#15)
68+
- Fix `DEBUG_PSC_PRINTF` outputs (#18)
69+
- Introduce `MQTTRETAINED` flag (#21)
70+
- Added documentation on `readByte()` and `readPacket()` (#23)
71+
- Refactored `buildHeader()`, `readPacket()`, `readByte()`, `beginPublish()`/`endPublish()`, `publish()`/`publish_P()`, `connect()`, `connected()`, `subscribe()`/`unsubscribe()` and internal timing handling (#22, #23, #28, #30, #31, #33, #34, #37, #38, #39, #40, #44)
72+
- Fixed potential memory corruption in `MQTTPUBLISH` callback preparation (#25)
73+
- Fixed a missing failure test on `_client->read()` in `readByte()` (#32)
74+
- Switch from constructor init-lists to class member initialization (C++ core guideline C.45) (#42)
75+
76+
## [3.0.2] - 2025-02-27
77+
78+
### Added
79+
80+
- GitHub workflow to execute tests
81+
- GitHub workflow to compile examples using Arduino CLI
82+
- Examples: Use a better source of randomness (#9)
83+
- Optionally deactivate `std::function` usage (#7)
84+
85+
## [3.0.1] - 2025-02-20
86+
87+
### Added
88+
89+
- Added `.editorconfig`
90+
- Added GitHub workflow to check code style on push/PR
91+
92+
### Changed
93+
94+
- Reformatted code using Google style
95+
- Fixes for tests: missing def for `strlen_P` & Python libs
96+
97+
## [3.0] - 2025-02-17
98+
99+
Maintenance taken over by Holger Mueller
100+
101+
### Added
102+
103+
- In-source documentation added to `PubSubClient` header
104+
- Add flag for enabling debugging of library
105+
106+
### Changed
107+
108+
- Always use `PubSubClient()` constructor
109+
- Use `bool` instead of `boolean`
110+
- Add `yield()` calls in `connect()` and `write()` to avoid watchdog resets
111+
- Fix bug in `publish_P` handling of PROGMEM payload length
112+
- Fix increase `bytesToWrite` to `uint16_t` to prevent overflow
113+
- Remove compiler warning about unsigned `expectedLength`
114+
- Extend usage of `std::function` where available
115+
- Fix for keep alive zero
116+
117+
## [2.8] - 2020-05-20
118+
119+
### Added
120+
121+
- `setBufferSize()` to override `MQTT_MAX_PACKET_SIZE`
122+
- `setKeepAlive()` to override `MQTT_KEEPALIVE`
123+
- `setSocketTimeout()` to override `MQTT_SOCKET_TIMEOUT`
124+
- Check to prevent subscribe/unsubscribe to empty topics
125+
- Declare WiFi mode prior to connect in ESP example
126+
- Use `strnlen` to avoid overruns
127+
- Support pre-connected `Client` objects
128+
129+
## [2.7] - 2018-11-02
130+
131+
### Added
132+
133+
- Added large-payload API: `beginPublish`/`write`/`publish`/`endPublish`
134+
- Added `yield` calls to improve reliability on ESP
135+
- Added Clean Session flag to connect options
136+
- Added ESP32 support for functional callback signature
137+
138+
### Fixed
139+
140+
- Fixed remaining-length handling to prevent buffer overrun
141+
142+
## [2.4] - 2015-11-21
143+
144+
### Added
145+
146+
- `MQTT_SOCKET_TIMEOUT` to avoid blocking indefinitely while waiting for inbound data
147+
148+
### Fixed
149+
150+
- Fixed return code when publishing >256 bytes
151+
152+
## [2.3] - 2015-09-11
153+
154+
### Added
155+
156+
- `publish(topic,payload,retained)` convenience overload
157+
158+
## [2.2] - 2015-09-07
159+
160+
### Changed
161+
162+
- Changed code layout to match Arduino Library requirements
163+
164+
## [2.1] - 2015-09-07
165+
166+
### Added
167+
168+
- `MAX_TRANSFER_SIZE` to chunk messages if needed
169+
- Reject topic/payloads that exceed `MQTT_MAX_PACKET_SIZE`
170+
171+
## [2.0] - 2015-08-28
172+
173+
### Added
174+
175+
- MQTT 3.1.1 support
176+
- Fix PROGMEM handling for Intel Galileo/ESP8266
177+
- Overloaded constructors for convenience
178+
- Chainable setters for server/callback/client/stream
179+
- `state()` function to return CONNACK code
180+
181+
## [1.0] - 2009-02-02
182+
183+
- Initial release notes: QoS 0 only, 128 byte max message size, keepalive 30s, no Will messages
184+

CHANGES.txt

Lines changed: 0 additions & 148 deletions
This file was deleted.

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ Full API documentation is available here: https://hmueller01.github.io/pubsubcli
5757
```
5858
as `client.publish_P(...)` is already used for `PROGMEM` payloads.
5959

60-
6160
## Compatible Hardware
6261

6362
The library uses the Arduino Ethernet Client api for interacting with the
@@ -80,6 +79,10 @@ The library cannot currently be used with hardware based on the ENC28J60 chip
8079
such as the Nanode or the Nuelectronics Ethernet Shield. For those, there is an
8180
[alternative library](https://github.com/njh/NanodeMQTT) available.
8281

82+
## Changelog
83+
84+
See [CHANGELOG.md](CHANGELOG.md)
85+
8386
## License
8487

85-
This code is released under the MIT License.
88+
This code is released under the [MIT License](LICENSE.txt).

examples/mqtt_progmem/platformio.ini

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ description = Basic MQTT example with Authentication and Progmem strings
1616
framework = arduino
1717
lib_deps =
1818
arduino-libraries/Ethernet @ ^2.0.2
19-
; hmueller01/PubSubClient3 @ ^3.2.1
20-
https://github.com/hmueller01/pubsubclient3.git#implement-fstring-topics
19+
hmueller01/PubSubClient3 @ ^3.3.0
2120
build_flags =
2221
; -D DEBUG_ESP_PORT=Serial
2322
; -D DEBUG_PUBSUBCLIENT

keywords.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,12 @@ disconnect KEYWORD2
1717
publish KEYWORD2
1818
publish_P KEYWORD2
1919
beginPublish KEYWORD2
20+
beginPublish_P KEYWORD2
2021
endPublish KEYWORD2
2122
write KEYWORD2
23+
write_P KEYWORD2
2224
subscribe KEYWORD2
25+
subscribe_P KEYWORD2
2326
unsubscribe KEYWORD2
2427
loop KEYWORD2
2528
connected KEYWORD2

library.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@
66
"type": "git",
77
"url": "https://github.com/hmueller01/pubsubclient3.git"
88
},
9-
"version": "3.2.1",
9+
"version": "3.3.0",
1010
"license": "MIT",
1111
"exclude": "tests",
1212
"examples": "examples/*/*.ino",
1313
"frameworks": "arduino",
1414
"platforms": [
1515
"atmelavr",
16+
"atmelsam",
17+
"atmelmegaavr",
1618
"espressif8266",
1719
"espressif32"
1820
]

0 commit comments

Comments
 (0)