-
Notifications
You must be signed in to change notification settings - Fork 0
Up nugets #57
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
Conversation
📝 WalkthroughWalkthroughThis pull request updates multiple project and configuration files across various telemetry client projects by incrementing the version numbers for several library references and NuGet packages. The changes span across projects such as AtticMonitor, SmartPowerMeter, Aidon.Sensor, NeoPixel, SdCard, Wifi.Sensor, and shared Client.Services and test projects. In addition to version bumps (e.g. System.Device.Wifi, System.IO.Streams, System.Net, nanoFramework.M2Mqtt, nanoFramework.Json), the Changes
Possibly related PRs
Poem
✨ Finishing Touches
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (19)
src/nf-telemetry-clients/Clients/AtticMonitor.NfClient/AtticMonitor.NfClient.nfproj(1 hunks)src/nf-telemetry-clients/Clients/AtticMonitor.NfClient/packages.config(1 hunks)src/nf-telemetry-clients/Clients/SmartPowerMeter.NfClient/SmartPowerMeter.NfClient.nfproj(1 hunks)src/nf-telemetry-clients/Clients/SmartPowerMeter.NfClient/packages.config(1 hunks)src/nf-telemetry-clients/Peripherals/Aidon.Sensor/Aidon.Sensor.nfproj(1 hunks)src/nf-telemetry-clients/Peripherals/Aidon.Sensor/packages.config(1 hunks)src/nf-telemetry-clients/Peripherals/NeoPixel.Peripheral/NeoPixelGauge.cs(1 hunks)src/nf-telemetry-clients/Peripherals/SdCard.Peripheral/SdCard.Peripheral.nfproj(1 hunks)src/nf-telemetry-clients/Peripherals/SdCard.Peripheral/packages.config(1 hunks)src/nf-telemetry-clients/Peripherals/Tests/Peripherals.Benchmarks/Peripherals.Benchmarks.nfproj(1 hunks)src/nf-telemetry-clients/Peripherals/Tests/Peripherals.Benchmarks/packages.config(1 hunks)src/nf-telemetry-clients/Peripherals/Wifi.Sensor/Wifi.Sensor.nfproj(1 hunks)src/nf-telemetry-clients/Peripherals/Wifi.Sensor/packages.config(1 hunks)src/nf-telemetry-clients/Shared/Client.Services/Client.Services.nfproj(2 hunks)src/nf-telemetry-clients/Shared/Client.Services/packages.config(1 hunks)src/nf-telemetry-clients/Shared/Tests/Client.Services.Benchmarks/Client.Services.Benchmarks.nfproj(2 hunks)src/nf-telemetry-clients/Shared/Tests/Client.Services.Benchmarks/packages.config(1 hunks)src/nf-telemetry-clients/Shared/Tests/Client.Services.Tests/Client.Services.Tests.nfproj(2 hunks)src/nf-telemetry-clients/Shared/Tests/Client.Services.Tests/packages.config(1 hunks)
✅ Files skipped from review due to trivial changes (14)
- src/nf-telemetry-clients/Shared/Tests/Client.Services.Tests/packages.config
- src/nf-telemetry-clients/Peripherals/Tests/Peripherals.Benchmarks/packages.config
- src/nf-telemetry-clients/Peripherals/SdCard.Peripheral/packages.config
- src/nf-telemetry-clients/Peripherals/SdCard.Peripheral/SdCard.Peripheral.nfproj
- src/nf-telemetry-clients/Peripherals/Aidon.Sensor/packages.config
- src/nf-telemetry-clients/Shared/Tests/Client.Services.Benchmarks/packages.config
- src/nf-telemetry-clients/Shared/Tests/Client.Services.Tests/Client.Services.Tests.nfproj
- src/nf-telemetry-clients/Peripherals/Tests/Peripherals.Benchmarks/Peripherals.Benchmarks.nfproj
- src/nf-telemetry-clients/Peripherals/Aidon.Sensor/Aidon.Sensor.nfproj
- src/nf-telemetry-clients/Peripherals/Wifi.Sensor/packages.config
- src/nf-telemetry-clients/Clients/SmartPowerMeter.NfClient/packages.config
- src/nf-telemetry-clients/Clients/AtticMonitor.NfClient/packages.config
- src/nf-telemetry-clients/Clients/AtticMonitor.NfClient/AtticMonitor.NfClient.nfproj
- src/nf-telemetry-clients/Clients/SmartPowerMeter.NfClient/SmartPowerMeter.NfClient.nfproj
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Analyze (csharp)
🔇 Additional comments (18)
src/nf-telemetry-clients/Shared/Tests/Client.Services.Benchmarks/Client.Services.Benchmarks.nfproj (3)
45-45: Proper package update for nanoFramework.JsonThe update from version 2.2.183 to 2.2.185 follows good dependency management practices by keeping libraries up-to-date with minor version increments.
48-48: Proper package update for nanoFramework.LoggingThe update from version 1.1.144 to 1.1.146 follows good dependency management practices by keeping libraries up-to-date with minor version increments.
63-63: Proper package update for System.IO.StreamsThe update from version 1.1.88 to 1.1.89 follows good dependency management practices by keeping libraries up-to-date with minor version increments.
src/nf-telemetry-clients/Shared/Client.Services/packages.config (5)
5-5: Proper package update for nanoFramework.M2MqttThe update from version 5.1.185 to 5.1.187 follows good dependency management practices by keeping critical MQTT communication libraries up-to-date.
9-9: Proper package update for nanoFramework.System.Device.WifiThe update from version 1.5.123 to 1.5.124 keeps the WiFi device library current, which is important for network connectivity reliability in IoT devices.
11-11: Proper package update for nanoFramework.System.IO.PortsThe update from version 1.1.123 to 1.1.125 maintains the IO.Ports library at the latest version, which is important for any sensor communications using serial ports.
12-12: Proper package update for nanoFramework.System.IO.StreamsThe update from version 1.1.88 to 1.1.89 keeps the IO.Streams library current for proper stream handling in the telemetry client.
13-13: Proper package update for nanoFramework.System.NetThe update from version 1.11.32 to 1.11.34 ensures the networking components are current, which is crucial for telemetry data transmission reliability.
src/nf-telemetry-clients/Peripherals/Wifi.Sensor/Wifi.Sensor.nfproj (4)
49-49: Proper reference update for System.Device.WifiThe HintPath update to version 1.5.124 maintains consistency with the packages.config update, ensuring the WiFi sensor uses the latest library version.
52-52: Proper reference update for System.IO.StreamsThe HintPath update to version 1.1.89 maintains consistency with the packages.config update for proper stream handling within the WiFi sensor.
55-55: Proper reference update for System.NetThe HintPath update to version 1.11.34 ensures the WiFi sensor component uses the latest networking library, critical for reliable wireless communication.
58-58: Proper reference update for System.Net.Sockets.UdpClientThe HintPath update to version 1.1.90 ensures the WiFi sensor uses the latest UDP client implementation, which is important for network scanning and discovery.
src/nf-telemetry-clients/Shared/Client.Services/Client.Services.nfproj (6)
45-45: Proper reference update for MQTT librariesThe HintPath updates for both nanoFramework.M2Mqtt and nanoFramework.M2Mqtt.Core to version 5.1.187 maintain consistency with the packages.config update, ensuring the telemetry services use the latest MQTT implementation.
Also applies to: 48-48
63-63: Proper reference update for System.Device.WifiThe HintPath update to version 1.5.124 maintains consistency with the packages.config update, ensuring the client services use the latest WiFi library version.
69-69: Proper reference update for System.IO.PortsThe HintPath update to version 1.1.125 maintains consistency with the packages.config update, ensuring the client services use the latest serial port library implementation.
72-72: Proper reference update for System.IO.StreamsThe HintPath update to version 1.1.89 maintains consistency with the packages.config update, ensuring the client services use the latest stream handling library.
75-75: Proper reference update for System.NetThe HintPath update to version 1.11.34 maintains consistency with the packages.config update, ensuring the client services use the latest networking library.
45-75:❓ Verification inconclusive
Verify compatibility of all updated packages
All package updates appear to be minor version increments which should maintain backward compatibility. However, it's always good practice to verify that all updated packages work well together in your test environment before deploying to production.
🌐 Web query:
Are there any known compatibility issues between nanoFramework.M2Mqtt 5.1.187, nanoFramework.System.Device.Wifi 1.5.124, and nanoFramework.System.Net 1.11.34?💡 Result:
The compatibility between nanoFramework.M2Mqtt 5.1.187, nanoFramework.System.Device.Wifi 1.5.124, and nanoFramework.System.Net 1.11.34 depends on version alignment and firmware requirements. Here's a breakdown of potential issues and considerations:
Version Compatibility
nanoFramework.M2Mqtt 5.1.187
- Explicitly depends on nanoFramework.System.Net v1.11.32 [1][4].
- While v1.11.34 is a minor version bump, backward compatibility is not guaranteed. Breaking changes in
System.Net(e.g., TLS/SSL handling) could disrupt MQTT connections, especially for secure brokers like Azure IoT Hub [1][5].nanoFramework.System.Device.Wifi 1.5.124
- The
WifiNetworkHelperclass in this library manages WiFi connectivity [10].- Incompatibilities may arise if
System.Device.Wifiintroduces changes to event handling or connection workflows that conflict withM2Mqtt's internal WiFi checks (e.g.,WiFi.status()errors, as seen in similar Arduino scenarios [2][8]).
Firmware Alignment
- Native vs. Managed Libraries:
Mismatches between NuGet packages (managed) and firmware (native assemblies) can cause deployment failures. For example:
- If the firmware lacks native support for
System.Net v1.11.34, TLS/SSL operations inM2Mqttmay fail [4][6].System.Device.Wifirelies on firmware-level WiFi drivers. Missing updates (e.g., ESP32-C3 revisions) could block network initialization [8][10].
Reported Issues
- WiFi Configuration Errors:
After firmware updates, users encountered "WiFi not declared in this scope" errors when olderM2Mqttcode attempted direct WiFi calls. This suggests dependency conflicts when newer WiFi libraries deprecate legacy methods [2][8].- Authentication Failures:
MQTT v5.0’s extended authentication flow (e.g., SAS tokens for Azure IoT Hub) requires precise alignment betweenSystem.NetSSL/TLS support andM2Mqtt’s event handlers [1][9].
Recommendations
- Downgrade
System.Netto v1.11.32 to matchM2Mqtt’s dependency [1][4].- Verify Firmware Compatibility:
Use theDevice Capabilitiestool in Visual Studio to confirm native assembly versions match NuGet packages [4][6].- Test Authentication Workflows:
For MQTT v5.0, ensureSystem.Device.WifiandSystem.NetsupportUserPropertiesand SAS token generation [1][9].- Check WiFi Initialization:
Replace directWiFicalls withWifiNetworkHelperto avoid conflicts withM2Mqtt’s internal network checks [6][10].
For stable operation, ensure all packages and firmware are version-aligned per the nanoFramework dependencies guide [4].
Citations:
- 1: https://www.nuget.org/packages/nanoFramework.m2mqtt/
- 2: https://forum.arduino.cc/t/updates-to-espmqttclient-and-wifi-have-broken-code-that-used-to-work/1320743
- 3: https://www.nuget.org/packages/nanoFramework.M2Mqtt/5.0.0-preview.2
- 4: https://docs.nanoframework.net/content/getting-started-guides/trouble-shooting-guide.html
- 5: https://docs.nanoframework.net/api/nanoFramework.M2Mqtt.html
- 6: https://sandervandevelde.wordpress.com/2022/12/15/fun-with-nanoframework-running-net-charp-on-esp32/
- 7: https://docs.nanoframework.net/api/nanoFramework.M2Mqtt.Exceptions.html
- 8: nanoframework/Home#1472
- 9: https://docs.nanoframework.net/api/nanoFramework.M2Mqtt.Messages.html
- 10: https://github.com/nanoframework/System.Device.Wifi
Action Required: Verify Package Version Alignment and Firmware Compatibility
Based on recent findings, while the package updates appear as minor increments, there are potential compatibility concerns that need to be addressed:
- nanoFramework.M2Mqtt (5.1.187) Dependency: This package explicitly expects System.Net v1.11.32. The update to v1.11.34 could introduce subtle breaking changes (e.g., TLS/SSL handling) that may disrupt MQTT connections.
- System.Device.Wifi Concerns: Verify that updates in this package do not conflict with how M2Mqtt handles WiFi functionalities, especially in cases where methods or event handling differ.
- Firmware Alignment: Ensure that the firmware’s native assemblies are aligned with these package versions. Mismatches could affect network operations (for instance, TLS/SSL or WiFi connection initialization).
Recommendations:
- Consider downgrading System.Net to v1.11.32 to resolve the dependency misalignment with M2Mqtt.
- Use tools like Visual Studio’s Device Capabilities tool to confirm that the firmware supports the updated assemblies.
- Thoroughly test MQTT authentication and secure connection workflows (especially for scenarios like Azure IoT Hub) in your test environment before deployment.



Up nugets
Summary by CodeRabbit
Chores
Refactor