Skip to content

Add WSGI web server, socket listen, fix bugs #28

New issue

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

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

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Jan 20, 2021
Merged

Add WSGI web server, socket listen, fix bugs #28

merged 8 commits into from
Jan 20, 2021

Conversation

xorbit
Copy link
Contributor

@xorbit xorbit commented Jan 7, 2021

  • Added WSGI web server with up to 7 simultaneous connections, which
    are serviced sequentially
  • adafruit_wiznet5k_wsgiserver based on and has interface identical to
    adafruit_esp32spi_wsgiserver for maximum compatibility
  • Added socket 'listen' function
  • Fixed socket 'connected' logic and made compatible with 'listen'
  • Fixed source port > 65535 bug
  • Removed SOCKETS list, it was buggy and caused get_socket allocation
    to only work if socket connections ended in order, which is not the
    case for web servers (and wrong in many other cases)
  • Fixed TX buffer pointer limit to 16-bit
  • Allow 5s for DHCP response

- Added WSGI web server with up to 7 simultaneous connections, which
  are serviced sequentially
- adafruit_wiznet5k_wsgiserver based on and has interface identical to
  adafruit_esp32spi_wsgiserver for maximum compatibility
- Added socket 'listen' function
- Fixed socket 'connected' logic and made compatible with 'listen'
- Fixed source port > 65535 bug
- Removed SOCKETS list, it was buggy and caused get_socket allocation
  to only work if socket connections ended in order, which is not the
  case for web servers (and wrong in many other cases)
- Fixed TX buffer pointer limit to 16-bit
- Allow 5s for DHCP response
@brentru brentru self-requested a review January 7, 2021 00:21
@brentru
Copy link
Member

brentru commented Jan 7, 2021

Woah...awesome! I'm going to review this tomorrow.

@tannewt
Copy link
Member

tannewt commented Jan 7, 2021

Is it possible to split out the wsgi server bit to work with any socket implementation? That way we'd be able to share it across all network providers.

Copy link
Member

@brentru brentru left a comment

Choose a reason for hiding this comment

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

Thanks for submitting this pull request. I have some questions along with some feedback.

@xorbit
Copy link
Contributor Author

xorbit commented Jan 8, 2021

Is it possible to split out the wsgi server bit to work with any socket implementation? That way we'd be able to share it across all network providers.

I'm afraid that may not be possible, at least as far as I understand things. If you look at the ESP32 implementation for instance, it's very different from what I had to do here for the W5500. The ESP32 code has a "start server" call on the interface to listen on port 80, no socket involved at that point. I had to do a weird non-standard thing where I listen on port 80 on several sockets at the same time, something that would not be possible on a standard socket the way I understand things. But it was the only way I found to hold several connections at once until they can get served, instead of refusing connections after the first one is being served.

I think a common interface at the WSGI level is as good as it's going to get. These chips all have different ways to do things and idiosyncrasies that may not be able to be resolved at the socket level. If you want to investigates ways to make that happen, be my guest, but it seems like it would be a huge undertaking, likely invalidated the next time another chip is added.

@tannewt
Copy link
Member

tannewt commented Jan 8, 2021

👍 Thanks @xorbit. I wanted to make sure and chime in for awareness. Unifying things is my challenge to @brentru :-)

xorbit added 2 commits January 8, 2021 12:17
- Server would hang and not serve any other clients when a client
  disconnected, fixed in `socket_write`.
- Fixed `_get_tx_free_size` bug that would always return 0 and
  `socket_write` that used this function in a useless way and
  didn't actually check anything because it checked whether the
  returned bytearray was in a tuple of status ints.
- `_get_tx_free_size` and `_get_rx_rcv_size` now return int instead
  of bytearray as you'd expect.
- The socket now expects `bind`, then `listen` for improved
  compatibility with CPython socket.
- Fixed formatting to make black happy, even did the extremely ugly
  thing on line 222 of adafruit_wiznet5k_socket.py.
@brentru brentru self-requested a review January 11, 2021 14:53
- Socket send now has a timeout so we can eventually release the socket
  in situations where we are trying to send but the network connection
  died so there was no TCP handshake to close the connection.
- `WSGIServer` now has a 20s timeout for its sockets.
- DHCP timeout increased to 30s in accordance with RFC3315.
- Recognize more states as "socket is closed and available".
- `get_socket` now returns an invalid value if no free socket is
  available, which will cause an exception in the socket constructor.
  It used to return 0 if no sockets were available, which is a valid
  socket value, and caused all kinds of problems for the rightful
  owner of socket 0.
@xorbit
Copy link
Contributor Author

xorbit commented Jan 12, 2021

Not sure what the automatic check is complaining about, I don't think I touched the files that fail?

Is it black complaining about adafruit_wiznet5k.py? I've run black on my code and it passes. Not sure what to do about it.

@brentru
Copy link
Member

brentru commented Jan 13, 2021

@xorbit looks like it's failing on 1) conflicting files and 2) a licensing issue.

@dherrada - could you please take a look at the CI on this? Thanks!

@evaherrada
Copy link
Collaborator

@brentru On it. Probably just gonna copy the license files over from master since that seems like an easier way to do it.

@evaherrada
Copy link
Collaborator

evaherrada commented Jan 14, 2021

Uhh, so I'm not sure why but now the CI isn't running at all. The only merge conflict left is one line in the license of adafruit_wiznet5k.py.
Screenshot from 2021-01-14 11-01-53

@brentru I'm not really experienced enough with git to know exactly what the right thing to do here is. One possible solution I thought of was to just remove the copyright line that was added in this branch and then re-add it once this is merged.

@xorbit
Copy link
Contributor Author

xorbit commented Jan 14, 2021

I did wonder about the license. The license file and README both call out LGPL but the sources files themselves say MIT. I did not make any change to this, but did wonder about the conflict there?

@tannewt
Copy link
Member

tannewt commented Jan 14, 2021

@dherrada The CI won't run if you have merge conflicts. You'll need to do a git merge locally.

@evaherrada
Copy link
Collaborator

@tannewt Ah, that makes sense. Good to know

@AdamCummick
Copy link
Contributor

AdamCummick commented Jan 20, 2021

Any updates on this? I had actually started working on the same functionality and have a couple things I would like to add in after this is approved.

Copy link
Member

@brentru brentru left a comment

Choose a reason for hiding this comment

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

Tested simpletest and the new simple web server example. Thank you for adding this feature and bug fixes, @xorbit !

@brentru brentru merged commit 0e9c7e9 into adafruit:master Jan 20, 2021
@brentru
Copy link
Member

brentru commented Jan 20, 2021

@AdamCummick I just merged and released. Please feel free to open a separate PR with new functionalities and features. Thanks!

@xorbit
Copy link
Contributor Author

xorbit commented Jan 20, 2021

Thanks @brentru !

adafruit-adabot added a commit to adafruit/Adafruit_CircuitPython_Bundle that referenced this pull request Jan 21, 2021
Updating https://github.com/adafruit/Adafruit_CircuitPython_74HC595 to 1.2.2 from 1.2.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_74HC595#14 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15 to 2.2.6 from 2.2.5:
  > Merge pull request adafruit/Adafruit_CircuitPython_ADS1x15#67 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_ADT7410 to 1.2.3 from 1.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_ADT7410#13 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_ADXL34x to 1.11.5 from 1.11.4:
  > Merge pull request adafruit/Adafruit_CircuitPython_ADXL34x#26 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_AHTx0 to 1.0.3 from 1.0.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_AHTx0#4 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_AM2320 to 1.2.4 from 1.2.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_AM2320#19 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_AMG88xx to 1.2.5 from 1.2.4:
  > Merge pull request adafruit/Adafruit_CircuitPython_AMG88xx#31 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_APDS9960 to 2.2.4 from 2.2.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_APDS9960#28 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_AS726x to 2.0.2 from 2.0.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_AS726x#15 from adafruit/REUSE
  > Ran pre-commit and black, licenses still needed
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_BD3491FS to 1.1.4 from 1.1.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_BD3491FS#7 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_BluefruitSPI to 1.1.4 from 1.1.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_BluefruitSPI#19 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_BME280 to 2.5.2 from 2.5.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_BME280#43 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_BMP280 to 3.2.4 from 3.2.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_BMP280#26 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_BMP3XX to 1.3.2 from 1.3.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_BMP3XX#15 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_BNO055 to 5.2.3 from 5.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_BNO055#69 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright
  > Merge pull request adafruit/Adafruit_CircuitPython_BNO055#68 from adafruit/temp-example-fix

Updating https://github.com/adafruit/Adafruit_CircuitPython_CAP1188 to 1.2.4 from 1.2.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_CAP1188#19 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_CCS811 to 1.3.1 from 1.3.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_CCS811#44 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_CharLCD to 3.3.5 from 3.3.4:
  > Merge pull request adafruit/Adafruit_CircuitPython_CharLCD#54 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Crickit to 2.3.3 from 2.3.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_Crickit#29 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_DHT to 3.5.4 from 3.5.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_DHT#58 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SSD1305 to 1.1.2 from 1.1.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_DisplayIO_SSD1305#11 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_DPS310 to 1.2.1 from 1.2.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_DPS310#11 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_DS18X20 to 1.3.2 from 1.3.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_DS18X20#20 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_DS2413 to 1.2.4 from 1.2.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_DS2413#22 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_DS3231 to 2.4.3 from 2.4.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_DS3231#33 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_DS3502 to 1.1.5 from 1.1.4:
  > Merge pull request adafruit/Adafruit_CircuitPython_DS3502#7 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_ESP_ATcontrol to 0.5.3 from 0.5.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_ESP_ATcontrol#38 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Fingerprint to 2.1.2 from 2.1.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_Fingerprint#26 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_FocalTouch to 1.2.3 from 1.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_FocalTouch#18 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_FRAM to 1.3.5 from 1.3.4:
  > Merge pull request adafruit/Adafruit_CircuitPython_FRAM#23 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_FXAS21002C to 2.1.5 from 2.1.4:
  > Merge pull request adafruit/Adafruit_CircuitPython_FXAS21002C#20 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_GPS to 3.6.7 from 3.6.6:
  > Merge pull request adafruit/Adafruit_CircuitPython_GPS#50 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_HT16K33 to 4.1.2 from 4.1.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_HT16K33#85 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_HTU21D to 0.10.3 from 0.10.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_HTU21D#13 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_HX8357 to 1.2.4 from 1.2.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_HX8357#14 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_ICM20X to 2.0.4 from 2.0.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_ICM20X#11 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_IL0398 to 1.1.3 from 1.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_IL0398#10 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_IL91874 to 1.1.2 from 1.1.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_IL91874#10 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_ILI9341 to 1.2.4 from 1.2.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_ILI9341#25 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_INA219 to 3.4.7 from 3.4.6:
  > Merge pull request adafruit/Adafruit_CircuitPython_INA219#28 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_INA260 to 1.2.5 from 1.2.4:
  > Merge pull request adafruit/Adafruit_CircuitPython_INA260#16 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_IRRemote to 4.0.2 from 4.0.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_IRRemote#41 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_IS31FL3731 to 2.6.6 from 2.6.5:
  > Merge pull request adafruit/Adafruit_CircuitPython_IS31FL3731#34 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_L3GD20 to 2.3.2 from 2.3.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_L3GD20#21 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_LIDARLite to 1.2.3 from 1.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_LIDARLite#13 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_LIS2MDL to 2.1.6 from 2.1.5:
  > Merge pull request adafruit/Adafruit_CircuitPython_LIS2MDL#11 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_LIS331 to 1.0.2 from 1.0.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_LIS331#1 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_LIS3DH to 5.1.7 from 5.1.6:
  > Merge pull request adafruit/Adafruit_CircuitPython_LIS3DH#66 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_LIS3MDL to 1.1.7 from 1.1.6:
  > Merge pull request adafruit/Adafruit_CircuitPython_LIS3MDL#15 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_LSM303_Accel to 1.1.4 from 1.1.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_LSM303_Accel#10 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_LSM303DLH_Mag to 1.1.4 from 1.1.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_LSM303DLH_Mag#10 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_LSM9DS0 to 2.2.4 from 2.2.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_LSM9DS0#21 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_MatrixKeypad to 1.2.3 from 1.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_MatrixKeypad#12 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_MAX31856 to 0.9.4 from 0.9.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_MAX31856#12 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_MAX31865 to 2.2.6 from 2.2.5:
  > Merge pull request adafruit/Adafruit_CircuitPython_MAX31865#25 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_MAX7219 to 1.3.2 from 1.3.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_MAX7219#30 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_MCP3xxx to 1.4.3 from 1.4.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_MCP3xxx#32 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_MCP4728 to 1.1.3 from 1.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_MCP4728#6 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_MCP9600 to 1.1.3 from 1.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_MCP9600#14 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_MCP9808 to 3.3.3 from 3.3.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_MCP9808#26 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_MLX90393 to 2.0.2 from 2.0.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_MLX90393#24 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_MLX90614 to 1.2.3 from 1.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_MLX90614#18 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_MLX90640 to 1.2.1 from 1.2.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_MLX90640#23 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_MPL115A2 to 1.1.4 from 1.1.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_MPL115A2#10 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_MPRLS to 1.2.4 from 1.2.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_MPRLS#14 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_MPU6050 to 1.1.4 from 1.1.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_MPU6050#12 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_NeoTre to 1.1.3 from 1.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_NeoTre#13 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Nunchuk to 0.2.3 from 0.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_Nunchuk#15 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_PCA9685 to 3.3.3 from 3.3.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_PCA9685#34 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_PCD8544 to 1.2.3 from 1.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_PCD8544#14 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Pixie to 1.2.3 from 1.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_Pixie#18 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_PM25 to 2.1.1 from 2.1.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_PM25#14 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_RA8875 to 3.1.3 from 3.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_RA8875#23 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_RFM9x to 2.1.1 from 2.1.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_RFM9x#58 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_RGB_Display to 3.10.4 from 3.10.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_RGB_Display#89 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_RockBlock to 1.3.0 from 1.2.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_RockBlock#17 from OperatorFoundation/fix-satellite_transfer
  > Merge pull request adafruit/Adafruit_CircuitPython_RockBlock#16 from OperatorFoundation/energy-monitor

Updating https://github.com/adafruit/Adafruit_CircuitPython_RPLIDAR to 1.1.4 from 1.1.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_RPLIDAR#13 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_SD to 3.3.2 from 3.3.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_SD#40 from adafruit/REUSE
  > Ran black, added one license
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Seesaw to 1.6.4 from 1.6.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_seesaw#56 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_SGP30 to 2.3.2 from 2.3.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_SGP30#32 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_SharpMemoryDisplay to 1.2.5 from 1.2.4:
  > Merge pull request adafruit/Adafruit_CircuitPython_SharpMemoryDisplay#16 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_SHT31D to 2.3.3 from 2.3.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_SHT31D#19 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_SI7021 to 3.2.3 from 3.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_SI7021#20 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_SSD1322 to 1.1.3 from 1.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_SSD1322#10 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_SSD1325 to 1.2.2 from 1.2.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_SSD1325#10 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_SSD1331 to 1.2.3 from 1.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_SSD1331#13 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_SSD1351 to 1.2.3 from 1.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_SSD1351#15 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_SSD1608 to 1.2.3 from 1.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_SSD1608#9 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_SSD1675 to 1.1.2 from 1.1.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_SSD1675#8 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_ST7735 to 1.1.3 from 1.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_ST7735#14 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_ST7735R to 1.3.3 from 1.3.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_ST7735R#20 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_ST7789 to 1.4.2 from 1.4.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_ST7789#19 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_STMPE610 to 1.2.3 from 1.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_STMPE610#15 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_TCA9548A to 0.3.3 from 0.3.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_TCA9548A#22 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_TCS34725 to 3.3.4 from 3.3.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_TCS34725#34 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_TFmini to 1.2.3 from 1.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_TFmini#9 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Thermal_Printer to 1.3.1 from 1.3.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_Thermal_Printer#22 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Thermistor to 3.3.3 from 3.3.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_Thermistor#15 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_TLC59711 to 1.2.4 from 1.2.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_TLC59711#15 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_TLV493D to 1.2.1 from 1.2.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_TLV493D#8 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_TMP007 to 2.1.3 from 2.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_TMP007#11 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Touchscreen to 1.1.3 from 1.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_Touchscreen#13 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_TPA2016 to 1.1.3 from 1.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_TPA2016#8 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_TrellisM4 to 1.5.3 from 1.5.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_TrellisM4#25 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_US100 to 1.1.3 from 1.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_US100#15 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_VC0706 to 4.2.1 from 4.2.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_VC0706#19 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_VCNL4040 to 1.2.3 from 1.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_VCNL4040#11 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_VEML7700 to 1.1.3 from 1.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_VEML7700#13 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_VL53L0X to 3.3.4 from 3.3.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_VL53L0X#24 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k to 1.7.0 from 1.6.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_Wiznet5k#28 from xorbit/master
  > Merge pull request adafruit/Adafruit_CircuitPython_Wiznet5k#29 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_WS2801 to 0.10.4 from 0.10.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_WS2801#19 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_GC_IOT_Core to 3.0.1 from 3.0.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_GC_IOT_Core#17 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_AVRprog to 1.3.3 from 1.3.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_AVRprog#19 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_binascii to 1.2.3 from 1.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_binascii#11 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_BitbangIO to 1.2.1 from 1.2.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_BitbangIO#15 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_BLE to 7.3.2 from 7.3.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_BLE#118 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_BLE_BroadcastNet to 0.10.3 from 0.10.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_BLE_BroadcastNet#17 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_BLE_Radio to 0.3.2 from 0.3.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_BLE_Radio#14 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_BLE_Apple_Media to 0.9.2 from 0.9.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_BLE_Apple_Media#9 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_BLE_Apple_Notification_Center to 0.9.3 from 0.9.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_BLE_Apple_Notification_Center#11 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_BLE_BerryMed_Pulse_Oximeter to 2.0.4 from 2.0.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_BLE_BerryMed_Pulse_Oximeter#7 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_BLE_Heart_Rate to 1.1.5 from 1.1.4:
  > Merge pull request adafruit/Adafruit_CircuitPython_BLE_Heart_Rate#12 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_BLE_Magic_Light to 0.9.5 from 0.9.4:
  > Merge pull request adafruit/Adafruit_CircuitPython_BLE_Magic_Light#7 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_BLE_MIDI to 1.0.2 from 1.0.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_BLE_MIDI#5 from adafruit/dherrada-patch-1
  > Added pre-commit-config file

Updating https://github.com/adafruit/Adafruit_CircuitPython_BluefruitConnect to 1.1.6 from 1.1.5:
  > Merge pull request adafruit/Adafruit_CircuitPython_BluefruitConnect#26 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_BoardTest to 1.2.3 from 1.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_BoardTest#14 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_BusDevice to 5.0.4 from 5.0.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_BusDevice#64 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_CursorControl to 2.2.3 from 2.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_CursorControl#22 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Debug_I2C to 1.2.1 from 1.2.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_Debug_I2C#8 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Display_Notification to 0.9.2 from 0.9.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_Display_Notification#7 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_FancyLED to 1.4.3 from 1.4.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_FancyLED#23 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_FeatherWing to 1.13.2 from 1.13.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_FeatherWing#67 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Gizmo to 1.2.3 from 1.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_Gizmo#14 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Hue to 1.1.2 from 1.1.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_Hue#13 from adafruit/dherrada-patch-1
  > Added pre-commit-config file

Updating https://github.com/adafruit/Adafruit_CircuitPython_JWT to 1.2.1 from 1.2.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_JWT#9 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_LIFX to 1.1.2 from 1.1.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_LIFX#9 from adafruit/dherrada-patch-1
  > Added pre-commit-config file

Updating https://github.com/adafruit/Adafruit_CircuitPython_Logging to 1.2.5 from 1.2.4:
  > Merge pull request adafruit/Adafruit_CircuitPython_Logging#16 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_MIDI to 1.3.1 from 1.3.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_MIDI#29 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_miniesptool to 0.2.7 from 0.2.6:
  > Merge pull request adafruit/Adafruit_CircuitPython_miniesptool#26 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT to 4.0.2 from 4.0.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_MiniMQTT#56 from flavio-fernandes/fix_pyportal_example
  > Merge pull request adafruit/Adafruit_CircuitPython_MiniMQTT#53 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_miniQR to 1.3.3 from 1.3.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_miniQR#17 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Motor to 3.2.4 from 3.2.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_Motor#50 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_NTP to 2.2.1 from 2.2.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_NTP#15 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_OneWire to 1.2.4 from 1.2.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_OneWire#22 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_PyBadger to 3.2.1 from 3.2.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_PyBadger#40 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_PYOA to 2.2.2 from 2.2.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_PYOA#22 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Pypixelbuf to 2.2.1 from 2.2.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_Pypixelbuf#28 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Register to 1.9.2 from 1.9.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_Register#41 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Requests to 1.9.3 from 1.9.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_Requests#60 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_RGBLED to 1.1.2 from 1.1.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_RGBLED#14 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_RTTTL to 2.4.3 from 2.4.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_RTTTL#22 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_ServoKit to 1.3.1 from 1.3.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_ServoKit#26 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Slideshow to 1.5.4 from 1.5.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_Slideshow#34 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_turtle to 2.1.3 from 2.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_turtle#23 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_Waveform to 1.3.4 from 1.3.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_Waveform#20 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright

Updating https://github.com/adafruit/Adafruit_CircuitPython_WSGI to 1.1.2 from 1.1.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_WSGI#8 from adafruit/REUSE
  > Added pre-commit-config file
  > Added pre-commit and SPDX copyright
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants