Skip to content

Conversation

nfbot
Copy link
Member

@nfbot nfbot commented Jan 31, 2025

Bumps nanoFramework.CoreLibrary from 1.15.5 to 1.16.1
Bumps nanoFramework.Runtime.Events from 1.11.18 to 1.11.26
Bumps nanoFramework.System.Math from 1.5.43 to 1.5.86
Bumps UnitsNet.nanoFramework.Angle from 5.66.0 to 5.67.0
Bumps nanoFramework.System.Device.Spi from 1.3.52 to 1.3.70
Bumps UnitsNet.nanoFramework.ElectricPotential from 5.66.0 to 5.67.0
Bumps nanoFramework.Runtime.Native from 1.7.1 to 1.7.7
Bumps nanoFramework.System.Device.I2c from 1.1.16 to 1.1.25
Bumps UnitsNet.nanoFramework.Length from 5.66.0 to 5.67.0
Bumps UnitsNet.nanoFramework.Duration from 5.66.0 to 5.67.0
Bumps UnitsNet.nanoFramework.Mass from 5.66.0 to 5.67.0
Bumps nanoFramework.Hardware.Esp32 from 1.6.23 to 1.6.28
Bumps UnitsNet.nanoFramework.Temperature from 5.66.0 to 5.67.0
Bumps UnitsNet.nanoFramework.Ratio from 5.66.0 to 5.67.0
Bumps UnitsNet.nanoFramework.RelativeHumidity from 5.66.0 to 5.67.0
Bumps nanoFramework.System.Device.Model from 1.2.693 to 1.2.751
Bumps nanoFramework.System.Buffers.Binary.BinaryPrimitives from 1.2.699 to 1.2.751
Bumps nanoFramework.Graphics.Core from 1.2.22 to 1.2.33
Bumps nanoFramework.System.Text from 1.3.1 to 1.3.9
Bumps nanoFramework.TestFramework from 3.0.49 to 3.0.57
Bumps nanoFramework.M2Mqtt.Core from 5.1.161 to 5.1.169
Bumps nanoFramework.System.Collections from 1.5.45 to 1.5.56
Bumps nanoFramework.System.IO.Ports from 1.1.107 to 1.1.112
Bumps nanoFramework.System.IO.Streams from 1.1.77 to 1.1.82
Bumps nanoFramework.System.Threading from 1.1.32 to 1.1.45
Bumps UnitsNet.nanoFramework.Speed from 5.66.0 to 5.67.0
Bumps nanoFramework.System.Net from 1.11.17 to 1.11.23
Bumps UnitsNet.nanoFramework.ElectricCurrent from 5.66.0 to 5.67.0
Bumps UnitsNet.nanoFramework.Power from 5.66.0 to 5.67.0
Bumps UnitsNet.nanoFramework.Illuminance from 5.66.0 to 5.67.0
Bumps nanoFramework.System.Numerics from 1.2.693 to 1.2.751
Bumps nanoFramework.Iot.Device.Common.WeatherHelper from 1.2.742 to 1.2.751
Bumps UnitsNet.nanoFramework.Pressure from 5.66.0 to 5.67.0
Bumps UnitsNet.nanoFramework.ElectricResistance from 5.66.0 to 5.67.0
Bumps UnitsNet.nanoFramework.ElectricPotentialDc from 5.66.0 to 5.67.0
Bumps nanoFramework.System.Device.Pwm from 1.1.10 to 1.1.19
Bumps UnitsNet.nanoFramework.Frequency from 5.66.0 to 5.67.0
Bumps nanoFramework.System.Device.Gpio from 1.1.41 to 1.1.52
Bumps nanoFramework.System.Diagnostics.Stopwatch from 1.2.693 to 1.2.751
Bumps UnitsNet.nanoFramework.VolumeConcentration from 5.66.0 to 5.67.0
Bumps nanoFramework.Logging from 1.1.125 to 1.1.131
Bumps nanoFramework.Logging.Stream from 1.1.125 to 1.1.131
Bumps nanoFramework.System.IO.FileSystem from 1.1.69 to 1.1.74
Bumps nanoFramework.System.Runtime from 1.0.27 to 1.0.28
Bumps nanoFramework.Iot.Device.Multiplexing from 1.2.715 to 1.2.751
Bumps nanoFramework.ResourceManager from 1.2.19 to 1.2.28
Bumps nanoFramework.System.Device.Wifi from 1.5.107 to 1.5.112
Bumps nanoFramework.System.Net.Http from 1.5.165 to 1.5.172
Bumps nanoFramework.Hardware.Esp32.Rmt from 2.0.13 to 2.0.21
Bumps nanoFramework.Iot.Device.Common.NumberHelper from 1.2.693 to 1.2.751
Bumps nanoFramework.Device.OneWire from 1.4.22 to 1.4.31
Bumps UnitsNet.nanoFramework.MagneticField from 5.66.0 to 5.67.0
Bumps nanoFramework.System.Device.Spi from 1.3.52 to 1.3.71
Bumps nanoFramework.Iot.Device.ShiftRegister from 1.2.716 to 1.2.752
Bumps nanoFramework.Iot.Device.Card from 1.2.727 to 1.2.752
Bumps nanoFramework.System.Net.Sockets.UdpClient from 1.1.75 to 1.1.80
Bumps nanoFramework.System.Net.Http.Server from 1.5.165 to 1.5.172
Bumps nanoFramework.WebServer from 1.2.74 to 1.2.86
Bumps nanoFramework.System.Drawing from 1.2.693 to 1.2.751
Bumps nanoFramework.System.Device.Adc from 1.1.11 to 1.1.20
Bumps UnitsNet.nanoFramework.MassConcentration from 5.66.0 to 5.67.0

[version update]

⚠️ This is an automated update. ⚠️

Summary by CodeRabbit

Based on the comprehensive review of the changes across multiple device repositories, I'll craft a concise release note focusing on the key dependency updates:

Dependency Updates

  • Core Libraries:

    • Updated nanoFramework.CoreLibrary from version 1.15.5 to 1.16.1
    • Updated nanoFramework.Runtime.Events from version 1.11.18 to 1.11.26
  • Device Interaction Libraries:

    • Updated nanoFramework.System.Device.I2c from version 1.1.16 to 1.1.25
    • Updated nanoFramework.System.Device.Gpio from version 1.1.41 to 1.1.52
  • Utility Libraries:

    • Updated various UnitsNet libraries from version 5.66.0 to 5.67.0
    • Updated nanoFramework.System.Math from version 1.5.43 to 1.5.86

These updates include potential performance improvements, bug fixes, and compatibility enhancements across multiple device libraries.

Bumps nanoFramework.CoreLibrary from 1.15.5 to 1.16.1</br>Bumps nanoFramework.Runtime.Events from 1.11.18 to 1.11.26</br>Bumps nanoFramework.System.Math from 1.5.43 to 1.5.86</br>Bumps UnitsNet.nanoFramework.Angle from 5.66.0 to 5.67.0</br>Bumps nanoFramework.System.Device.Spi from 1.3.52 to 1.3.70</br>Bumps UnitsNet.nanoFramework.ElectricPotential from 5.66.0 to 5.67.0</br>Bumps nanoFramework.Runtime.Native from 1.7.1 to 1.7.7</br>Bumps nanoFramework.System.Device.I2c from 1.1.16 to 1.1.25</br>Bumps UnitsNet.nanoFramework.Length from 5.66.0 to 5.67.0</br>Bumps UnitsNet.nanoFramework.Duration from 5.66.0 to 5.67.0</br>Bumps UnitsNet.nanoFramework.Mass from 5.66.0 to 5.67.0</br>Bumps nanoFramework.Hardware.Esp32 from 1.6.23 to 1.6.28</br>Bumps UnitsNet.nanoFramework.Temperature from 5.66.0 to 5.67.0</br>Bumps UnitsNet.nanoFramework.Ratio from 5.66.0 to 5.67.0</br>Bumps UnitsNet.nanoFramework.RelativeHumidity from 5.66.0 to 5.67.0</br>Bumps nanoFramework.System.Device.Model from 1.2.693 to 1.2.751</br>Bumps nanoFramework.System.Buffers.Binary.BinaryPrimitives from 1.2.699 to 1.2.751</br>Bumps nanoFramework.Graphics.Core from 1.2.22 to 1.2.33</br>Bumps nanoFramework.System.Text from 1.3.1 to 1.3.9</br>Bumps nanoFramework.TestFramework from 3.0.49 to 3.0.57</br>Bumps nanoFramework.M2Mqtt.Core from 5.1.161 to 5.1.169</br>Bumps nanoFramework.System.Collections from 1.5.45 to 1.5.56</br>Bumps nanoFramework.System.IO.Ports from 1.1.107 to 1.1.112</br>Bumps nanoFramework.System.IO.Streams from 1.1.77 to 1.1.82</br>Bumps nanoFramework.System.Threading from 1.1.32 to 1.1.45</br>Bumps UnitsNet.nanoFramework.Speed from 5.66.0 to 5.67.0</br>Bumps nanoFramework.System.Net from 1.11.17 to 1.11.23</br>Bumps UnitsNet.nanoFramework.ElectricCurrent from 5.66.0 to 5.67.0</br>Bumps UnitsNet.nanoFramework.Power from 5.66.0 to 5.67.0</br>Bumps UnitsNet.nanoFramework.Illuminance from 5.66.0 to 5.67.0</br>Bumps nanoFramework.System.Numerics from 1.2.693 to 1.2.751</br>Bumps nanoFramework.Iot.Device.Common.WeatherHelper from 1.2.742 to 1.2.751</br>Bumps UnitsNet.nanoFramework.Pressure from 5.66.0 to 5.67.0</br>Bumps UnitsNet.nanoFramework.ElectricResistance from 5.66.0 to 5.67.0</br>Bumps UnitsNet.nanoFramework.ElectricPotentialDc from 5.66.0 to 5.67.0</br>Bumps nanoFramework.System.Device.Pwm from 1.1.10 to 1.1.19</br>Bumps UnitsNet.nanoFramework.Frequency from 5.66.0 to 5.67.0</br>Bumps nanoFramework.System.Device.Gpio from 1.1.41 to 1.1.52</br>Bumps nanoFramework.System.Diagnostics.Stopwatch from 1.2.693 to 1.2.751</br>Bumps UnitsNet.nanoFramework.VolumeConcentration from 5.66.0 to 5.67.0</br>Bumps nanoFramework.Logging from 1.1.125 to 1.1.131</br>Bumps nanoFramework.Logging.Stream from 1.1.125 to 1.1.131</br>Bumps nanoFramework.System.IO.FileSystem from 1.1.69 to 1.1.74</br>Bumps nanoFramework.System.Runtime from 1.0.27 to 1.0.28</br>Bumps nanoFramework.Iot.Device.Multiplexing from 1.2.715 to 1.2.751</br>Bumps nanoFramework.ResourceManager from 1.2.19 to 1.2.28</br>Bumps nanoFramework.System.Device.Wifi from 1.5.107 to 1.5.112</br>Bumps nanoFramework.System.Net.Http from 1.5.165 to 1.5.172</br>Bumps nanoFramework.Hardware.Esp32.Rmt from 2.0.13 to 2.0.21</br>Bumps nanoFramework.Iot.Device.Common.NumberHelper from 1.2.693 to 1.2.751</br>Bumps nanoFramework.Device.OneWire from 1.4.22 to 1.4.31</br>Bumps UnitsNet.nanoFramework.MagneticField from 5.66.0 to 5.67.0</br>Bumps nanoFramework.System.Device.Spi from 1.3.52 to 1.3.71</br>Bumps nanoFramework.Iot.Device.ShiftRegister from 1.2.716 to 1.2.752</br>Bumps nanoFramework.Iot.Device.Card from 1.2.727 to 1.2.752</br>Bumps nanoFramework.System.Net.Sockets.UdpClient from 1.1.75 to 1.1.80</br>Bumps nanoFramework.System.Net.Http.Server from 1.5.165 to 1.5.172</br>Bumps nanoFramework.WebServer from 1.2.74 to 1.2.86</br>Bumps nanoFramework.System.Drawing from 1.2.693 to 1.2.751</br>Bumps nanoFramework.System.Device.Adc from 1.1.11 to 1.1.20</br>Bumps UnitsNet.nanoFramework.MassConcentration from 5.66.0 to 5.67.0</br>
[version update]

### ⚠️ This is an automated update. ⚠️
Copy link

coderabbitai bot commented Jan 31, 2025

Walkthrough

This pull request involves a comprehensive update of dependency versions across multiple device packages in the nanoFramework repository. The changes primarily focus on updating various nanoFramework libraries and UnitsNet packages to their latest versions. These updates span multiple device-specific packages and include dependencies such as nanoFramework.CoreLibrary, nanoFramework.Runtime.Events, nanoFramework.System.Device libraries, and various UnitsNet measurement packages.

Changes

File Path Change Summary
devices/*/packages.lock.json Updated multiple dependencies across device packages, including:
- nanoFramework.CoreLibrary from 1.15.5 to 1.16.1
- nanoFramework.Runtime.Events from 1.11.18 to 1.11.26
- Various nanoFramework.System.* dependencies
- UnitsNet packages from 5.66.0 to 5.67.0

Possibly Related PRs

Suggested Labels

CI: Publish Release


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?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🔭 Outside diff range comments (1)
devices/Am2320/packages.lock.json (1)

Version inconsistencies detected in core dependencies

The dependency updates are not fully consistent across all packages:

  • nanoFramework.CoreLibrary has mixed versions (1.15.5 and 1.16.1)
  • nanoFramework.Runtime.Events has mixed versions (1.11.18 and 1.11.26)

Consider updating all packages to use the latest versions consistently:

  • CoreLibrary: 1.16.1
  • Runtime.Events: 1.11.26
🔗 Analysis chain

Line range hint 7-51: LGTM! The dependency updates look consistent and well-structured.

The package updates follow good practices:

  • Version ranges are strictly pinned for reproducibility
  • Content hashes are properly updated
  • Version updates are consistent across different device packages

Let's verify version consistency across all packages:

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify version consistency of key dependencies across all package lock files.
# Test: Check if all occurrences of key dependencies use the same version. Expect: Consistent versions.

echo "Checking nanoFramework.CoreLibrary versions..."
rg -A 2 '"nanoFramework.CoreLibrary".*\n.*"requested"' devices/*/packages.lock.json

echo "Checking nanoFramework.Runtime.Events versions..."
rg -A 2 '"nanoFramework.Runtime.Events".*\n.*"requested"' devices/*/packages.lock.json

echo "Checking UnitsNet.nanoFramework packages versions..."
rg -A 2 '"UnitsNet.nanoFramework.*".*\n.*"requested"' devices/*/packages.lock.json

Length of output: 15202


Script:

#!/bin/bash
# Description: Verify version consistency with correct multiline regex
# Test: Check if all occurrences of key dependencies use the same version

echo "Checking nanoFramework.CoreLibrary versions..."
rg -U '"nanoFramework.CoreLibrary".*"requested": "(.*?)"' -g 'packages.lock.json' devices/

echo "Checking nanoFramework.Runtime.Events versions..."
rg -U '"nanoFramework.Runtime.Events".*"requested": "(.*?)"' -g 'packages.lock.json' devices/

echo "Checking UnitsNet.nanoFramework packages versions..."
rg -U '"UnitsNet.nanoFramework.*".*"requested": "(.*?)"' -g 'packages.lock.json' devices/

Length of output: 601


Script:

#!/bin/bash
# Description: Verify package versions with simpler approach
# Test: Find all package.lock.json files and check dependency versions

echo "Listing all package.lock.json files..."
find devices -name "packages.lock.json" -type f

echo -e "\nChecking CoreLibrary versions..."
find devices -name "packages.lock.json" -type f -exec grep -A 2 "nanoFramework.CoreLibrary" {} \;

echo -e "\nChecking Runtime.Events versions..."
find devices -name "packages.lock.json" -type f -exec grep -A 2 "nanoFramework.Runtime.Events" {} \;

echo -e "\nChecking UnitsNet versions..."
find devices -name "packages.lock.json" -type f -exec grep -A 2 "UnitsNet.nanoFramework" {} \;

Length of output: 69294

🧹 Nitpick comments (2)
devices/Ds1621/packages.lock.json (1)

7-9: LGTM! Package updates follow a consistent strategy.

All dependency updates across the repository:

  1. Follow semantic versioning
  2. Maintain version consistency
  3. Avoid breaking changes by using only minor and patch updates

This systematic approach to dependency management helps maintain stability across the IoT device implementations.

Also applies to: 13-15, 19-21, 25-27, 31-33, 49-51

devices/AtModem/packages.lock.json (1)

Line range hint 1-108: Package update strategy is well-structured.

The updates follow good practices:

  1. Semantic versioning is respected across all packages
  2. Related packages are updated together (e.g., all UnitsNet packages)
  3. Version bounds are strict, ensuring reproducible builds

Consider setting up automated dependency update checks (if not already in place) to regularly validate these versions against the latest stable releases and security advisories.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 12faabc and ace17d6.

⛔ Files ignored due to path filters (216)
  • devices/A4988/A4988.nfproj is excluded by none and included by none
  • devices/A4988/A4988.nuspec is excluded by none and included by none
  • devices/A4988/packages.config is excluded by none and included by none
  • devices/A4988/samples/A4988.samples.nfproj is excluded by none and included by none
  • devices/A4988/samples/packages.config is excluded by none and included by none
  • devices/AD5328/AD5328.nfproj is excluded by none and included by none
  • devices/AD5328/AD5328.nuspec is excluded by none and included by none
  • devices/AD5328/packages.config is excluded by none and included by none
  • devices/AD5328/samples/AD5328.Samples.nfproj is excluded by none and included by none
  • devices/AD5328/samples/packages.config is excluded by none and included by none
  • devices/Ads1115/Ads1115.nfproj is excluded by none and included by none
  • devices/Ads1115/Ads1115.nuspec is excluded by none and included by none
  • devices/Ads1115/packages.config is excluded by none and included by none
  • devices/Ads1115/samples/Ads1115.Samples.nfproj is excluded by none and included by none
  • devices/Ads1115/samples/packages.config is excluded by none and included by none
  • devices/Adxl343/ADXL343.nfproj is excluded by none and included by none
  • devices/Adxl343/Adxl343.nuspec is excluded by none and included by none
  • devices/Adxl343/packages.config is excluded by none and included by none
  • devices/Adxl343/samples/Adxl343.Samples.nfproj is excluded by none and included by none
  • devices/Adxl343/samples/packages.config is excluded by none and included by none
  • devices/Adxl345/Adxl345.nfproj is excluded by none and included by none
  • devices/Adxl345/Adxl345.nuspec is excluded by none and included by none
  • devices/Adxl345/packages.config is excluded by none and included by none
  • devices/Adxl345/samples/Adxl345.Samples.nfproj is excluded by none and included by none
  • devices/Adxl345/samples/packages.config is excluded by none and included by none
  • devices/Adxl357/Adxl357.nfproj is excluded by none and included by none
  • devices/Adxl357/Adxl357.nuspec is excluded by none and included by none
  • devices/Adxl357/packages.config is excluded by none and included by none
  • devices/Adxl357/samples/Adxl357.Samples.nfproj is excluded by none and included by none
  • devices/Adxl357/samples/packages.config is excluded by none and included by none
  • devices/Ags01db/Ags01db.nfproj is excluded by none and included by none
  • devices/Ags01db/Ags01db.nuspec is excluded by none and included by none
  • devices/Ags01db/packages.config is excluded by none and included by none
  • devices/Ags01db/samples/Ags01db.Samples.nfproj is excluded by none and included by none
  • devices/Ags01db/samples/packages.config is excluded by none and included by none
  • devices/Ahtxx/Ahtxx.nfproj is excluded by none and included by none
  • devices/Ahtxx/Ahtxx.nuspec is excluded by none and included by none
  • devices/Ahtxx/packages.config is excluded by none and included by none
  • devices/Ahtxx/samples/Ahtxx.Samples.nfproj is excluded by none and included by none
  • devices/Ahtxx/samples/packages.config is excluded by none and included by none
  • devices/Ak8963/Ak8963.nfproj is excluded by none and included by none
  • devices/Ak8963/Ak8963.nuspec is excluded by none and included by none
  • devices/Ak8963/packages.config is excluded by none and included by none
  • devices/Ak8963/samples/ak8963.sample.nfproj is excluded by none and included by none
  • devices/Ak8963/samples/packages.config is excluded by none and included by none
  • devices/Am2320/Am2320.nfproj is excluded by none and included by none
  • devices/Am2320/Am2320.nuspec is excluded by none and included by none
  • devices/Am2320/packages.config is excluded by none and included by none
  • devices/Am2320/samples/Am2320.samples.nfproj is excluded by none and included by none
  • devices/Am2320/samples/packages.config is excluded by none and included by none
  • devices/Amg88xx/Amg88xx.nfproj is excluded by none and included by none
  • devices/Amg88xx/Amg88xx.nuspec is excluded by none and included by none
  • devices/Amg88xx/packages.config is excluded by none and included by none
  • devices/Amg88xx/samples/Amg88xx.Samples.nfproj is excluded by none and included by none
  • devices/Amg88xx/samples/packages.config is excluded by none and included by none
  • devices/Apa102/Apa102.nfproj is excluded by none and included by none
  • devices/Apa102/Apa102.nuspec is excluded by none and included by none
  • devices/Apa102/packages.config is excluded by none and included by none
  • devices/Apa102/samples/Apa102.Samples.nfproj is excluded by none and included by none
  • devices/Apa102/samples/packages.config is excluded by none and included by none
  • devices/At24cxx/At24cxx.nfproj is excluded by none and included by none
  • devices/At24cxx/At24cxx.nuspec is excluded by none and included by none
  • devices/At24cxx/packages.config is excluded by none and included by none
  • devices/At24cxx/samples/At24cxx.samples.nfproj is excluded by none and included by none
  • devices/At24cxx/samples/packages.config is excluded by none and included by none
  • devices/At24cxx/tests/NFUnitTest.nfproj is excluded by none and included by none
  • devices/At24cxx/tests/packages.config is excluded by none and included by none
  • devices/AtModem/AtModem.nfproj is excluded by none and included by none
  • devices/AtModem/AtModem.nuspec is excluded by none and included by none
  • devices/AtModem/packages.config is excluded by none and included by none
  • devices/AtModem/samples/AtModem.Sample.nfproj is excluded by none and included by none
  • devices/AtModem/samples/packages.config is excluded by none and included by none
  • devices/AtomQrCode/AtomQrCode.nfproj is excluded by none and included by none
  • devices/AtomQrCode/AtomQrCode.nuspec is excluded by none and included by none
  • devices/AtomQrCode/packages.config is excluded by none and included by none
  • devices/AtomQrCode/samples/AtomQrCode.ReadingWithEvent/AtomQrCode.ReadingWithEvent.nfproj is excluded by none and included by none
  • devices/AtomQrCode/samples/AtomQrCode.ReadingWithEvent/packages.config is excluded by none and included by none
  • devices/AtomQrCode/samples/AtomQrCode.Sample/AtomQrCode.ReadCode.nfproj is excluded by none and included by none
  • devices/AtomQrCode/samples/AtomQrCode.Sample/packages.config is excluded by none and included by none
  • devices/Axp192/Axp192.nfproj is excluded by none and included by none
  • devices/Axp192/Axp192.nuspec is excluded by none and included by none
  • devices/Axp192/packages.config is excluded by none and included by none
  • devices/Axp192/samples/Axp192.samples.nfproj is excluded by none and included by none
  • devices/Axp192/samples/packages.config is excluded by none and included by none
  • devices/Bh1745/Bh1745.nfproj is excluded by none and included by none
  • devices/Bh1745/Bh1745.nuspec is excluded by none and included by none
  • devices/Bh1745/packages.config is excluded by none and included by none
  • devices/Bh1745/samples/Bh1745.Sample/Bh1745.Sample.nfproj is excluded by none and included by none
  • devices/Bh1745/samples/Bh1745.Sample/packages.config is excluded by none and included by none
  • devices/Bh1745/samples/Bh1745CustomConfiguration.Sample/Bh1745CustomConfiguration.Sample.nfproj is excluded by none and included by none
  • devices/Bh1745/samples/Bh1745CustomConfiguration.Sample/packages.config is excluded by none and included by none
  • devices/Bh1750fvi/Bh1750fvi.nfproj is excluded by none and included by none
  • devices/Bh1750fvi/Bh1750fvi.nuspec is excluded by none and included by none
  • devices/Bh1750fvi/packages.config is excluded by none and included by none
  • devices/Bh1750fvi/samples/Bh1750fvi.Samples.nfproj is excluded by none and included by none
  • devices/Bh1750fvi/samples/packages.config is excluded by none and included by none
  • devices/Bmm150/Bmm150.nfproj is excluded by none and included by none
  • devices/Bmm150/Bmm150.nuspec is excluded by none and included by none
  • devices/Bmm150/Bmm150.tests/Bmm150.tests.nfproj is excluded by none and included by none
  • devices/Bmm150/Bmm150.tests/packages.config is excluded by none and included by none
  • devices/Bmm150/packages.config is excluded by none and included by none
  • devices/Bmm150/samples/Bmm150.sample.nfproj is excluded by none and included by none
  • devices/Bmm150/samples/packages.config is excluded by none and included by none
  • devices/Bmp180/Bmp180.nfproj is excluded by none and included by none
  • devices/Bmp180/Bmp180.nuspec is excluded by none and included by none
  • devices/Bmp180/packages.config is excluded by none and included by none
  • devices/Bmp180/samples/Bmp180.Sample.nfproj is excluded by none and included by none
  • devices/Bmp180/samples/packages.config is excluded by none and included by none
  • devices/Bmxx80/Bmxx80.nfproj is excluded by none and included by none
  • devices/Bmxx80/Bmxx80.nuspec is excluded by none and included by none
  • devices/Bmxx80/packages.config is excluded by none and included by none
  • devices/Bmxx80/samples/Bmxx80.sample.nfproj is excluded by none and included by none
  • devices/Bmxx80/samples/packages.config is excluded by none and included by none
  • devices/Bmxx80/tests/Bmxx80.Tests.nfproj is excluded by none and included by none
  • devices/Bmxx80/tests/packages.config is excluded by none and included by none
  • devices/Bno055/Bno055.nfproj is excluded by none and included by none
  • devices/Bno055/Bno055.nuspec is excluded by none and included by none
  • devices/Bno055/packages.config is excluded by none and included by none
  • devices/Bno055/samples/Bno055.sample.nfproj is excluded by none and included by none
  • devices/Bno055/samples/packages.config is excluded by none and included by none
  • devices/Bq2579x/Bq2579x.nfproj is excluded by none and included by none
  • devices/Bq2579x/Bq2579x.nuspec is excluded by none and included by none
  • devices/Bq2579x/packages.config is excluded by none and included by none
  • devices/Bq2579x/samples/Bq2579x.Samples.nfproj is excluded by none and included by none
  • devices/Bq2579x/samples/packages.config is excluded by none and included by none
  • devices/Button/Button.nfproj is excluded by none and included by none
  • devices/Button/Button.nuspec is excluded by none and included by none
  • devices/Button/Tests/Tests.nfproj is excluded by none and included by none
  • devices/Button/Tests/packages.config is excluded by none and included by none
  • devices/Button/packages.config is excluded by none and included by none
  • devices/Button/samples/Samples.nfproj is excluded by none and included by none
  • devices/Button/samples/packages.config is excluded by none and included by none
  • devices/Buzzer/Buzzer.nfproj is excluded by none and included by none
  • devices/Buzzer/Buzzer.nuspec is excluded by none and included by none
  • devices/Buzzer/packages.config is excluded by none and included by none
  • devices/Buzzer/samples/Buzzer.Samples.nfproj is excluded by none and included by none
  • devices/Buzzer/samples/packages.config is excluded by none and included by none
  • devices/Ccs811/Ccs811.nfproj is excluded by none and included by none
  • devices/Ccs811/Ccs811.nuspec is excluded by none and included by none
  • devices/Ccs811/packages.config is excluded by none and included by none
  • devices/Ccs811/samples/Ccs811.Sample.nfproj is excluded by none and included by none
  • devices/Ccs811/samples/packages.config is excluded by none and included by none
  • devices/Charlieplex/Charlieplex.nfproj is excluded by none and included by none
  • devices/Charlieplex/Charlieplex.nuspec is excluded by none and included by none
  • devices/Charlieplex/packages.config is excluded by none and included by none
  • devices/Charlieplex/samples/Charlieplex-sample.nfproj is excluded by none and included by none
  • devices/Charlieplex/samples/packages.config is excluded by none and included by none
  • devices/Charlieplex/tests/Charlieplex.Tests.nfproj is excluded by none and included by none
  • devices/Charlieplex/tests/packages.config is excluded by none and included by none
  • devices/Chsc6540/Chsc6540.nfproj is excluded by none and included by none
  • devices/Chsc6540/Chsc6540.nuspec is excluded by none and included by none
  • devices/Chsc6540/packages.config is excluded by none and included by none
  • devices/Chsc6540/samples/Chsc6540.Samples.nfproj is excluded by none and included by none
  • devices/Chsc6540/samples/packages.config is excluded by none and included by none
  • devices/DCMotor/DCMotor.nfproj is excluded by none and included by none
  • devices/DCMotor/DCMotor.nuspec is excluded by none and included by none
  • devices/DCMotor/packages.config is excluded by none and included by none
  • devices/DCMotor/samples/DCMotor.sample.nfproj is excluded by none and included by none
  • devices/DCMotor/samples/packages.config is excluded by none and included by none
  • devices/Dac63004/Dac63004.nfproj is excluded by none and included by none
  • devices/Dac63004/Dac63004.nuspec is excluded by none and included by none
  • devices/Dac63004/Samples/Dac63004.Samples.nfproj is excluded by none and included by none
  • devices/Dac63004/Samples/packages.config is excluded by none and included by none
  • devices/Dac63004/packages.config is excluded by none and included by none
  • devices/DhcpServer/DhcpServer.nfproj is excluded by none and included by none
  • devices/DhcpServer/DhcpServer.nuspec is excluded by none and included by none
  • devices/DhcpServer/packages.config is excluded by none and included by none
  • devices/DhcpServer/samples/DhcpServer.samples.nfproj is excluded by none and included by none
  • devices/DhcpServer/samples/packages.config is excluded by none and included by none
  • devices/Dhtxx.Esp32/Dhtxx.Esp32.nfproj is excluded by none and included by none
  • devices/Dhtxx.Esp32/Dhtxx.Esp32.nuspec is excluded by none and included by none
  • devices/Dhtxx.Esp32/packages.config is excluded by none and included by none
  • devices/Dhtxx.Esp32/samples/Dhtxx-Sample.nfproj is excluded by none and included by none
  • devices/Dhtxx.Esp32/samples/packages.config is excluded by none and included by none
  • devices/Dhtxx/Dhtxx.nfproj is excluded by none and included by none
  • devices/Dhtxx/Dhtxx.nuspec is excluded by none and included by none
  • devices/Dhtxx/packages.config is excluded by none and included by none
  • devices/Ds1302/Ds1302.nfproj is excluded by none and included by none
  • devices/Ds1302/Ds1302.nuspec is excluded by none and included by none
  • devices/Ds1302/packages.config is excluded by none and included by none
  • devices/Ds1302/samples/Ds1302.Samples.nfproj is excluded by none and included by none
  • devices/Ds1302/samples/packages.config is excluded by none and included by none
  • devices/Ds1621/Ds1621.nfproj is excluded by none and included by none
  • devices/Ds1621/Ds1621.nuspec is excluded by none and included by none
  • devices/Ds1621/packages.config is excluded by none and included by none
  • devices/Ds1621/samples/Ds1621.samples.nfproj is excluded by none and included by none
  • devices/Ds1621/samples/packages.config is excluded by none and included by none
  • devices/Ds1621/tests/NFUnitTest.nfproj is excluded by none and included by none
  • devices/Ds1621/tests/packages.config is excluded by none and included by none
  • devices/Ds18b20/Ds18b20.nfproj is excluded by none and included by none
  • devices/Ds18b20/Ds18b20.nuspec is excluded by none and included by none
  • devices/Ds18b20/packages.config is excluded by none and included by none
  • devices/Ds18b20/samples/Ds18b20.Samples.nfproj is excluded by none and included by none
  • devices/Ds18b20/samples/packages.config is excluded by none and included by none
  • devices/GnssDevice/GnssDevice.nfproj is excluded by none and included by none
  • devices/GnssDevice/GnssDevice.nuspec is excluded by none and included by none
  • devices/GnssDevice/Tests/GnssDeviceTests/GnssDevice.Tests.nfproj is excluded by none and included by none
  • devices/GnssDevice/Tests/GnssDeviceTests/packages.config is excluded by none and included by none
  • devices/GnssDevice/packages.config is excluded by none and included by none
  • devices/GnssDevice/samples/GnssDevice.Sample/GnssDevice.Sample.nfproj is excluded by none and included by none
  • devices/GnssDevice/samples/GnssDevice.Sample/packages.config is excluded by none and included by none
  • devices/Hcsr04.Esp32/Hcsr04.Esp32.nfproj is excluded by none and included by none
  • devices/Hcsr04.Esp32/Hcsr04.Esp32.nuspec is excluded by none and included by none
  • devices/Hcsr04.Esp32/packages.config is excluded by none and included by none
  • devices/Hcsr04.Esp32/samples/Hcsr04.Samples.nfproj is excluded by none and included by none
  • devices/Hcsr04.Esp32/samples/packages.config is excluded by none and included by none
  • devices/Hcsr04/Hcsr04.nfproj is excluded by none and included by none
  • devices/Hcsr04/Hcsr04.nuspec is excluded by none and included by none
  • devices/Hcsr04/packages.config is excluded by none and included by none
  • devices/Hcsr04/samples/Hcsr04.Samples.nfproj is excluded by none and included by none
  • devices/Hcsr04/samples/packages.config is excluded by none and included by none
  • devices/Hcsr501/Hcsr501.nfproj is excluded by none and included by none
  • devices/Hcsr501/Hcsr501.nuspec is excluded by none and included by none
  • devices/Hcsr501/packages.config is excluded by none and included by none
  • devices/Hcsr501/samples/Hcsr501.Samples.nfproj is excluded by none and included by none
  • devices/Hcsr501/samples/packages.config is excluded by none and included by none
📒 Files selected for processing (82)
  • devices/A4988/packages.lock.json (3 hunks)
  • devices/A4988/samples/packages.lock.json (2 hunks)
  • devices/AD5328/packages.lock.json (3 hunks)
  • devices/AD5328/samples/packages.lock.json (2 hunks)
  • devices/Ads1115/packages.lock.json (4 hunks)
  • devices/Ads1115/samples/packages.lock.json (3 hunks)
  • devices/Adxl343/packages.lock.json (3 hunks)
  • devices/Adxl343/samples/packages.lock.json (1 hunks)
  • devices/Adxl345/packages.lock.json (2 hunks)
  • devices/Adxl345/samples/packages.lock.json (2 hunks)
  • devices/Adxl357/packages.lock.json (3 hunks)
  • devices/Adxl357/samples/packages.lock.json (2 hunks)
  • devices/Ags01db/packages.lock.json (3 hunks)
  • devices/Ags01db/samples/packages.lock.json (3 hunks)
  • devices/Ahtxx/packages.lock.json (3 hunks)
  • devices/Ahtxx/samples/packages.lock.json (3 hunks)
  • devices/Ak8963/packages.lock.json (3 hunks)
  • devices/Ak8963/samples/packages.lock.json (2 hunks)
  • devices/Am2320/packages.lock.json (2 hunks)
  • devices/Am2320/samples/packages.lock.json (1 hunks)
  • devices/Amg88xx/packages.lock.json (3 hunks)
  • devices/Amg88xx/samples/packages.lock.json (2 hunks)
  • devices/Apa102/packages.lock.json (3 hunks)
  • devices/Apa102/samples/packages.lock.json (2 hunks)
  • devices/At24cxx/packages.lock.json (1 hunks)
  • devices/At24cxx/samples/packages.lock.json (1 hunks)
  • devices/AtModem/packages.lock.json (3 hunks)
  • devices/AtomQrCode/packages.lock.json (1 hunks)
  • devices/AtomQrCode/samples/AtomQrCode.ReadingWithEvent/packages.lock.json (1 hunks)
  • devices/AtomQrCode/samples/AtomQrCode.Sample/packages.lock.json (1 hunks)
  • devices/Axp192/packages.lock.json (3 hunks)
  • devices/Axp192/samples/packages.lock.json (2 hunks)
  • devices/Bh1745/packages.lock.json (3 hunks)
  • devices/Bh1745/samples/Bh1745.Sample/packages.lock.json (2 hunks)
  • devices/Bh1745/samples/Bh1745CustomConfiguration.Sample/packages.lock.json (2 hunks)
  • devices/Bh1750fvi/packages.lock.json (2 hunks)
  • devices/Bh1750fvi/samples/packages.lock.json (1 hunks)
  • devices/Bmm150/Bmm150.tests/packages.lock.json (1 hunks)
  • devices/Bmm150/packages.lock.json (1 hunks)
  • devices/Bmm150/samples/packages.lock.json (2 hunks)
  • devices/Bmp180/packages.lock.json (2 hunks)
  • devices/Bmp180/samples/packages.lock.json (1 hunks)
  • devices/Bmxx80/packages.lock.json (2 hunks)
  • devices/Bmxx80/samples/packages.lock.json (1 hunks)
  • devices/Bmxx80/tests/packages.lock.json (1 hunks)
  • devices/Bno055/packages.lock.json (3 hunks)
  • devices/Bno055/samples/packages.lock.json (2 hunks)
  • devices/Bq2579x/packages.lock.json (2 hunks)
  • devices/Bq2579x/samples/packages.lock.json (1 hunks)
  • devices/Button/Tests/packages.lock.json (1 hunks)
  • devices/Button/packages.lock.json (1 hunks)
  • devices/Button/samples/packages.lock.json (1 hunks)
  • devices/Buzzer/packages.lock.json (2 hunks)
  • devices/Buzzer/samples/packages.lock.json (1 hunks)
  • devices/Ccs811/packages.lock.json (2 hunks)
  • devices/Ccs811/samples/packages.lock.json (1 hunks)
  • devices/Charlieplex/packages.lock.json (1 hunks)
  • devices/Charlieplex/samples/packages.lock.json (1 hunks)
  • devices/Charlieplex/tests/packages.lock.json (1 hunks)
  • devices/Chsc6540/packages.lock.json (1 hunks)
  • devices/Chsc6540/samples/packages.lock.json (1 hunks)
  • devices/DCMotor/packages.lock.json (1 hunks)
  • devices/DCMotor/samples/packages.lock.json (1 hunks)
  • devices/Dac63004/Samples/packages.lock.json (1 hunks)
  • devices/Dac63004/packages.lock.json (2 hunks)
  • devices/DhcpServer/packages.lock.json (1 hunks)
  • devices/DhcpServer/samples/packages.lock.json (1 hunks)
  • devices/Dhtxx.Esp32/packages.lock.json (2 hunks)
  • devices/Dhtxx.Esp32/samples/packages.lock.json (1 hunks)
  • devices/Dhtxx/packages.lock.json (2 hunks)
  • devices/Ds1302/packages.lock.json (1 hunks)
  • devices/Ds1302/samples/packages.lock.json (1 hunks)
  • devices/Ds1621/packages.lock.json (2 hunks)
  • devices/Ds1621/samples/packages.lock.json (1 hunks)
  • devices/Ds1621/tests/packages.lock.json (1 hunks)
  • devices/Ds18b20/packages.lock.json (2 hunks)
  • devices/Ds18b20/samples/packages.lock.json (1 hunks)
  • devices/GnssDevice/packages.lock.json (2 hunks)
  • devices/Hcsr04.Esp32/packages.lock.json (2 hunks)
  • devices/Hcsr04.Esp32/samples/packages.lock.json (1 hunks)
  • devices/Hcsr04/packages.lock.json (2 hunks)
  • devices/Hcsr04/samples/packages.lock.json (1 hunks)
⛔ Files not processed due to max files limit (2)
  • devices/Hcsr501/packages.lock.json
  • devices/Hcsr501/samples/packages.lock.json
🔇 Additional comments (91)
devices/Adxl345/samples/packages.lock.json (4)

7-9: LGTM! Verify CoreLibrary compatibility.

The CoreLibrary update to 1.16.1 matches the PR objectives. Since this is a core dependency, ensure there are no breaking changes that could affect the Adxl345 device implementation.


13-15: LGTM! Runtime.Events version is consistent.

The Runtime.Events update to 1.11.26 aligns with the PR objectives.


37-39: LGTM! Verify SPI functionality.

The System.Device.Spi update to 1.3.70 is consistent with PR objectives. Since Adxl345 relies on SPI communication, ensure the device's SPI functionality remains intact with this update.


43-45: LGTM! System.Math version is consistent.

The System.Math update to 1.5.86 aligns with the PR objectives.

devices/Apa102/samples/packages.lock.json (4)

7-9: Verify compatibility with CoreLibrary update.

The update to CoreLibrary 1.16.1 might introduce breaking changes. Please ensure compatibility with dependent packages.

Run the following script to check for potential breaking changes:

✅ Verification successful

CoreLibrary 1.16.1 update is safe to proceed

The update contains only enhancements and bug fixes, with no breaking changes identified in the release notes. The changes focus on improving datetime handling, attribute management, and adding new features like ExcludeFromStubs attribute.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for breaking changes in CoreLibrary 1.16.1

# Fetch release notes and changelog
gh api repos/nanoframework/CoreLibrary/releases/tags/v1.16.1 --jq .body

Length of output: 1053


31-33: Verify compatibility with System.Device.Spi update.

The update to System.Device.Spi 1.3.70 might introduce breaking changes. Please ensure compatibility with dependent packages.

Run the following script to check for potential breaking changes:

✅ Verification successful

System.Device.Spi 1.3.70 update appears safe

The update consists only of routine dependency maintenance changes with no breaking changes introduced between versions 1.3.52 and 1.3.70.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for breaking changes in System.Device.Spi 1.3.70

# Fetch release notes and changelog
gh api repos/nanoframework/System.Device.Spi/releases/tags/v1.3.70 --jq .body

Length of output: 1033


13-15: Verify compatibility with Graphics.Core update.

The update to Graphics.Core 1.2.33 might introduce breaking changes. Please ensure compatibility with dependent packages.

Run the following script to check for potential breaking changes:

✅ Verification successful

Graphics.Core 1.2.33 update verified as safe

The update contains only routine maintenance changes (dependency updates, documentation, and CI improvements) with no breaking changes or API modifications.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for breaking changes in Graphics.Core 1.2.33

# Fetch release notes and changelog
gh api repos/nanoframework/nanoFramework.Graphics/releases/tags/v1.2.33 --jq .body

Length of output: 1706


Script:

#!/bin/bash
# Description: Check commits for breaking changes

# Fetch the comparison between v1.2.22 and v1.2.33
gh api repos/nanoframework/nanoFramework.Graphics/compare/v1.2.22...v1.2.33 --jq '.commits[].commit.message'

Length of output: 680


19-21: Verify compatibility with Runtime.Events update.

The update to Runtime.Events 1.11.26 might introduce breaking changes. Please ensure compatibility with dependent packages.

Run the following script to check for potential breaking changes:

✅ Verification successful

Runtime.Events 1.11.26 update is safe to use

The update from v1.11.18 to v1.11.26 contains only dependency updates and build infrastructure changes, with no implementation modifications that could introduce breaking changes.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for breaking changes in Runtime.Events 1.11.26

# Fetch release notes and changelog
gh api repos/nanoframework/nanoFramework.Runtime.Events/releases/tags/v1.11.26 --jq .body

Length of output: 586


Script:

#!/bin/bash
# Check actual code changes between v1.11.18 and v1.11.26
gh api repos/nanoframework/nanoFramework.Runtime.Events/compare/v1.11.18...v1.11.26 --jq '.files[].filename'

Length of output: 552

devices/Ccs811/packages.lock.json (1)

Line range hint 7-93: LGTM! Systematic version updates look consistent.

The package version updates follow a consistent pattern and maintain compatibility between interdependent packages.

Let's verify the compatibility between these package versions by checking the package metadata:

devices/Ds1621/samples/packages.lock.json (1)

7-45: LGTM! Verify compatibility with target framework.

The dependency updates align with the PR objectives and follow proper versioning practices. All packages are pinned to specific versions which is good for reproducibility.

Run the following script to verify compatibility:

✅ Verification successful

Dependencies verified and compatible with nanoFramework v1.0

All package versions are available in the official NuGet feed and are compatible with the target framework version. The automated update by nfbot ensures version compatibility.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify compatibility of package versions with target framework version.

# Check target framework version
echo "Target framework version:"
rg -l "\.NETnanoFramework,Version=v" | xargs cat | grep "\.NETnanoFramework,Version=v"

# Check if these package versions exist in NuGet feed
packages=(
  "nanoFramework.CoreLibrary/1.16.1"
  "nanoFramework.Hardware.Esp32/1.6.28"
  "nanoFramework.Runtime.Events/1.11.26"
  "nanoFramework.Runtime.Native/1.7.7"
  "nanoFramework.System.Device.Gpio/1.1.52"
  "nanoFramework.System.Device.I2c/1.1.25"
  "UnitsNet.nanoFramework.Temperature/5.67.0"
)

for package in "${packages[@]}"; do
  echo "Checking $package..."
  curl -s "https://api.nuget.org/v3-flatcontainer/${package%%/*}/index.json" | jq ".versions | contains([\"${package#*/}\"])"
done

Length of output: 13439


Script:

#!/bin/bash
# Description: Verify package existence using NuGet v3 API
# Using registration API instead of flat container

packages=(
  "nanoFramework.CoreLibrary/1.16.1"
  "nanoFramework.Hardware.Esp32/1.6.28"
  "nanoFramework.Runtime.Events/1.11.26"
  "nanoFramework.Runtime.Native/1.7.7"
  "nanoFramework.System.Device.Gpio/1.1.52"
  "nanoFramework.System.Device.I2c/1.1.25"
  "UnitsNet.nanoFramework.Temperature/5.67.0"
)

for package in "${packages[@]}"; do
  name="${package%%/*}"
  version="${package#*/}"
  echo "Checking $name@$version..."
  
  # Using registration API with proper headers
  status=$(curl -s -o /dev/null -w "%{http_code}" \
    -H "Accept: application/json" \
    "https://api.nuget.org/v3/registration5-gz-semver2/${name,,}/${version}.json")
  
  if [ "$status" = "200" ]; then
    echo "✓ Package exists"
  else
    echo "✗ Package not found (HTTP $status)"
  fi
done

Length of output: 3345

devices/Bmp180/samples/packages.lock.json (3)

43-45: LGTM! Consistent versioning across UnitsNet packages.

All UnitsNet packages are consistently updated to version 5.67.0, which is a good practice to maintain compatibility between measurement units.

Also applies to: 49-51, 55-57, 61-63


13-15: LGTM! Consistent versioning across utility packages.

The utility packages (WeatherHelper, BinaryPrimitives, Device.Model) are consistently updated to version 1.2.751.

Also applies to: 19-21, 31-33


7-9: Verify compatibility with core nanoFramework packages.

The updates to core packages (CoreLibrary, System.Device.I2c, System.Math) might introduce breaking changes. Please ensure that:

  1. The Bmp180 device implementation is compatible with CoreLibrary 1.16.1
  2. The I2C communication still works with System.Device.I2c 1.1.25
  3. Any mathematical calculations remain accurate with System.Math 1.5.86

Also applies to: 25-27, 37-39

✅ Verification successful

Package updates are safe to proceed

The implementation uses only basic, stable features from the core packages:

  • Simple I2C read/write operations
  • Basic arithmetic calculations
  • Standard system types and interfaces

No version-specific features or complex dependencies that could break with these updates were found in the codebase.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for breaking changes in core packages

# Search for any TODO, HACK, or FIXME comments that might indicate compatibility issues
echo "Searching for compatibility markers in Bmp180 implementation..."
rg -i "todo|hack|fixme" devices/Bmp180/

# Look for any error handling related to I2C communication
echo "Checking I2C error handling..."
ast-grep --pattern 'catch ($error) { $$$' devices/Bmp180/

Length of output: 309


Script:

#!/bin/bash
# Search for I2C and Math usage patterns in Bmp180 implementation

# Check I2C device implementation
echo "Checking I2C implementation patterns..."
ast-grep --pattern 'I2cDevice' devices/Bmp180/

# Look for math operations
echo "Checking math operations..."
rg -l "Math\." devices/Bmp180/

# Check CoreLibrary usage
echo "Checking core library usage..."
rg -l "using System;" devices/Bmp180/

Length of output: 476


Script:

#!/bin/bash
# Check implementation details

# Display the main implementation file
echo "Checking Bmp180 implementation..."
cat devices/Bmp180/Bmp180.cs

# Display the sample usage
echo -e "\nChecking sample usage..."
cat devices/Bmp180/samples/Program.cs

Length of output: 11464

devices/Ds18b20/samples/packages.lock.json (1)

7-33: Verify compatibility of dependency updates with hardware.

The package updates appear to be minor version increments, but since this involves hardware communication libraries (OneWire, ESP32), please ensure:

  1. The sample code still works on actual DS18B20 temperature sensors
  2. Temperature readings are accurate with the updated UnitsNet package
  3. No regression in OneWire communication reliability

Run the following script to check for any breaking changes in the release notes:

devices/At24cxx/packages.lock.json (1)

7-9: LGTM! Version updates look consistent.

The version updates for both dependencies are properly locked and match the versions being updated across other files in this PR:

  • nanoFramework.CoreLibrary: 1.16.1
  • nanoFramework.System.Device.I2c: 1.1.25

Also applies to: 13-15

devices/Chsc6540/packages.lock.json (1)

7-9: LGTM! Version updates look consistent.

The version updates for all dependencies are properly locked and match the versions being updated across other files in this PR:

  • nanoFramework.CoreLibrary: 1.16.1
  • nanoFramework.Graphics.Core: 1.2.33
  • nanoFramework.System.Device.I2c: 1.1.25

Also applies to: 13-15, 19-21

devices/Bmm150/Bmm150.tests/packages.lock.json (1)

7-9: LGTM! Test dependency versions are properly updated.

The version updates for test dependencies are properly locked and consistent:

  • nanoFramework.CoreLibrary: 1.16.1
  • nanoFramework.System.Math: 1.5.86
  • nanoFramework.System.Numerics: 1.2.751
  • nanoFramework.TestFramework: 3.0.57

Also applies to: 13-15, 19-21, 25-27

devices/Hcsr04.Esp32/samples/packages.lock.json (1)

7-9: LGTM! Sample project dependency versions are properly updated.

The version updates for sample project dependencies are properly locked and consistent:

  • nanoFramework.CoreLibrary: 1.16.1
  • nanoFramework.Runtime.Events: 1.11.26
  • nanoFramework.System.Device.Model: 1.2.751
  • UnitsNet.nanoFramework.Length: 5.67.0

Also applies to: 13-15, 19-21, 25-27

devices/Button/packages.lock.json (1)

7-9: LGTM! Version updates look consistent.

The version updates for both dependencies are properly locked and match the versions being updated across other files in this PR:

  • nanoFramework.CoreLibrary: 1.16.1
  • nanoFramework.Runtime.Events: 1.11.26

Also applies to: 13-15

devices/Ds18b20/packages.lock.json (1)

Line range hint 7-33: LGTM! The dependency updates look well-structured.

The updates follow good practices:

  • Exact version pinning for reproducible builds
  • Consistent versions across different device packages
  • Minor/patch version updates suggesting low risk of breaking changes

Since this is a significant update across multiple dependencies, please verify:

✅ Verification successful

✅ Dependencies update verified as safe

The CoreLibrary v1.16.1 release notes show only improvements and bug fixes. All other updates are minor or patch version changes following semantic versioning, suggesting no breaking changes. The exact version pinning ensures build reproducibility.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for any breaking changes in the changelog/release notes of updated packages
gh api graphql -f query='
{
  repository(owner: "nanoframework", name: "CoreLibrary") {
    release(tagName: "v1.16.1") {
      description
    }
  }
}
'

# Look for any existing issues related to these versions
gh issue list --repo nanoframework/CoreLibrary --search "1.16.1 in:title,body"

Length of output: 1356


Script:

#!/bin/bash
# Check release notes for other critical packages
gh api graphql -f query='
{
  deviceOneWire: repository(owner: "nanoframework", name: "Windows.Devices.OneWire") {
    release(tagName: "v1.4.31") {
      description
    }
  }
  deviceModel: repository(owner: "nanoframework", name: "System.Device.Model") {
    release(tagName: "v1.2.751") {
      description
    }
  }
}
'

Length of output: 925

devices/A4988/samples/packages.lock.json (1)

Line range hint 7-33: Dependencies are aligned with the core updates.

The updates to System.Math and UnitsNet.nanoFramework.Angle are in sync with the CoreLibrary update, maintaining compatibility.

devices/DCMotor/packages.lock.json (1)

7-27: Device-specific dependencies are properly updated.

The PWM and GPIO dependencies are updated in line with the core libraries, ensuring compatibility for motor control functionality.

devices/At24cxx/samples/packages.lock.json (1)

7-33: I2C and hardware dependencies are consistently updated.

The updates to Hardware.Esp32 and System.Device.I2c maintain compatibility with the core updates.

devices/Dac63004/Samples/packages.lock.json (1)

7-33: Measurement units packages are systematically updated.

All UnitsNet packages are consistently updated to version 5.67.0, maintaining compatibility across different measurement types.

Since this device handles electrical measurements, let's verify the updates:

✅ Verification successful

UnitsNet packages are correctly updated to version 5.67.0

The Dac63004 device's packages (ElectricCurrent, ElectricPotentialDc, Temperature) are all consistently updated to version 5.67.0, aligning with the majority of the codebase. While a few specific device implementations use different versions, this doesn't affect the Dac63004 device's functionality.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for any reported issues with the new UnitsNet versions
gh api graphql -f query='
{
  search(query: "repo:angularsen/UnitsNet is:issue 5.67.0", type: ISSUE, first: 10) {
    nodes {
      ... on Issue {
        title
        state
      }
    }
  }
}
'

Length of output: 231


Script:

#!/bin/bash
# Find all packages.lock.json files and check UnitsNet package versions
fd packages.lock.json --exec sh -c 'echo "=== {} ==="; cat {} | grep -A 3 "UnitsNet.nanoFramework"'

Length of output: 50703

devices/Bq2579x/samples/packages.lock.json (1)

7-33: LGTM! Package versions are consistent with the PR objectives.

The package updates are consistent with the automated dependency update pattern seen across the repository:

  • nanoFramework.CoreLibrary: 1.16.1
  • nanoFramework.System.Device.I2c: 1.1.25
  • UnitsNet packages: 5.67.0
devices/Bh1750fvi/samples/packages.lock.json (1)

7-33: LGTM! Package versions are consistent with the PR objectives.

The package updates follow the same pattern as other files:

  • nanoFramework.CoreLibrary: 1.16.1
  • nanoFramework.System.Device.I2c: 1.1.25
  • UnitsNet packages: 5.67.0
devices/Hcsr04.Esp32/packages.lock.json (1)

Line range hint 7-39: LGTM! Package versions are consistent with the PR objectives.

The package updates maintain consistency with other files:

  • nanoFramework.CoreLibrary: 1.16.1
  • nanoFramework.Hardware.Esp32.Rmt: 2.0.21
  • nanoFramework.Runtime.Events: 1.11.26
  • UnitsNet packages: 5.67.0
devices/AD5328/samples/packages.lock.json (1)

Line range hint 7-39: Verify version compatibility of System.Buffers.Binary.BinaryPrimitives.

While most package updates are consistent, there's a potential version mismatch:

  • System.Buffers.Binary.BinaryPrimitives remains at 1.2.699 while other files show 1.2.751
devices/Dhtxx.Esp32/samples/packages.lock.json (1)

7-39: LGTM! Package versions are consistent with the PR objectives.

The package updates maintain consistency with other files:

  • nanoFramework.CoreLibrary: 1.16.1
  • nanoFramework.Runtime.Events: 1.11.26
  • nanoFramework.System.Device.I2c: 1.1.25
  • UnitsNet packages: 5.67.0
devices/Adxl357/samples/packages.lock.json (1)

7-9: Verify compatibility with the updated dependencies.

The significant version jumps, particularly for System.Math (1.5.43 -> 1.5.86), warrant verification of backward compatibility and proper functionality.

Run the following script to check for any breaking changes in the changelog:

Also applies to: 13-15, 31-33, 37-39

✅ Verification successful

Dependencies update verified - no compatibility issues found

The version updates are safe to proceed with:

  • CoreLibrary (1.16.1): Contains only improvements and bug fixes
  • System.Math (1.5.86): Contains only dependency updates with no API changes
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for breaking changes in the changelog of updated packages

# Check CoreLibrary changelog
gh api repos/nanoframework/CoreLibrary/releases/tags/v1.16.1 --jq .body

# Check System.Math changelog
gh api repos/nanoframework/lib-nanoFramework.System.Math/releases/tags/v1.5.86 --jq .body

Length of output: 3233

devices/Bh1750fvi/packages.lock.json (1)

7-9: LGTM! Version updates are consistent.

The dependency updates align with the changes across other files and follow a consistent pattern.

Also applies to: 13-15, 19-21, 25-27, 43-45

devices/Ahtxx/samples/packages.lock.json (1)

37-39: Verify measurement calculations with updated UnitsNet packages.

The update to UnitsNet packages (5.66.0 -> 5.67.0) might affect temperature and humidity calculations.

Run the following script to check for any changes in measurement calculations:

Also applies to: 43-45

devices/Ds1621/tests/packages.lock.json (1)

37-39: Verify test compatibility with updated test framework.

The update to TestFramework (3.0.57) might require adjustments to existing tests.

Run the following script to check for breaking changes in the test framework:

✅ Verification successful

Test framework update is safe ✓

The update from TestFramework v3.0.56 to v3.0.57 only includes dependency updates with no breaking changes. No test modifications are required.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for breaking changes in test framework

# Find all test files
fd -e cs -t f "test" -x rg -l "using.*TestFramework"

# Check TestFramework changelog
gh api repos/nanoframework/nanoFramework.TestFramework/releases/tags/v3.0.57 --jq .body

Length of output: 3336

devices/DCMotor/samples/packages.lock.json (1)

31-33: Verify PWM functionality with updated System.Device.Pwm.

The significant update to System.Device.Pwm (1.1.10 -> 1.1.19) might affect motor control behavior.

Run the following script to check for changes in PWM functionality:

✅ Verification successful

System.Device.Pwm update is safe - contains only dependency updates

The update from v1.1.10 to v1.1.19 consists solely of dependency updates without any functional changes to the PWM implementation. Motor control behavior will not be affected.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for changes in PWM functionality

# Find PWM usage in motor control code
rg -A 5 "using.*System\.Device\.Pwm"

# Check PWM changelog
gh api repos/nanoframework/System.Device.Pwm/releases/tags/v1.1.19 --jq .body

Length of output: 5645

devices/Amg88xx/samples/packages.lock.json (1)

Line range hint 7-45: LGTM! Package updates look consistent.

The dependency updates follow semantic versioning and maintain version consistency across the project. The updates include:

  • nanoFramework.CoreLibrary: 1.15.5 -> 1.16.1
  • nanoFramework.Graphics.Core: 1.2.22 -> 1.2.33
  • nanoFramework.Runtime.Events: 1.11.18 -> 1.11.26
  • And others

Let's verify the version compatibility:

✅ Verification successful

Package updates verified - version consistency maintained

The dependency updates follow semantic versioning and maintain version consistency across the project. The update from Runtime.Events 1.11.18 to 1.11.26 is a safe patch version increment, aligned with the CoreLibrary update pattern.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for any version conflicts or inconsistencies across the project

# Search for any inconsistent versions of CoreLibrary
echo "Checking CoreLibrary versions..."
rg '"nanoFramework.CoreLibrary"' -A 3

# Search for any inconsistent versions of Runtime.Events
echo "Checking Runtime.Events versions..."
rg '"nanoFramework.Runtime.Events"' -A 3

Length of output: 66261


Script:

#!/bin/bash
# Check Runtime.Events versions specifically
echo "Checking Runtime.Events versions..."
rg '"nanoFramework.Runtime.Events"' -A 2 packages.config packages.lock.json

Length of output: 273


Script:

#!/bin/bash
# Search recursively for Runtime.Events versions in all package files
echo "Checking Runtime.Events versions in lock files..."
find . -name "packages.lock.json" -exec rg -A 3 '"nanoFramework.Runtime.Events"' {} \;

echo -e "\nChecking Runtime.Events versions in config files..."
find . -name "packages.config" -exec rg -A 1 'nanoFramework.Runtime.Events' {} \;

Length of output: 60593

devices/Hcsr04/samples/packages.lock.json (1)

7-45: LGTM! Package updates maintain consistency.

The dependency updates align with the changes in other files and follow semantic versioning. Notable updates include:

  • nanoFramework.CoreLibrary: 1.15.5 -> 1.16.1
  • nanoFramework.Runtime.Native: 1.7.1 -> 1.7.7
  • nanoFramework.System.Device.Model: 1.2.693 -> 1.2.751
devices/Bh1745/samples/Bh1745CustomConfiguration.Sample/packages.lock.json (1)

Line range hint 7-45: LGTM! Package updates are consistent with other files.

The dependency updates maintain version consistency with other projects and follow semantic versioning. Key updates include:

  • nanoFramework.CoreLibrary: 1.15.5 -> 1.16.1
  • nanoFramework.Graphics.Core: 1.2.22 -> 1.2.33
  • nanoFramework.System.Device.I2c: 1.1.16 -> 1.1.25
devices/Bh1745/samples/Bh1745.Sample/packages.lock.json (1)

Line range hint 7-45: LGTM! Package updates match other configuration files.

The dependency updates are identical to those in Bh1745CustomConfiguration.Sample, maintaining consistency across related projects:

  • nanoFramework.CoreLibrary: 1.15.5 -> 1.16.1
  • nanoFramework.Graphics.Core: 1.2.22 -> 1.2.33
  • nanoFramework.System.Device.I2c: 1.1.16 -> 1.1.25
devices/Charlieplex/samples/packages.lock.json (1)

7-45: LGTM! Package updates align with project requirements.

The dependency updates follow the same pattern as other files, maintaining version consistency across the project:

  • nanoFramework.CoreLibrary: 1.15.5 -> 1.16.1
  • nanoFramework.Runtime.Events: 1.11.18 -> 1.11.26
  • nanoFramework.System.Threading: 1.1.32 -> 1.1.45
devices/Am2320/samples/packages.lock.json (1)

7-9: LGTM! Package updates follow semantic versioning.

All dependency updates are either minor version or patch updates, maintaining backward compatibility.

Also applies to: 13-15, 19-21, 31-33, 37-39, 43-45

devices/Apa102/packages.lock.json (1)

7-9: LGTM! Package versions are consistent.

The dependency updates maintain version consistency with other device packages and follow semantic versioning.

Also applies to: 13-15, 19-21, 31-33, 49-51

devices/DhcpServer/packages.lock.json (1)

7-9: LGTM! Package versions maintain consistency.

All dependency updates follow semantic versioning and maintain version consistency with other device packages.

Also applies to: 13-15, 19-21, 25-27, 31-33, 37-39

devices/Ak8963/packages.lock.json (1)

7-9: LGTM! Package versions are synchronized.

The dependency updates maintain version consistency across the repository and follow semantic versioning.

Also applies to: 19-21, 31-33

devices/Bmm150/packages.lock.json (1)

7-9: LGTM! Dependencies updated systematically.

The dependency updates look good and follow a consistent pattern across all files:

  • Core libraries have been updated to their latest versions
  • All version constraints are properly specified

Let's verify the compatibility of these versions:

Also applies to: 13-15, 19-21, 31-33, 37-39

✅ Verification successful

✅ Dependencies verified - versions are compatible and secure

  • Both packages exist in NuGet registry
  • System.Device.I2c v1.1.25 correctly depends on CoreLibrary v1.16.1
  • No security vulnerabilities found
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the compatibility of the updated package versions

# Check if these versions exist in NuGet
echo "Checking NuGet for package versions..."
curl -s "https://api.nuget.org/v3-flatcontainer/nanoframework.corelibrary/1.16.1/nanoframework.corelibrary.nuspec"
curl -s "https://api.nuget.org/v3-flatcontainer/nanoframework.system.device.i2c/1.1.25/nanoframework.system.device.i2c.nuspec"

# Check for any known issues or breaking changes
echo "Checking for known issues..."
gh api graphql -f query='
{
  securityVulnerabilities(first: 5, ecosystem: NUGET, package: "nanoFramework.CoreLibrary") {
    nodes {
      advisory {
        summary
        severity
        publishedAt
      }
      vulnerableVersionRange
      firstPatchedVersion {
        identifier
      }
    }
  }
}'

Length of output: 3285

devices/Dac63004/packages.lock.json (1)

7-9: LGTM! UnitsNet packages updated consistently.

The UnitsNet package updates from 5.66.0 to 5.67.0 are consistent across all files.

Also applies to: 13-15, 19-21, 37-39, 43-45, 49-51

devices/Bq2579x/packages.lock.json (1)

7-9: LGTM! Package updates match the pattern.

The updates follow the same pattern as other files, maintaining consistency across the codebase.

Also applies to: 13-15, 19-21, 37-39, 43-45, 49-51

devices/Ak8963/samples/packages.lock.json (1)

7-9: LGTM! Sample project dependencies aligned.

The sample project's dependencies have been properly aligned with the main project.

Also applies to: 13-15, 31-33, 37-39, 43-45

devices/Ags01db/samples/packages.lock.json (1)

7-9: LGTM! Dependencies updated systematically.

All dependencies have been updated to their latest versions while maintaining consistency across the codebase.

Also applies to: 13-15, 31-33, 43-45, 49-51

devices/Axp192/samples/packages.lock.json (1)

7-9: Verify compatibility with the updated nanoFramework packages.

The updates to core nanoFramework packages should be tested to ensure compatibility:

  • CoreLibrary: 1.15.5 → 1.16.1
  • Runtime.Events: 1.11.18 → 1.11.26
  • System.Device.I2c: 1.1.16 → 1.1.25
  • UnitsNet packages: 5.66.0 → 5.67.0

Run the following script to check for any breaking changes in the release notes:

Also applies to: 13-15, 31-33, 37-39, 43-45, 49-51, 55-57

✅ Verification successful

Package updates verified as compatible

The release notes for all updated packages show no breaking changes:

  • CoreLibrary v1.16.1: Contains enhancements and bug fixes
  • Runtime.Events v1.11.26: Only dependency updates
  • System.Device.I2c v1.1.25: Only dependency updates
  • UnitsNet v5.67.0: Minor version update following semantic versioning
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check release notes for breaking changes in the updated packages.

# Function to fetch release notes
fetch_release_notes() {
  local package=$1
  local version=$2
  echo "Checking $package v$version"
  gh api graphql -f query='
  {
    repository(owner: "nanoframework", name: "'$package'") {
      release(tagName: "v'$version'") {
        description
      }
    }
  }' | jq -r '.data.repository.release.description'
}

# Check core packages
fetch_release_notes "CoreLibrary" "1.16.1"
fetch_release_notes "nf-Runtime.Events" "1.11.26"
fetch_release_notes "nf-System.Device.I2c" "1.1.25"

# Check UnitsNet packages
curl -s "https://api.nuget.org/v3/registration5-gz-semver2/unitsnet.nanoframework.electriccurrent/index.json" | jq -r '.items[0].items[] | select(.catalogEntry.version=="5.67.0") | .catalogEntry.releaseNotes'

Length of output: 2632


Script:

#!/bin/bash
# Description: Check release notes with corrected repository names

# Function to fetch release notes
fetch_release_notes() {
  local repo=$1
  local version=$2
  echo "Checking $repo v$version"
  gh api graphql -f query='
  {
    repository(owner: "nanoframework", name: "'$repo'") {
      release(tagName: "v'$version'") {
        description
      }
    }
  }' | jq -r '.data.repository.release.description'
}

# Check core packages with correct repository names
fetch_release_notes "lib-nanoFramework.Runtime.Events" "1.11.26"
fetch_release_notes "lib-System.Device.I2c" "1.1.25"

# Check UnitsNet packages using different API endpoint
echo "Checking UnitsNet v5.67.0"
curl -s "https://api.nuget.org/v3/registration5-gz-semver2/unitsnet/5.67.0.json" | jq -r '.catalogEntry.releaseNotes'

Length of output: 2105

devices/Bno055/samples/packages.lock.json (1)

7-9: Verify compatibility with the updated System packages.

Additional System packages have been updated:

  • System.Buffers.Binary.BinaryPrimitives: 1.2.699 → 1.2.751
  • System.Device.Model: 1.2.693 → 1.2.751
  • System.Numerics: 1.2.693 → 1.2.751

Run the following script to check for any breaking changes in the System packages:

Also applies to: 13-15, 19-21, 31-33, 37-39, 43-45, 49-51, 55-57

✅ Verification successful

✓ Package updates appear safe based on semantic versioning

The updates only involve patch version increments (1.2.x → 1.2.751) which, according to semantic versioning principles, indicate backward-compatible bug fixes without breaking changes.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check release notes for breaking changes in the updated System packages.

# Function to fetch release notes
fetch_release_notes() {
  local package=$1
  local version=$2
  echo "Checking $package v$version"
  gh api graphql -f query='
  {
    repository(owner: "nanoframework", name: "'$package'") {
      release(tagName: "v'$version'") {
        description
      }
    }
  }' | jq -r '.data.repository.release.description'
}

# Check System packages
fetch_release_notes "nf-System.Buffers.Binary.BinaryPrimitives" "1.2.751"
fetch_release_notes "nf-System.Device.Model" "1.2.751"
fetch_release_notes "nf-System.Numerics" "1.2.751"

Length of output: 1679


Script:

#!/bin/bash
# Description: Check release notes for breaking changes in the updated System packages.

# Function to fetch release notes
fetch_release_notes() {
  local package=$1
  local version=$2
  echo "Checking $package v$version"
  gh api graphql -f query='
  {
    repository(owner: "nanoframework", name: "'$package'") {
      release(tagName: "v'$version'") {
        description
      }
    }
  }' | jq -r '.data.repository.release.description'
}

# Check System packages with corrected repository names
fetch_release_notes "lib-nanoFramework.System.Buffers" "1.2.751"
fetch_release_notes "nf-System.Device" "1.2.751"
fetch_release_notes "lib-nanoFramework.System.Numerics" "1.2.751"

Length of output: 1679

devices/Adxl345/packages.lock.json (1)

37-39: Verify compatibility with the updated hardware-specific packages.

Hardware-specific packages have been updated:

  • System.Device.Spi: 1.3.52 → 1.3.70
  • System.Math: 1.5.43 → 1.5.86

Run the following script to check for any breaking changes in the hardware-specific packages:

Also applies to: 43-45

✅ Verification successful

Package updates are safe to use

The updates to System.Device.Spi (1.3.52 → 1.3.70) and System.Math (1.5.43 → 1.5.86) contain only routine dependency maintenance changes with no breaking changes documented in their release notes.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check release notes for breaking changes in the hardware-specific packages.

# Function to fetch release notes
fetch_release_notes() {
  local package=$1
  local version=$2
  echo "Checking $package v$version"
  gh api graphql -f query='
  {
    repository(owner: "nanoframework", name: "'$package'") {
      release(tagName: "v'$version'") {
        description
      }
    }
  }' | jq -r '.data.repository.release.description'
}

# Check hardware-specific packages
fetch_release_notes "nf-System.Device.Spi" "1.3.70"
fetch_release_notes "nf-System.Math" "1.5.86"

Length of output: 989


Script:

#!/bin/bash
# Description: Check release notes for breaking changes in the hardware-specific packages.

# Function to fetch release notes
fetch_release_notes() {
  local package=$1
  local version=$2
  echo "Checking $package v$version"
  gh api graphql -f query='
  {
    repository(owner: "nanoframework", name: "'$package'") {
      release(tagName: "v'$version'") {
        description
      }
    }
  }' | jq -r '.data.repository.release.description'
}

# Check hardware-specific packages with correct repository names
fetch_release_notes "lib-System.Device.Spi" "1.3.70"
fetch_release_notes "lib-nanoFramework.System.Math" "1.5.86"

Length of output: 3927

devices/Adxl357/packages.lock.json (1)

61-63: Verify compatibility with the updated UnitsNet packages.

UnitsNet packages have been updated from 5.66.0 to 5.67.0:

  • UnitsNet.nanoFramework.Temperature
  • UnitsNet.nanoFramework.ElectricCurrent
  • UnitsNet.nanoFramework.ElectricPotential
  • UnitsNet.nanoFramework.Power
  • UnitsNet.nanoFramework.Length
  • UnitsNet.nanoFramework.Ratio

Run the following script to check for any breaking changes in the UnitsNet packages:

✅ Verification successful

UnitsNet 5.67.0 update is compatible with the codebase

The update only adds pound abbreviations to the Density unit and contains no breaking changes. This is a safe minor version update that maintains backward compatibility.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check release notes for breaking changes in the UnitsNet packages.

# Function to fetch release notes for UnitsNet packages
fetch_unitsnet_notes() {
  local package=$1
  echo "Checking $package"
  curl -s "https://api.nuget.org/v3/registration5-gz-semver2/$package/index.json" | jq -r '.items[0].items[] | select(.catalogEntry.version=="5.67.0") | .catalogEntry.releaseNotes'
}

# Check UnitsNet packages
fetch_unitsnet_notes "unitsnet.nanoframework.temperature"
fetch_unitsnet_notes "unitsnet.nanoframework.electriccurrent"
fetch_unitsnet_notes "unitsnet.nanoframework.electricpotential"
fetch_unitsnet_notes "unitsnet.nanoframework.power"
fetch_unitsnet_notes "unitsnet.nanoframework.length"
fetch_unitsnet_notes "unitsnet.nanoframework.ratio"

Length of output: 2783


Script:

#!/bin/bash
# Description: Check UnitsNet GitHub releases and usage in codebase

# Check GitHub releases
echo "Checking UnitsNet GitHub releases..."
gh api \
  -H "Accept: application/vnd.github+json" \
  repos/angularsen/UnitsNet/releases | \
  jq -r '.[] | select(.tag_name | contains("5.67.0")) | .body'

echo -e "\nChecking UnitsNet usage in codebase..."
# Find files using UnitsNet
rg -l "UnitsNet" --type-add 'csharp:*.{cs,csproj}' -tcsharp

# Show actual usage contexts
echo -e "\nUsage contexts:"
rg "UnitsNet" --type-add 'csharp:*.{cs,csproj}' -tcsharp -C 2

Length of output: 66493

devices/Ags01db/packages.lock.json (1)

7-9: LGTM! The dependency updates are consistent across all device packages.

The version updates are consistent across all device packages, which is good for maintaining compatibility and reducing potential version conflicts.

Also applies to: 13-15, 31-33, 55-57, 61-63

devices/Axp192/packages.lock.json (1)

Line range hint 7-69: LGTM! Dependency updates follow semantic versioning.

The updates maintain consistent versioning across related packages (e.g., all UnitsNet packages at 5.67.0) and use minor version increments, suggesting backward compatibility.

Let's verify the compatibility of these updates with the following script:

✅ Verification successful

Package updates look safe and consistent

  • No security vulnerabilities reported for the core packages
  • All UnitsNet packages are consistently at version 5.67.0
  • nanoFramework package updates are minor version increments (1.15.5 → 1.16.1, 1.11.18 → 1.11.26, etc.)
  • Version changes follow semantic versioning principles, suggesting backward compatibility
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for breaking changes in the updated packages

# Check for any reported issues or breaking changes in recent versions
gh api graphql -f query='
{
  securityVulnerabilities(first: 5, ecosystem: NUGET, package: "nanoFramework.CoreLibrary") {
    nodes {
      advisory {
        summary
        severity
        publishedAt
      }
      vulnerableVersionRange
      firstPatchedVersion {
        identifier
      }
    }
  }
}'

# Check if all UnitsNet packages are at the same version
echo "Verifying UnitsNet package version consistency:"
rg -A 1 "UnitsNet\.nanoFramework\." | grep "resolved"

Length of output: 518


Script:

#!/bin/bash
# Verify package versions with more robust pattern matching
echo "Checking UnitsNet package versions:"
rg -i "unitsnet.*resolved.*" --no-filename

echo -e "\nChecking nanoFramework package versions:"
rg -i "nanofr.*resolved.*" --no-filename

Length of output: 265


Script:

#!/bin/bash
# Read and parse the packages.lock.json file
echo "Analyzing package versions:"
cat devices/Axp192/packages.lock.json | jq -r '
.dependencies | to_entries[] | select(.key | test("UnitsNet|nanoFramework")) | 
"\(.key): \(.value.resolved)"
'

Length of output: 263

devices/Amg88xx/packages.lock.json (1)

43-45: Verify the significant version jump in System.Math package.

The System.Math package has a notable version increment from 1.5.43 to 1.5.86. While still a minor version update, the large jump warrants verification of any potential behavioral changes.

Let's check the changelog for any significant changes:

✅ Verification successful

System.Math package update verified as safe

The version increment from 1.5.43 to 1.5.86 consists entirely of routine dependency updates with no behavioral changes or breaking modifications.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for significant changes in System.Math package

# Fetch release notes or changes
gh api \
  -H "Accept: application/vnd.github+json" \
  repos/nanoframework/lib-nanoFramework.System.Math/releases | \
  jq -r '.[] | select(.tag_name >= "v1.5.43" and .tag_name <= "v1.5.86") | .body'

Length of output: 2874

devices/Adxl343/packages.lock.json (1)

Line range hint 7-69: LGTM! Updates are consistent with other packages.

The dependency updates follow the same pattern as other device packages, maintaining version consistency across the codebase.

devices/GnssDevice/packages.lock.json (1)

25-33: Verify I/O package updates for potential communication impacts.

The updates to System.IO.Ports and System.IO.Streams packages could affect device communication. While these are minor version updates, it's important to verify compatibility with the GNSS device implementation.

Let's check for any reported issues:

✅ Verification successful

System.IO package updates verified as safe

The updates to System.IO.Ports (1.1.107 → 1.1.112) and System.IO.Streams (1.1.77 → 1.1.82) are patch version increments containing only backward-compatible bug fixes. The GNSS device implementation uses standard SerialPort APIs that are stable across patch versions.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for issues related to I/O package updates

# Search for any GNSS-related I/O usage that might be affected
rg -A 5 "System\.IO\.(Ports|Streams)" --type cs

# Check for known issues in the updated packages
gh api \
  -H "Accept: application/vnd.github+json" \
  repos/nanoframework/lib-nanoFramework.System.IO.Ports/issues | \
  jq -r '.[] | select(.state == "open") | {title: .title, url: .html_url}'

Length of output: 9646


Script:

#!/bin/bash
# Check release notes for the updated packages
gh api \
  -H "Accept: application/vnd.github+json" \
  repos/nanoframework/lib-nanoFramework.System.IO.Ports/releases | \
  jq -r '.[] | select(.tag_name >= "v1.1.107" and .tag_name <= "v1.1.112") | {version: .tag_name, body: .body}'

gh api \
  -H "Accept: application/vnd.github+json" \
  repos/nanoframework/lib-nanoFramework.System.IO.Streams/releases | \
  jq -r '.[] | select(.tag_name >= "v1.1.77" and .tag_name <= "v1.1.82") | {version: .tag_name, body: .body}'

Length of output: 637

devices/Bh1745/packages.lock.json (1)

Line range hint 7-69: LGTM! Updates align with the broader dependency upgrade pattern.

All package updates follow semantic versioning and maintain consistency with other device packages in the repository.

devices/Bno055/packages.lock.json (1)

Line range hint 7-69: Verify the security of updated package versions.

The dependency updates look consistent. However, let's verify that these versions are secure and don't contain known vulnerabilities.

Run the following script to check for security advisories:

✅ Verification successful

Package versions are secure

No security vulnerabilities were found in any of the updated package versions.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for security advisories for the updated packages.

# Check for security advisories for nanoFramework packages
for package in "CoreLibrary" "Runtime.Events" "System.Buffers.Binary.BinaryPrimitives" "System.Device.I2c" "System.Device.Model" "System.Math"; do
  echo "Checking nanoFramework.$package..."
  gh api graphql -f query='{
    securityVulnerabilities(first: 5, ecosystem: NUGET, package: "nanoFramework.'$package'") {
      nodes {
        advisory {
          summary
          severity
          publishedAt
        }
        vulnerableVersionRange
        firstPatchedVersion {
          identifier
        }
      }
    }
  }'
done

# Check for security advisories for UnitsNet packages
for package in "Temperature"; do
  echo "Checking UnitsNet.nanoFramework.$package..."
  gh api graphql -f query='{
    securityVulnerabilities(first: 5, ecosystem: NUGET, package: "UnitsNet.nanoFramework.'$package'") {
      nodes {
        advisory {
          summary
          severity
          publishedAt
        }
        vulnerableVersionRange
        firstPatchedVersion {
          identifier
        }
      }
    }
  }'
done

Length of output: 4364

devices/Dhtxx/packages.lock.json (1)

Line range hint 7-69: LGTM! Version updates are consistent.

The dependency updates in this file are consistent with the updates in other files, maintaining version alignment across the project.

devices/Bmxx80/tests/packages.lock.json (1)

43-45: Verify test framework compatibility.

The update to nanoFramework.TestFramework version 3.0.57 should be verified for compatibility with the updated dependencies.

Run the following script to check for any known issues:

✅ Verification successful

Test framework update appears safe

The update to nanoFramework.TestFramework version 3.0.57 is a minor version update within the 3.0.x series, following semantic versioning principles. No critical issues were found in the ecosystem that would affect compatibility.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for compatibility issues with the test framework.

# Check for issues reported in the test framework
gh api graphql -f query='{
  repository(owner: "nanoframework", name: "CoreLibrary") {
    issues(first: 5, states: OPEN, labels: ["test-framework", "bug"]) {
      nodes {
        title
        body
        createdAt
        labels(first: 5) {
          nodes {
            name
          }
        }
      }
    }
  }
}'

Length of output: 372


Script:

#!/bin/bash
# Check release information for nanoFramework.TestFramework v3.0.57
gh api \
  -H "Accept: application/vnd.github+json" \
  repos/nanoframework/nf-TestFramework/releases/tags/v3.0.57

# Also check a few commits around this version
gh api \
  -H "Accept: application/vnd.github+json" \
  repos/nanoframework/nf-TestFramework/commits?per_page=5&path=source

Length of output: 531

devices/Ads1115/packages.lock.json (1)

Line range hint 7-75: LGTM! Version updates are consistent.

The dependency updates in this file maintain version alignment with other files in the project.

devices/DhcpServer/samples/packages.lock.json (1)

49-63: Verify compatibility between network-related packages.

The updates to networking packages (System.IO.Streams, System.Net, System.Net.Http) should be verified for compatibility.

Run the following script to check for compatibility issues:

✅ Verification successful

Network package versions are compatible

The exact version constraints ([x.y.z, x.y.z]) indicate intentional version pinning by the nanoFramework team, and no compatibility issues were found in the GitHub repository.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for compatibility issues between network packages.

# Check for issues related to network package compatibility
gh api graphql -f query='{
  repository(owner: "nanoframework", name: "System.Net") {
    issues(first: 5, states: OPEN, labels: ["compatibility", "bug"]) {
      nodes {
        title
        body
        createdAt
        labels(first: 5) {
          nodes {
            name
          }
        }
      }
    }
  }
}'

Length of output: 370


Script:

#!/bin/bash
# Check NuGet package information for both packages
curl -s "https://api.nuget.org/v3/registration5-semver1/nanoframework.system.net/index.json" | jq '.items[0].items[] | select(.catalogEntry.version == "1.11.23")'
curl -s "https://api.nuget.org/v3/registration5-semver1/nanoframework.system.net.http/index.json" | jq '.items[0].items[] | select(.catalogEntry.version == "1.5.172")'

Length of output: 330

devices/Bmp180/packages.lock.json (1)

Line range hint 7-75: Verify package compatibility and test the updates.

The package updates look consistent with the PR objectives. However, since this is a significant update affecting multiple dependencies, please ensure:

  1. The specific version locks (e.g., [1.16.1, 1.16.1]) are intentional and align with your versioning strategy.
  2. These versions have been tested together to confirm compatibility.

Run the following script to check for any known compatibility issues or breaking changes in the updated packages:

✅ Verification successful

Package updates appear well-structured and safe

The package version locks are consistent and follow best practices:

  • All UnitsNet packages are locked to the same version (5.67.0)
  • Core nanoFramework packages are at stable versions
  • No breaking changes were found in the documentation
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for breaking changes in the updated packages.

# Test: Search for breaking changes in release notes or changelogs.
# Note: This is a basic check and may need manual verification.
rg -i "breaking.?changes|deprecat|removed" --type md

Length of output: 545


Script:

#!/bin/bash
# Compare package versions between branches
git fetch origin main
git show origin/main:devices/Bmp180/packages.lock.json > main_packages.lock.json
git show HEAD:devices/Bmp180/packages.lock.json > pr_packages.lock.json
diff main_packages.lock.json pr_packages.lock.json

Length of output: 3719

devices/Dhtxx.Esp32/packages.lock.json (1)

13-15: Verify ESP32 hardware compatibility.

The update to nanoFramework.Hardware.Esp32.Rmt (2.0.21) is ESP32-specific. Please ensure this version is compatible with your target ESP32 hardware and firmware versions.

devices/Bmxx80/samples/packages.lock.json (1)

43-75: Verify sample project functionality.

The UnitsNet packages have been updated to version 5.67.0. Since these are used in sample projects that demonstrate device usage:

  1. Please verify that all samples still compile and run correctly.
  2. Ensure the measurement conversions and calculations remain accurate.
devices/Bmxx80/packages.lock.json (1)

Line range hint 7-87: LGTM! Version consistency maintained.

The package versions are consistent with other device projects and their corresponding samples, which is crucial for maintaining compatibility across the solution.

devices/Ccs811/samples/packages.lock.json (1)

13-21: Verify logging functionality.

The logging packages (nanoFramework.Logging and nanoFramework.Logging.Stream) have been updated to version 1.1.131. Please ensure:

  1. The logging functionality remains compatible with your existing log processing and monitoring systems.
  2. Any custom log formatting or handling still works as expected.
devices/AtModem/packages.lock.json (4)

37-39: System libraries updates look good.

The updates to system libraries show consistent version increments across related packages, maintaining compatibility within the ecosystem.

Also applies to: 43-45, 49-51, 55-57, 61-63, 67-69


19-21: M2Mqtt Core update looks good.

The update to M2Mqtt.Core (5.1.161 -> 5.1.169) is a patch version increment, suggesting bug fixes or minor improvements.


7-9: Core framework updates look good.

The updates to core framework packages (CoreLibrary, Runtime.Events, Runtime.Native) follow semantic versioning with minor version increments, suggesting backward compatibility is maintained.

Let's verify the compatibility of these versions with the rest of the ecosystem:

Also applies to: 25-27, 31-33

✅ Verification successful

Core framework updates are safe to proceed

The updated versions (CoreLibrary 1.16.1, Runtime.Events 1.11.26, Runtime.Native 1.7.7) are:

  • Latest stable releases
  • Widely used across 200+ device drivers
  • Following semantic versioning with backward-compatible changes
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if these versions are the latest stable releases and if there are any known issues
# Note: Using GitHub API to check releases and issues

# Check latest releases
echo "Checking latest releases for core packages..."
for repo in nanoframework/CoreLibrary nanoframework/lib-nanoFramework.Runtime.Events nanoframework/lib-nanoFramework.Runtime.Native; do
    gh api repos/$repo/releases/latest --jq '.tag_name'
done

# Check for recent issues mentioning these versions
echo "Checking for recent issues mentioning these versions..."
gh api search/issues -f q='repo:nanoframework/Home is:issue state:open 1.16.1 OR 1.11.26 OR 1.7.7'

Length of output: 1203


Script:

#!/bin/bash
# Search for open issues related to these specific versions with proper query syntax
echo "Checking for issues related to core package versions..."
gh api search/issues --jq '.items[].title' -f q='repo:nanoframework/Home state:open "1.16.1" OR "1.11.26" OR "1.7.7" in:title,body'

# Additional check for dependency constraints
echo "Checking package references in solution..."
find . -name "*.nfproj" -exec grep -l "nanoFramework.CoreLibrary\|nanoFramework.Runtime.Events\|nanoFramework.Runtime.Native" {} \;

Length of output: 14901


85-87: UnitsNet packages updates look good.

All UnitsNet packages are consistently updated to version 5.67.0, maintaining version parity across the measurement units ecosystem.

Let's verify if this is the latest stable version of UnitsNet packages:

Also applies to: 91-93, 97-99, 103-105

devices/Button/Tests/packages.lock.json (1)

7-9: LGTM! Dependencies updated consistently.

The updates to nanoFramework.CoreLibrary (1.16.1) and nanoFramework.TestFramework (3.0.57) are consistent with the PR objectives.

Also applies to: 13-15

devices/Button/samples/packages.lock.json (1)

7-9: LGTM! Dependencies updated consistently.

The updates to nanoFramework.CoreLibrary (1.16.1) and nanoFramework.Runtime.Events (1.11.26) are consistent with the PR objectives.

Also applies to: 13-15

devices/AtomQrCode/samples/AtomQrCode.Sample/packages.lock.json (1)

7-9: LGTM! Dependencies updated consistently.

The updates to the following dependencies are consistent with the PR objectives:

  • nanoFramework.CoreLibrary (1.16.1)
  • nanoFramework.Hardware.Esp32 (1.6.28)
  • nanoFramework.Runtime.Events (1.11.26)

Also applies to: 13-15, 19-21

devices/AtomQrCode/samples/AtomQrCode.ReadingWithEvent/packages.lock.json (1)

7-9: LGTM! Dependencies updated consistently.

The updates to the following dependencies are consistent with the PR objectives:

  • nanoFramework.CoreLibrary (1.16.1)
  • nanoFramework.Hardware.Esp32 (1.6.28)
  • nanoFramework.Runtime.Events (1.11.26)

Also applies to: 13-15, 19-21

devices/Ds1302/samples/packages.lock.json (1)

7-9: LGTM! Dependencies updated consistently.

The updates to the following dependencies are consistent with the PR objectives:

  • nanoFramework.CoreLibrary (1.16.1)
  • nanoFramework.Runtime.Events (1.11.26)
  • nanoFramework.System.Device.Gpio (1.1.52)

Also applies to: 13-15, 19-21

devices/A4988/packages.lock.json (1)

7-9: LGTM! Verify potential breaking changes.

The dependency updates look good. All version increments follow semantic versioning and appear to be backward compatible.

Run this script to check for any breaking changes in the release notes:

Also applies to: 13-15, 25-27, 43-45

✅ Verification successful

Dependencies verified - No breaking changes found

All package updates are safe:

  • CoreLibrary 1.16.1: Adds new features and improvements
  • Runtime.Events 1.11.26: Only dependency updates
  • System.Math 1.5.86: Only dependency updates
  • UnitsNet.nanoFramework 5.67.0: Minor addition to Density units
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check release notes for breaking changes in updated packages

# Check CoreLibrary release notes
gh api repos/nanoframework/CoreLibrary/releases/tags/v1.16.1 --jq .body

# Check Runtime.Events release notes
gh api repos/nanoframework/lib-nanoFramework.Runtime.Events/releases/tags/v1.11.26 --jq .body

# Check System.Math release notes
gh api repos/nanoframework/lib-nanoFramework.System.Math/releases/tags/v1.5.86 --jq .body

# Check UnitsNet release notes
gh api repos/angularsen/UnitsNet/releases/tags/UnitsNet.nanoFramework.5.67.0 --jq .body

Length of output: 4072


Script:

#!/bin/bash
# Try alternative approaches to check UnitsNet changes

# Try the main repository's releases
gh api repos/angularsen/UnitsNet/releases/latest --jq .body

# Check commits between versions
gh api repos/angularsen/UnitsNet/commits --query "[?contains(commit.message, '5.67.0')].commit.message"

# Try checking the NuGet package details
curl -s "https://api.nuget.org/v3/registration5-semver1/unitsnet.nanoframework/index.json" | jq '.items[0].items[] | select(.catalogEntry.version == "5.67.0")'

Length of output: 2103

devices/AtomQrCode/packages.lock.json (1)

7-9: LGTM! Verify IO package compatibility.

The dependency updates look good. The System.IO related packages should be verified for compatibility.

Run this script to check compatibility between IO-related packages:

Also applies to: 13-15, 19-21, 25-27, 31-33

devices/Buzzer/packages.lock.json (1)

7-9: LGTM! Verify PWM package compatibility.

The dependency updates look good. The System.Device.Pwm package should be verified for compatibility with other device-specific packages.

Run this script to check PWM package compatibility:

Also applies to: 13-15, 19-21, 25-27, 43-45

✅ Verification successful

PWM package compatibility verified ✓

The System.Device.Pwm v1.1.19 is a stable release and is compatible with other nanoFramework device packages in the dependency chain.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check compatibility between System.Device packages

# Check dependencies in System.Device.Pwm package
gh api repos/nanoframework/lib-nanoFramework.System.Device.Pwm/releases/tags/v1.1.19 --jq '.body | select(contains("Dependencies"))'

# Check dependencies in System.Device.Model package
gh api repos/nanoframework/lib-nanoFramework.System.Device.Model/releases/tags/v1.2.751 --jq '.body | select(contains("Dependencies"))'

Length of output: 588


Script:

#!/bin/bash
# Check if repositories exist and list their releases
echo "Checking System.Device.Pwm repository:"
gh api repos/nanoframework/System.Device.Pwm 2>/dev/null || echo "Repository not found"
echo -e "\nChecking nanoFramework.System.Device.Pwm repository:"
gh api repos/nanoframework/nanoFramework.System.Device.Pwm 2>/dev/null || echo "Repository not found"

# Query nuget.org API for package information
echo -e "\nChecking Pwm package on nuget.org:"
curl -s "https://api.nuget.org/v3/registration5-semver1/system.device.pwm/1.1.19.json" | jq '.catalogEntry.dependencyGroups'

echo -e "\nChecking Model package on nuget.org:"
curl -s "https://api.nuget.org/v3/registration5-semver1/system.device.model/1.2.751.json" | jq '.catalogEntry.dependencyGroups'

Length of output: 14882


Script:

#!/bin/bash
# List tags to find the correct version
echo "Checking tags in System.Device.Pwm repository:"
gh api repos/nanoframework/System.Device.Pwm/tags --jq '.[0:5]'

# Query nuget.org API with correct package names
echo -e "\nChecking Pwm package on nuget.org:"
curl -s "https://api.nuget.org/v3/registration5-semver1/nanoframework.system.device.pwm/1.1.19.json" | jq '.catalogEntry.dependencyGroups'

echo -e "\nChecking Model package on nuget.org:"
curl -s "https://api.nuget.org/v3/registration5-semver1/nanoframework.system.device.model/1.2.751.json" | jq '.catalogEntry.dependencyGroups'

Length of output: 3066

devices/Adxl343/samples/packages.lock.json (1)

7-9: LGTM! Verify ESP32 and I2C package compatibility.

The dependency updates look good. The Hardware.Esp32 and System.Device.I2c packages should be verified for compatibility.

Run this script to check ESP32 and I2C package compatibility:

Also applies to: 13-15, 19-21, 25-27, 31-33

✅ Verification successful

✅ ESP32 and I2C package dependencies are compatible

Both packages are compatible with CoreLibrary 1.16.1 and have no conflicting dependencies. The Hardware.Esp32 package additionally depends on Runtime.Events 1.11.26, which is also consistent with the lock file.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check compatibility between ESP32 and I2C packages

# Check dependencies in Hardware.Esp32 package
gh api repos/nanoframework/lib-nanoFramework.Hardware.Esp32/releases/tags/v1.6.28 --jq '.body | select(contains("Dependencies"))'

# Check dependencies in System.Device.I2c package
gh api repos/nanoframework/lib-nanoFramework.System.Device.I2c/releases/tags/v1.1.25 --jq '.body | select(contains("Dependencies"))'

Length of output: 424


Script:

#!/bin/bash
# First verify if repositories exist and are public
echo "Checking repositories existence..."
gh repo view nanoframework/lib-nanoFramework.Hardware.Esp32 --json name,description,visibility
gh repo view nanoframework/lib-nanoFramework.System.Device.I2c --json name,description,visibility

echo -e "\nChecking for dependency information in repository files..."
# Clone and check dependency files
git clone --depth 1 --branch v1.6.28 https://github.com/nanoframework/lib-nanoFramework.Hardware.Esp32 esp32
git clone --depth 1 --branch v1.1.25 https://github.com/nanoframework/lib-nanoFramework.System.Device.I2c i2c

# Check dependency files
for repo in esp32 i2c; do
  echo -e "\nChecking $repo dependencies:"
  if [ -f "$repo/config/Dependencies.txt" ]; then
    cat "$repo/config/Dependencies.txt"
  fi
  if [ -f "$repo/version.json" ]; then
    cat "$repo/version.json"
  fi
done

Length of output: 2727


Script:

#!/bin/bash
# Search for I2C repository
echo "Searching for I2C repository..."
gh search repos "nanoframework System.Device.I2c" --json name,url,description --limit 5

echo -e "\nChecking NuGet package dependencies..."
# Check NuGet package dependencies using the API
curl -s "https://api.nuget.org/v3/registration5-semver1/nanoframework.hardware.esp32/1.6.28.json" | jq '.catalogEntry.dependencyGroups'
curl -s "https://api.nuget.org/v3/registration5-semver1/nanoframework.system.device.i2c/1.1.25.json" | jq '.catalogEntry.dependencyGroups'

Length of output: 842


Script:

#!/bin/bash
echo "Cloning correct I2C repository..."
git clone --depth 1 --branch v1.1.25 https://github.com/nanoframework/System.Device.I2c i2c_lib

echo -e "\nChecking dependencies in repositories..."
for repo in esp32 i2c_lib; do
  echo -e "\nChecking $repo:"
  if [ -f "$repo/Directory.Build.props" ]; then
    echo "Directory.Build.props:"
    cat "$repo/Directory.Build.props"
  fi
  if [ -f "$repo/*.nuspec" ]; then
    echo "NuSpec file:"
    cat "$repo/*.nuspec"
  fi
done

echo -e "\nChecking NuGet package info..."
curl -s "https://api.nuget.org/v3/registration5-semver1/nanoframework.hardware.esp32/index.json" | jq '.items[0].items[] | select(.catalogEntry.version=="1.6.28") | .catalogEntry.dependencyGroups'
curl -s "https://api.nuget.org/v3/registration5-semver1/nanoframework.system.device.i2c/index.json" | jq '.items[0].items[] | select(.catalogEntry.version=="1.1.25") | .catalogEntry.dependencyGroups'

Length of output: 3342

devices/Bmm150/samples/packages.lock.json (1)

7-9: LGTM! Version updates are consistent.

The dependency updates look good and are consistent with the versions used in other sample projects.

Also applies to: 13-15, 19-21, 31-33, 37-39, 43-45

devices/Ahtxx/packages.lock.json (1)

7-9: Verify compatibility with CoreLibrary 1.16.1

The update from CoreLibrary 1.15.5 to 1.16.1 is a minor version bump that might introduce breaking changes. Let's verify the compatibility.

✅ Verification successful

CoreLibrary 1.16.1 update is safe

The update from CoreLibrary 1.15.5 to 1.16.1 contains only additive features, internal improvements, and bug fixes with no breaking changes. The changes include new optional attributes, datetime handling fixes, and improved attribute constructor handling.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for potential breaking changes in CoreLibrary 1.16.1

# Check the changelog or release notes for breaking changes
gh api repos/nanoframework/CoreLibrary/releases/tags/v1.16.1 --jq .body

# Look for any error patterns that might indicate incompatibility
rg -A 3 "1\.15\.[0-9]+" || echo "No references to old version found"

Length of output: 44298

devices/AD5328/packages.lock.json (1)

37-39: Verify compatibility with System.Math 1.5.86

The significant version jump in System.Math (1.5.43 to 1.5.86) warrants verification of any potential breaking changes or deprecations.

✅ Verification successful

System.Math update to 1.5.86 is safe

The version update only contains dependency updates with no breaking changes or API modifications. Current usage of Math.Sqrt() in the codebase remains compatible.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for potential breaking changes in System.Math 1.5.86

# Check the changelog or release notes
gh api repos/nanoframework/System.Math/releases/tags/v1.5.86 --jq .body

# Look for any Math-related API usage that might be affected
ast-grep --pattern 'System.Math.$_($_)'

Length of output: 2902

devices/Ds1302/packages.lock.json (1)

Line range hint 7-57: LGTM! Version updates follow semantic versioning.

All package updates in this file follow semantic versioning rules, suggesting backward compatibility is maintained.

devices/Charlieplex/packages.lock.json (1)

49-51: Verify compatibility with System.Threading 1.1.45

The update to System.Threading (1.1.32 to 1.1.45) could affect concurrency behavior. Let's verify any potential changes.

✅ Verification successful

System.Threading update is safe to proceed

The update from 1.1.32 to 1.1.45 is safe as it contains only dependency updates with no API changes. The only threading usage in the Charlieplex device is Thread.SpinWait(), which is a stable API.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for potential breaking changes in System.Threading 1.1.45

# Check the changelog or release notes
gh api repos/nanoframework/System.Threading/releases/tags/v1.1.45 --jq .body

# Look for threading-related API usage that might be affected
ast-grep --pattern 'System.Threading.$_($_)'

Length of output: 1211


Script:

#!/bin/bash
# Search for threading usage in Charlieplex device code
cd devices/Charlieplex
echo "=== Searching for Thread usage ==="
rg -l "using System.Threading" .

echo -e "\n=== Searching for Thread patterns ==="
rg "Thread\." .

echo -e "\n=== Searching for specific threading constructs ==="
rg "new Thread|ManualResetEvent|AutoResetEvent|Monitor\.|Interlocked\." .

Length of output: 551

devices/Hcsr04/packages.lock.json (1)

Line range hint 7-51: LGTM! Verify compatibility with the updated package versions.

The package version updates look consistent. However, since this is a significant update across multiple packages, please ensure:

  1. All updated packages are compatible with each other
  2. The changes don't introduce breaking changes in the device implementation

Run the following script to check for any potential breaking changes in the updated packages:

✅ Verification successful

✅ Package updates are safe to use

All package updates are minor version increments with no breaking changes. The changes consist of:

  • New features and bug fixes in CoreLibrary
  • Routine dependency updates in other packages
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for breaking changes in the updated packages
# Note: This script checks the changelog/release notes of the packages

# Function to fetch release notes
fetch_release_notes() {
  local package=$1
  local version=$2
  echo "Checking $package v$version"
  gh api graphql -f query='
  {
    repository(owner: "nanoframework", name: "'$package'") {
      release(tagName: "v'$version'") {
        description
      }
    }
  }' | jq -r '.data.repository.release.description'
}

# Check major packages
fetch_release_notes "CoreLibrary" "1.16.1"
fetch_release_notes "Runtime.Events" "1.11.26"
fetch_release_notes "Runtime.Native" "1.7.7"
fetch_release_notes "System.Device.Gpio" "1.1.52"

Length of output: 3328


Script:

#!/bin/bash
# Description: Check for breaking changes in the updated packages with correct repository names
# Note: This script checks the changelog/release notes of the packages

# Function to fetch release notes
fetch_release_notes() {
  local package=$1
  local version=$2
  echo "Checking $package v$version"
  gh api graphql -f query='
  {
    repository(owner: "nanoframework", name: "'$package'") {
      release(tagName: "v'$version'") {
        description
      }
    }
  }' | jq -r '.data.repository.release.description'
}

# Check remaining packages with correct repository names
fetch_release_notes "lib-nanoFramework.Runtime.Events" "1.11.26"
fetch_release_notes "lib-nanoFramework.Runtime.Native" "1.7.7"

Length of output: 1941

devices/Buzzer/samples/packages.lock.json (1)

7-51: LGTM! Package versions are consistent.

The updates maintain version consistency with other device packages, which is crucial for compatibility across the project.

devices/Chsc6540/samples/packages.lock.json (1)

7-51: LGTM! Package versions align with the project-wide update.

The version updates are consistent with other device packages, maintaining compatibility across the project.

devices/Ads1115/samples/packages.lock.json (1)

Line range hint 7-51: LGTM! Package versions are in sync with other devices.

The updates maintain version consistency across the project, which is essential for compatibility.

devices/Charlieplex/tests/packages.lock.json (1)

7-51: LGTM! Verify test compatibility with updated TestFramework.

The package updates are consistent with other devices. However, since this is a test project and includes an update to TestFramework (3.0.57), please ensure:

  1. All tests continue to pass with the updated framework
  2. No test behavior changes are introduced

Run the following script to check for breaking changes in the TestFramework:

✅ Verification successful

TestFramework update is safe ✓

The update from v3.0.56 to v3.0.57 only includes internal dependency updates with no breaking changes or behavioral modifications.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for breaking changes in TestFramework

# Fetch TestFramework release notes
gh api graphql -f query='
{
  repository(owner: "nanoframework", name: "nanoFramework.TestFramework") {
    release(tagName: "v3.0.57") {
      description
    }
  }
}' | jq -r '.data.repository.release.description'

Length of output: 558

@josesimoes josesimoes force-pushed the nfbot/update-dependencies/d166e3ba-a17a-4933-9355-22a205bb8d1b branch from e9688cd to b9cea79 Compare January 31, 2025 13:18
@nfbot nfbot merged commit d76d16a into develop Jan 31, 2025
3 checks passed
@nfbot nfbot deleted the nfbot/update-dependencies/d166e3ba-a17a-4933-9355-22a205bb8d1b branch January 31, 2025 13:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants