Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

arduino-cli lib search should display nearest names #107

Closed
s-celles opened this issue Jan 5, 2019 · 9 comments · Fixed by #598
Closed

arduino-cli lib search should display nearest names #107

s-celles opened this issue Jan 5, 2019 · 9 comments · Fixed by #598
Labels
type: enhancement Proposed improvement

Comments

@s-celles
Copy link

s-celles commented Jan 5, 2019

Hello,

Currently arduino-cli can find a library when searched name match exactly lib name (lowercased):

$ ./arduino-cli lib search ArduinoJSON
Name: "ArduinoJson"
  Author:  Benoit Blanchon <blog.benoitblanchon.fr>
  Maintainer:  Benoit Blanchon <blog.benoitblanchon.fr>
  Sentence:  An efficient and elegant JSON library for Arduino.
  Paragraph:  ArduinoJson supports ✔ serialization, ✔ deserialization, ✔ MessagePack, ✔ fixed allocation, ✔ zero-copy, ✔ streams, and more. It is the most popular Arduino library on GitHub ❤❤❤❤❤. Check out arduinojson.org for a comprehensive documentation.
  Website:  https://arduinojson.org/?utm_source=meta&utm_medium=library.properties
  Category:  Data Processing
  Architecture:  *
  Types:  Contributed
  Versions:  [4.0.0, 5.0.0, 5.0.1, 5.0.2, 5.0.3, 5.0.4, 5.0.5, 5.0.6, 5.0.7, 5.0.8, 5.1.0-beta.1, 5.1.0-beta.2, 5.1.0, 5.1.1, 5.2.0, 5.3.0, 5.4.0, 5.5.0, 5.5.1, 5.6.0, 5.6.1, 5.6.2, 5.6.3, 5.6.4, 5.6.5, 5.6.6, 5.6.7, 5.7.0, 5.7.1, 5.7.2, 5.7.3, 5.8.0, 5.8.1, 5.8.2, 5.8.3, 5.8.4, 5.9.0, 5.10.0, 5.10.1, 5.11.0, 5.11.1, 5.11.2, 5.12.0, 5.13.0, 5.13.1, 5.13.2, 5.13.3, 5.13.4, 6.0.0-beta, 6.0.1-beta, 6.1.0-beta, 6.2.0-beta, 6.2.1-beta, 6.2.2-beta, 6.2.3-beta, 6.3.0-beta, 6.4.0-beta, 6.5.0-beta, 6.6.0-beta, 6.7.0-beta]

But not when it's slightly different

$ ./arduino-cli lib search ArduinoJason
No library found matching `arduinojason` search query

Maybe Arduino CLI could find nearest library named (or 5 nearest library name)

$ ./arduino-cli lib search ArduinoJason
No library found matching `arduinojason` search query
Did you mean?
ArduinoJson
...

I did something quite similar in https://github.com/scls19fr/arduino_libraries_search/blob/master/utils.py#L110-L127

using a similarity measurement named Sørensen–Dice coefficient

Other metrics / edit distance may be considered
https://en.wikipedia.org/wiki/String_metric

Kind regards

PS : quite similar to this Julia Pkg issue JuliaLang/Pkg.jl#616
PS2 : https://github.com/danieldk/editdistance may help because it implements Levenshtein algorithm in Go

@flatsiedatsie
Copy link

Duplicate: #104

@flatsiedatsie
Copy link

It seems this has been fixed.

@per1234
Copy link
Contributor

per1234 commented May 24, 2019

@flatsiedatsie which version of arduino-cli are you using? I still get no search results from arduino-cli lib search ArduinoJason using either the tip of the master branch on arduino/arduino-cli or the tip of the daemon branch on cmaglie/arduino-cli.

@per1234 per1234 added the type: enhancement Proposed improvement label May 24, 2019
@flatsiedatsie
Copy link

@per1234 You're right, I get the same result on that query. But I don't get any results for ArduinoJason in the Arduino IDE either? I'm using the latest compiled alpha that I downloaded from Github.

@per1234
Copy link
Contributor

per1234 commented May 30, 2019

But I don't get any results for ArduinoJason in the Arduino IDE either?

That's correct. Unlike your #104, which is only asking that the search behavior made to work the same as in the Arduino IDE's Library Manager, this issue is a request for an enhancement of the search behavior beyond what is provided by the Arduino IDE.

@masci
Copy link
Contributor

masci commented Dec 19, 2019

This library should ease the implementation of this feature a lot https://github.com/imjasonmiller/godice

@s-celles
Copy link
Author

s-celles commented Apr 2, 2020

Thanks @rsora

@s-celles
Copy link
Author

s-celles commented Apr 2, 2020

Thanks @BigHeadGeorge

per1234 added a commit that referenced this issue Nov 16, 2020
Simplifying README and bringing it up-2-date
@giripriyadarshan
Copy link

Also, please make the search whitespace friendly probably.

Because, if I search with proper whitespace, then the search result is perfect

> arduino-cli lib search painless mesh
Updating index: library_index.json downloaded                                   
Name: "Painless Mesh"
  Author: Coopdis,Scotty Franzyshen,Edwin van Leeuwen,Germán Martín,Maximilian Schwarz,Doanh Doanh
  Maintainer: Edwin van Leeuwen
  Sentence: A painless way to setup a mesh with ESP8266 and ESP32 devices
  Paragraph: A painless way to setup a mesh with ESP8266 and ESP32 devices
  Website: https://gitlab.com/painlessMesh/painlessMesh
  Category: Communication
  Architecture: esp8266, esp32
  Types: Contributed
  Versions: [0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.2.0, 0.2.1, 0.5.0, 0.5.4, 0.6.0, 0.6.1, 0.6.2, 0.6.3, 0.6.5, 0.7.0, 1.0.0, 1.0.2, 1.0.3, 1.1.0, 1.1.1, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 1.2.7, 1.2.8, 1.3.0, 1.3.1, 1.3.2, 1.3.3, 1.4.0, 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.4.5, 1.4.6, 1.4.7]
  Provides includes: painlessMesh.h
  Dependencies: ArduinoJson, TaskScheduler

But if i forget the whitespace and search for the header file instead

> arduino-cli lib search painlessmesh 
Updating index: library_index.json downloaded                                   
No libraries matching your search.

The header file of that library says painlessMesh.h but still the search has no match

per1234 added a commit that referenced this issue Aug 9, 2021
Rename tool to final name: arduino-lint
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: enhancement Proposed improvement
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants