@@ -4,6 +4,58 @@ Here you can find a list of migration guides to handle breaking changes between
44
55## 0.28.0  
66
7+ ### Breaking changes in libraries name handling  
8+ 
9+ In the structure ` github.com/arduino/arduino-cli/arduino/libraries.Library `  the field:
10+ 
11+ -  ` RealName `  has been renamed to ` Name ` 
12+ -  ` Name `  has been renamed to ` CanonicalName ` 
13+ 
14+ Now ` Name `  is the name of the library as it appears in the ` library.properties `  file and ` CanonicalName `  it's the name
15+ of the directory containing the library. The ` CanonicalName `  is usually the name of the library with non-alphanumeric
16+ characters converted to underscore, but it could be actually anything since the directory where the library is installed
17+ can be freely renamed.
18+ 
19+ This change improves the overall code base naming coherence since all the structures involving libraries have the ` Name ` 
20+ field that refers to the library name as it appears in the ` library.properties `  file.
21+ 
22+ ### ` github.com/arduino/arduino-cli/arduino/libraries/librariesmanager.LibrariesManager.Install `  removed parameter ` installLocation `  
23+ 
24+ The method:
25+ 
26+ ``` go 
27+ func  (lm  *LibrariesManager ) Install  (indexLibrary  *librariesindex .Release , libPath  *paths .Path , installLocation  libraries .LibraryLocation ) error  { ... }
28+ ``` 
29+ 
30+ no more needs the ` installLocation `  parameter:
31+ 
32+ ``` go 
33+ func  (lm  *LibrariesManager ) Install  (indexLibrary  *librariesindex .Release , libPath  *paths .Path ) error  { ... }
34+ ``` 
35+ 
36+ The install location is determined from the libPath.
37+ 
38+ ### ` github.com/arduino/arduino-cli/arduino/libraries/librariesmanager.LibrariesManager.FindByReference `  now returns a list of libraries. 
39+ 
40+ The method:
41+ 
42+ ``` go 
43+ func  (lm  *LibrariesManager ) FindByReference  (libRef  *librariesindex .Reference , installLocation  libraries .LibraryLocation ) *libraries .Library  { ... }
44+ ``` 
45+ 
46+ has been changed to:
47+ 
48+ ``` go 
49+ func  (lm  *LibrariesManager ) FindByReference  (libRef  *librariesindex .Reference , installLocation  libraries .LibraryLocation ) libraries .List  { ... }
50+ ``` 
51+ 
52+ the method now returns all the libraries matching the criteria and not just the first one.
53+ 
54+ ### ` github.com/arduino/arduino-cli/arduino/libraries/librariesmanager.LibraryAlternatives `  removed 
55+ 
56+ The structure ` librariesmanager.LibraryAlternatives `  has been removed. The ` libraries.List `  object can be used as a
57+ replacement.
58+ 
759### Breaking changes in UpdateIndex API (both gRPC and go-lang)  
860
961The gRPC message ` cc.arduino.cli.commands.v1.UpdateIndexResponse `  has been changed from:
0 commit comments