Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Future of this module #1045

Open
knolleary opened this issue Mar 8, 2024 · 9 comments
Open

Future of this module #1045

knolleary opened this issue Mar 8, 2024 · 9 comments

Comments

@knolleary
Copy link
Owner

I haven't been paying this code the attention it deserves. The issues and PRs have built up to the point where there are lots of duplicates and stale issues.

The code is pretty much in maintenance mode - I'm not looking to add new features etc. But if there are bugs, we should get them fixed.

My rough plan is:

  1. Identify a minimal set of PRs needed to address the most common issues - compiler warnings etc
  2. Close off all 'old' issues and PRs
  3. Publish a new version of the module
  4. Update the README to reflect the general 'maintenance' mode of this module
@dominicdumont
Copy link

Just wanted to mention that this is the best library around for pub/sub. It is very useful and I am grateful that you are still willing to maintain it. Thanks for the great work!

@hmueller01
Copy link

hmueller01 commented Mar 8, 2024

I scanned all the PR's and would approve to integrate the following fixes:

  1. All the same, would take the first/oldest: -comparison between signed and unsigned integer #788, fix "warning: comparison between signed and unsigned integer" #826, remove compiler warning #899, Minor unsigned int type correction (avoid warning) #1005 or change int to unsigned int to avoid compiler warmings in PubSubClient.cpp #1031
  2. IMPORTANT Fix bug in publish_P which will always treat the payload length as 0 when used with PROGMEM #783 - closes esp8266 crashes when using payload in PROGMEM (v2.8) #747, fix: use of wrong strnlen variant on PROGMEM payload strings #1020, Use strnlen_P for Strings stored in PROGMEM #745
  3. bugfix for keep alive zero #1038
  4. fixed typo in docs #1029
  5. Fix: Vulnerability in Comparison of different type sizes #1001 - if @FeedehC accepts my suggestion (or you do it)
  6. Extend usage of std::function on all the platforms where it's available #993, Update PubSubClient.h to fix c++ version related errors #863 can be closed with this as well
  7. fix: increase bytesToWrite to uint16_t to prevent overflow #844
  8. Fixed ESP8266 example publish as millis() returns unsigned #605
  9. Add yield() calls in connect() and write() to avoid wdt resets if eit… #567 - closes add delay that that prevent watchdog to crash #901, Fix issue #308 #314
  10. Using delegate constructors #1046, closes Initialize callback to NULL to avoid exception on calling uninitialized callback #840

This is potentially worth checking for integration (not adding new features):

  1. Change private to protected #1026
  2. Adds in-source documentation to PubSubClient header. #966
  3. Resolve issue #832 (Potential memory corruption) #835
  4. Use bool instead of boolean #830
  5. Add flag for enabling debugging of library #768

@kamiKAZIK
Copy link

would it make sense to create an organization and assign several maintainers instead? This is the best MQTT client for Arduino and ESP as far as I know, would be a shame to slowly put it to rest

@hmueller01
Copy link

hmueller01 commented Mar 12, 2024

I merged almost all patches above, except #1029, #1026 and #835 into
https://github.com/hmueller01/pubsubclient/tree/dev-fixes
If you like you can test it. I tested this on ESP8266 and found no issues til now.
Not sure if #768 works on all platforms, as it uses printf which is not defined in default Arduino

@cchaz003
Copy link

@hmueller01 I'm trying out your changes on some of my deployed devices (the non-critical ones at least). I'll let you know if I run into any bugs related to the merged updates.

@kamiKAZIK I too would love to see some form of a community support moving forward if @knolleary is on board. I've used this lib under the hood on essentially every MQTT based project I've done over the years and would love to give back. I would be happy to join with a group of like minded folks who want this library to live on and continue developing it!

@abdosn
Copy link

abdosn commented Apr 16, 2024

I suggest using Issue template like this to clean up issues that do not need any updates to the library

@Avamander
Copy link

I've been a maintainer for a handful of projects, Arduino and related, for a bunch of years now. If there's interest I can lend a hand when I can.

@schlaubstar
Copy link

Would it make sense to align with https://github.com/thingsboard/pubsubclient
For my understanding TB maintains the most advanced fork of this project

@hmueller01
Copy link

Hello @knolleary , is it possible to give me or someone else access to this repo? It's really sad that this good library is not maintained any more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants