Closed ladyada closed 5 years ago
Should be simple enough. Should. :smile:
First thing to solidify is getting an accurate listing of Adafruit Arduino libs from GitHub. After that, bouncing the release tag against library.properties
should be trivial.
@ladyada, question to ponder in the meantime: do you want Adabot to fix any discrepancies, or just report them?
Links scratchpad:
Warning: Long List Incoming
Got the repo list below, using these github search parameters: arduino
in:name,description
user:adafruit
.
Not sure if there is an easy way to validate this list...
(.env) sommersoft@thespacebetween:~/Dev/adabot/adabot$ python3 -m adabot.arduino_libraries
Found 145 Adafruit Arduino repos:
['USB-Boarduino', 'Screwshield', 'Adafruit-Motor-Shield-for-Arduino', 'TFTshield', 'Custom-Magstripe-Swiper']
['SD-card-testing-jig', 'SDWebBrowse', 'IR-Commander', 'ArduinoISP', 'Flora-TV-B-Gone']
['USB-NeXT-Keyboard', 'Cryptosuite', 'Adafruit-Tweet-Receipt', 'piccolo', 'Adafruit-Music-Maker-MP3-Shield-PCB']
['toolchain-avr', 'pubsubclient', 'adafruit-arduino-proxy', 'ESP8266-Arduino', 'Arduino_Library_Github_Tools']
['ST7565-LCD', 'Flora_Demos', 'Feather_Holiday_Lights', 'Adafruit-Flora-Pixel-Library', 'Adafruit_TLC5947']
['Adafruit_SoftServo', 'Adafruit_TinyFlash', 'CC3000_MDNS', 'Adafruit-TPA2016-Library', 'MAX31850_DallasTemp']
['Adafruit_BMP183_Unified_Library', 'Adafruit-Si4713-Library', 'Pro_Trinket_USB_Keyboard_Library', 'Adafruit_HDC1000_Library', 'Adafruit_Pixie']
['Circuit-Playground-Arduino', 'Adafruit_RTD266X_I2CFlasher', 'ArduinoTap', 'SD', 'Data-Logger-shield']
['NeoPixel_Painter', 'Trinket_Arduino_Linux', 'Reference-Cards', 'Sous_Viduino', 'Talkie']
['Adafruit_TMP007_Library', 'Adafruit_Curie_Bot', 'arduino-esp32', 'HT1632', 'Hunt-The-Wumpus']
['Circuit_Walker_Sneakers', 'Adafruit-VCNL40X0-PCB', 'Adafruit-Trinket-USB', 'Adafruit_LSM9DS0_Library', 'Adafruit_STMPE610']
['ArduinoModule-CMSIS-Atmel', 'Adafruit_WICED_Arduino', 'Adafruit_SHARP_Memory_Display', 'STEMMA_LiquidCrystal', 'Adafruit_TiCoServo']
['Adafruit_Trellis_Library', 'MAX31850_OneWire', 'Adafruit_CAP1188_Library', 'Adafruit_Soundboard_library', 'Adafruit_VCNL4010']
['Adafruit_SI1145_Library', 'Adafruit_FT6206_Library', 'LPD8806', 'Adafruit-MCP23017-Arduino-Library', 'Adafruit_MCP9808_Library']
['Feedback-Servo-Record-and-Play', 'TSL2561-Arduino-Library', 'Adafruit_Microbit', 'Adafruit-MCP23008-library', 'Adafruit_IS31FL3731']
['Adafruit_DHT_Unified', 'Adafruit_RA8875', 'Adafruit_Lightship', 'Adafruit_MAX31865', 'Arduino-IRremote']
['Adafruit_AS726x', 'Adafruit_ZeroPDM', 'Adafruit_MMA8451_Library', 'Adafruit_TouchScreen', 'Standalone-Arduino-AVR-ISP-programmer']
['TinyWireM', 'RGB-matrix-Panel', 'Adafruit_SGP30', 'Adafruit-SSD1331-OLED-Driver-Library-for-Arduino', 'FifteenStep']
['Adafruit-MLX90614-Library', 'Adafruit-Motor-Shield-library', 'Adafruit_VEML6070', 'Adafruit_CCS811', 'Adafruit_MP3']
['Adafruit_Arduino_Boards', 'Adafruit_BME280_Library', 'WaveHC', 'Adafruit_EPD', 'Adafruit_nRF52_Arduino_Bootloader']
['Adafruit_TSL2591_Library', 'Adafruit_MQTT_Library', 'Adafruit_APDS9960', 'MAX6675-library', 'Adafruit_remoteFXTrigger']
['arduino-lmic', 'Adafruit_FONA', 'Adafruit-Proto-Shield-PCB', 'Adafruit_LIS3DH', 'Adafruit-WS2801-Library']
['Adafruit_BluefruitLE_nRF51', 'Adafruit_MPRLS', 'Adafruit_VEML6075', 'TFTLCD-Library', 'DHT-sensor-library']
['Adafruit-Thermal-Printer-Library', 'Adafruit_MPR121', 'Adafruit_VL53L0X', 'Adafruit_AM2320', 'Adafruit_HTU21DF_Library']
['RadioHead', 'Adafruit_MPL3115A2_Library', 'Adafruit-PCD8544-Nokia-5110-LCD-library', 'Adafruit_DRV2605_Library', 'Adafruit-PN532']
['travis-ci-arduino', 'Adafruit_ZeroDMA', 'Adafruit_NeoPixel_ZeroDMA', 'Adafruit_ZeroI2S', 'Raw-IR-decoder-for-Arduino']
['Adafruit_BMP280_Library', 'Adafruit_Si7021', 'Adafruit_SHT31', 'Adafruit_CircuitPython_FancyLED', 'Adafruit_IO_Arduino']
['Adafruit-Fingerprint-Sensor-Library', 'arduino-board-index', 'Adafruit_MAX31856', 'Adafruit_SleepyDog', 'Adafruit_Seesaw']
['Adafruit_VL6180X', 'Adafruit_Keypad', 'ArduinoCore-samd', 'Adafruit_nRF52_Arduino', 'Adafruit_SSD1306']
Adding in:readme
to the search parameters gives more results (212 at the moment), but included things like the circuitpython repo.
Any "extras" can be filtered out later by processing only repos with the library.properties
file, so its not a deal breaker either way.
hmm yeah some are Arduino libraries but many arn't. i'd look for an 'examples' folder OR a library.properties file!
Bones are there:
(.env) sommersoft@thespacebetween:~/Dev/adabot/adabot$ python3 -m adabot.arduino_libraries
HL1606-LED-Strip-PWM Results - library.properties version: 1.0.0 | repo release tag: 1.0.0
Adafruit-HX8340B Results - library.properties version: 1.0.0 | repo release tag: 1.0.0
Adafruit-Flora-Pixel-Library Results - library.properties version: 1.0.0 | repo release tag: 1.0.0
Adafruit_TLC5947 Results - library.properties version: 1.0.2 | repo release tag: 1.0.2
Adafruit_SoftServo Results - library.properties version: 1.0.0 | repo release tag: 1.0.0
Adafruit_TinyFlash Results - library.properties version: 1.0.0 | repo release tag: 1.0.0
CC3000_MDNS Results - library.properties version: 1.0.0 | repo release tag: 1.0.0
Adafruit-TPA2016-Library Results - library.properties version: 1.0.0 | repo release tag: 1.0.0
What sort of format do you want for an output? Just a list of "failures" like the circuitpython_libraries
report, or more in-depth like above?
in depth would be great! three differnet reports: one "repos with commits w/o release" (need to release) and "repos with release that doesn't match library.properties" and "repos without any releases"
"repos with release that doesn't match library.properties" and "repos without any releases"
This will flesh out in the same report. Well, if the repo has library.properties version=
and no release, the release can be shown as None
.
"repos with commits w/o release"
Adding this one as a separate report/validator is doable. I just need to re-factor when the library list is currently narrowed down.
yep! its ok if not all of the reports exist at once, just giving you the Dream Report
@ladyada, Dream Report (v1) complete. also added it to the daily adabot run on Travis, which will dump the output into the AWS bucket.
adruino library manager is picky - the release number must match the library.properties file and the prop file must be updated before the release, otherwise stuff breaks. this happens often enough, we should add a check to adabot!