Skip to content

Commit 82baaf6

Browse files
committed
Merge branch 'master' into arduifine
2 parents 008c75d + 16f4135 commit 82baaf6

35 files changed

+841
-92
lines changed

Diff for: .github/workflows/arduino-stats.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
# Fetch jq 1.6 as VM has only 1.5 ATM
2929
wget -q https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 -O jq
3030
chmod +x jq
31-
PATH=${{ github.workspace }}:$PATH
31+
PATH="${{ github.workspace }}:$PATH"
3232
.github/tools/fetch_athena_stats.sh
3333
3434
- name: Send metrics

Diff for: .github/workflows/i18n-nightly-push.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
go-version: "1.14"
2222

2323
- name: Install Taskfile
24-
uses: Arduino/actions/setup-taskfile@master
24+
uses: arduino/setup-task@v1
2525
with:
2626
repo-token: ${{ secrets.GITHUB_TOKEN }}
2727
version: 3.x

Diff for: .github/workflows/i18n-weekly-pull.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
go get github.com/cmaglie/go.rice/rice
2626
2727
- name: Install Taskfile
28-
uses: Arduino/actions/setup-taskfile@master
28+
uses: arduino/setup-task@v1
2929
with:
3030
repo-token: ${{ secrets.GITHUB_TOKEN }}
3131
version: 3.x

Diff for: .github/workflows/link-validation.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
fetch-depth: 1
1818

1919
- name: Install Taskfile
20-
uses: Arduino/actions/setup-taskfile@master
20+
uses: arduino/setup-task@v1
2121
with:
2222
repo-token: ${{ secrets.GITHUB_TOKEN }}
2323
version: 3.x

Diff for: .github/workflows/nightly.yaml

+9-9
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
fetch-depth: 0
2020

2121
- name: Install Taskfile
22-
uses: arduino/actions/setup-taskfile@master
22+
uses: arduino/setup-task@v1
2323
with:
2424
repo-token: ${{ secrets.GITHUB_TOKEN }}
2525
version: 3.x
@@ -55,12 +55,12 @@ jobs:
5555
KEYCHAIN: "sign.keychain"
5656
INSTALLER_CERT_MAC_PATH: "/tmp/ArduinoCerts2020.p12"
5757
run: |
58-
echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode > ${{ env.INSTALLER_CERT_MAC_PATH }}
59-
security create-keychain -p ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }}
60-
security default-keychain -s ${{ env.KEYCHAIN }}
61-
security unlock-keychain -p ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }}
62-
security import ${{ env.INSTALLER_CERT_MAC_PATH }} -k ${{ env.KEYCHAIN }} -f pkcs12 -A -T /usr/bin/codesign -P ${{ secrets.INSTALLER_CERT_MAC_PASSWORD }}
63-
security set-key-partition-list -S apple-tool:,apple: -s -k ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }}
58+
echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode > "${{ env.INSTALLER_CERT_MAC_PATH }}"
59+
security create-keychain -p "${{ secrets.KEYCHAIN_PASSWORD }}" "${{ env.KEYCHAIN }}"
60+
security default-keychain -s "${{ env.KEYCHAIN }}"
61+
security unlock-keychain -p "${{ secrets.KEYCHAIN_PASSWORD }}" "${{ env.KEYCHAIN }}"
62+
security import "${{ env.INSTALLER_CERT_MAC_PATH }}" -k "${{ env.KEYCHAIN }}" -f pkcs12 -A -T /usr/bin/codesign -P "${{ secrets.INSTALLER_CERT_MAC_PASSWORD }}"
63+
security set-key-partition-list -S apple-tool:,apple: -s -k "${{ secrets.KEYCHAIN_PASSWORD }}" "${{ env.KEYCHAIN }}"
6464
6565
- name: Install gon for code signing and app notarization
6666
run: |
@@ -83,10 +83,10 @@ jobs:
8383
# so we need to add execution permission back until @v2 actions are released.
8484
chmod +x dist/arduino-cli_osx_darwin_amd64/arduino-cli
8585
PACKAGE_FILENAME="$(basename dist/arduino-cli_${{ github.workflow }}-*_macOS_64bit.tar.gz)"
86-
tar -czvf dist/$PACKAGE_FILENAME \
86+
tar -czvf "dist/$PACKAGE_FILENAME" \
8787
-C dist/arduino-cli_osx_darwin_amd64/ arduino-cli \
8888
-C ../../ LICENSE.txt
89-
CLI_CHECKSUM=$(shasum -a 256 dist/$PACKAGE_FILENAME | cut -d " " -f 1)
89+
CLI_CHECKSUM="$(shasum -a 256 "dist/$PACKAGE_FILENAME" | cut -d " " -f 1)"
9090
perl -pi -w -e "s/.*${PACKAGE_FILENAME}/${CLI_CHECKSUM} ${PACKAGE_FILENAME}/g;" dist/*-checksums.txt
9191
9292
- name: Upload artifacts

Diff for: .github/workflows/publish-docs.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
uses: actions/checkout@v2
4545

4646
- name: Install Taskfile
47-
uses: Arduino/actions/setup-taskfile@master
47+
uses: arduino/setup-task@v1
4848
with:
4949
repo-token: ${{ secrets.GITHUB_TOKEN }}
5050
version: 3.x

Diff for: .github/workflows/python-lint.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
uses: actions/checkout@v2
2121

2222
- name: Install Taskfile
23-
uses: Arduino/actions/setup-taskfile@master
23+
uses: arduino/setup-task@v1
2424
with:
2525
repo-token: ${{ secrets.GITHUB_TOKEN }}
2626
version: 3.x

Diff for: .github/workflows/release.yaml

+13-13
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
changelog-file-path: "dist/CHANGELOG.md"
2525

2626
- name: Install Taskfile
27-
uses: arduino/actions/setup-taskfile@master
27+
uses: arduino/setup-task@v1
2828
with:
2929
repo-token: ${{ secrets.GITHUB_TOKEN }}
3030
version: 3.x
@@ -58,12 +58,12 @@ jobs:
5858
KEYCHAIN: "sign.keychain"
5959
INSTALLER_CERT_MAC_PATH: "/tmp/ArduinoCerts2020.p12"
6060
run: |
61-
echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode > ${{ env.INSTALLER_CERT_MAC_PATH }}
62-
security create-keychain -p ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }}
63-
security default-keychain -s ${{ env.KEYCHAIN }}
64-
security unlock-keychain -p ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }}
65-
security import ${{ env.INSTALLER_CERT_MAC_PATH }} -k ${{ env.KEYCHAIN }} -f pkcs12 -A -T /usr/bin/codesign -P ${{ secrets.INSTALLER_CERT_MAC_PASSWORD }}
66-
security set-key-partition-list -S apple-tool:,apple: -s -k ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }}
61+
echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode > "${{ env.INSTALLER_CERT_MAC_PATH }}"
62+
security create-keychain -p "${{ secrets.KEYCHAIN_PASSWORD }}" "${{ env.KEYCHAIN }}"
63+
security default-keychain -s "${{ env.KEYCHAIN }}"
64+
security unlock-keychain -p "${{ secrets.KEYCHAIN_PASSWORD }}" "${{ env.KEYCHAIN }}"
65+
security import "${{ env.INSTALLER_CERT_MAC_PATH }}" -k "${{ env.KEYCHAIN }}" -f pkcs12 -A -T /usr/bin/codesign -P "${{ secrets.INSTALLER_CERT_MAC_PASSWORD }}"
66+
security set-key-partition-list -S apple-tool:,apple: -s -k "${{ secrets.KEYCHAIN_PASSWORD }}" "${{ env.KEYCHAIN }}"
6767
6868
- name: Install gon for code signing and app notarization
6969
run: |
@@ -85,11 +85,11 @@ jobs:
8585
# GitHub's upload/download-artifact@v1 actions don't preserve file permissions,
8686
# so we need to add execution permission back until @v2 actions are released.
8787
chmod +x dist/arduino-cli_osx_darwin_amd64/arduino-cli
88-
TAG=${GITHUB_REF/refs\/tags\//}
89-
tar -czvf dist/arduino-cli_${TAG}_macOS_64bit.tar.gz \
88+
TAG="${GITHUB_REF/refs\/tags\//}"
89+
tar -czvf "dist/arduino-cli_${TAG}_macOS_64bit.tar.gz" \
9090
-C dist/arduino-cli_osx_darwin_amd64/ arduino-cli \
9191
-C ../../ LICENSE.txt
92-
CLI_CHECKSUM=$(shasum -a 256 dist/arduino-cli_${TAG}_macOS_64bit.tar.gz | cut -d " " -f 1)
92+
CLI_CHECKSUM="$(shasum -a 256 "dist/arduino-cli_${TAG}_macOS_64bit.tar.gz" | cut -d " " -f 1)"
9393
perl -pi -w -e "s/.*arduino-cli_${TAG}_macOS_64bit.tar.gz/${CLI_CHECKSUM} arduino-cli_${TAG}_macOS_64bit.tar.gz/g;" dist/*-checksums.txt
9494
9595
- name: Upload artifacts
@@ -116,11 +116,11 @@ jobs:
116116
- name: Read CHANGELOG
117117
id: changelog
118118
run: |
119-
body=$(cat dist/CHANGELOG.md)
119+
body="$(cat dist/CHANGELOG.md)"
120120
body="${body//'%'/'%25'}"
121121
body="${body//$'\n'/'%0A'}"
122122
body="${body//$'\r'/'%0D'}"
123-
echo $body
123+
echo "$body"
124124
echo "::set-output name=BODY::$body"
125125
126126
- name: Identify Prerelease
@@ -130,7 +130,7 @@ jobs:
130130
run: |
131131
wget -q -P /tmp https://github.com/fsaintjacques/semver-tool/archive/3.0.0.zip
132132
unzip -p /tmp/3.0.0.zip semver-tool-3.0.0/src/semver >/tmp/semver && chmod +x /tmp/semver
133-
if [[ $(/tmp/semver get prerel ${GITHUB_REF/refs\/tags\//}) ]]; then echo "::set-output name=IS_PRE::true"; fi
133+
if [[ "$(/tmp/semver get prerel "${GITHUB_REF/refs\/tags\//}")" ]]; then echo "::set-output name=IS_PRE::true"; fi
134134
135135
- name: Create Github Release
136136
id: create_release

Diff for: .github/workflows/test.yaml

+2-8
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
shell: bash
3737

3838
- name: Install Taskfile
39-
uses: Arduino/actions/setup-taskfile@master
39+
uses: arduino/setup-task@v1
4040
with:
4141
repo-token: ${{ secrets.GITHUB_TOKEN }}
4242
version: 3.x
@@ -124,7 +124,7 @@ jobs:
124124
fetch-depth: 0
125125

126126
- name: Install Taskfile
127-
uses: arduino/actions/setup-taskfile@master
127+
uses: arduino/setup-task@v1
128128
with:
129129
repo-token: ${{ secrets.GITHUB_TOKEN }}
130130
version: 3.x
@@ -182,12 +182,6 @@ jobs:
182182
name: Linux_ARM64
183183
path: dist/*Linux_ARM64.tar.gz
184184

185-
- name: Upload Linux ARM64 bit artifact
186-
uses: actions/upload-artifact@v2
187-
with:
188-
name: Linux_ARM64
189-
path: dist/*Linux_ARM64.tar.gz
190-
191185
- name: Upload MacOS 64 bit artifact
192186
uses: actions/upload-artifact@v2
193187
with:

Diff for: .github/workflows/validate-docs.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
uses: actions/checkout@v2
3232

3333
- name: Install Taskfile
34-
uses: Arduino/actions/setup-taskfile@master
34+
uses: arduino/setup-task@v1
3535
with:
3636
repo-token: ${{ secrets.GITHUB_TOKEN }}
3737
version: 3.x

Diff for: .github/workflows/verify-formatting.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
uses: actions/checkout@v2
2626

2727
- name: Install Taskfile
28-
uses: Arduino/actions/setup-taskfile@master
28+
uses: arduino/setup-task@v1
2929
with:
3030
repo-token: ${{ secrets.GITHUB_TOKEN }}
3131
version: 3.x

Diff for: arduino/builder/builder_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ func tmpDirOrDie() string {
3636
}
3737

3838
func TestGenBuildPath(t *testing.T) {
39-
want := filepath.Join(os.TempDir(), "arduino-sketch-ACBD18DB4CC2F85CEDEF654FCCC4A4D8")
40-
assert.Equal(t, want, builder.GenBuildPath(paths.New("foo")).String())
39+
want := paths.TempDir().Join("arduino-sketch-ACBD18DB4CC2F85CEDEF654FCCC4A4D8")
40+
assert.True(t, builder.GenBuildPath(paths.New("foo")).EquivalentTo(want))
4141

42-
want = filepath.Join(os.TempDir(), "arduino-sketch-D41D8CD98F00B204E9800998ECF8427E")
43-
assert.Equal(t, want, builder.GenBuildPath(nil).String())
42+
want = paths.TempDir().Join("arduino-sketch-D41D8CD98F00B204E9800998ECF8427E")
43+
assert.True(t, builder.GenBuildPath(nil).EquivalentTo(want))
4444
}
4545

4646
func TestEnsureBuildPathExists(t *testing.T) {

Diff for: arduino/libraries/librariesmanager/download.go

+6-9
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,13 @@ package librariesmanager
1717

1818
import (
1919
"net/url"
20-
21-
"go.bug.st/downloader/v2"
2220
)
2321

24-
// LibraryIndexURL is the URL where to get library index.
22+
// LibraryIndexURL is the URL where to get the library index.
2523
var LibraryIndexURL, _ = url.Parse("https://downloads.arduino.cc/libraries/library_index.json")
2624

27-
// UpdateIndex downloads the libraries index file from Arduino repository.
28-
func (lm *LibrariesManager) UpdateIndex(config *downloader.Config) (*downloader.Downloader, error) {
29-
lm.IndexFile.Parent().MkdirAll()
30-
// TODO: Download from gzipped URL index
31-
return downloader.DownloadWithConfig(lm.IndexFile.String(), LibraryIndexURL.String(), *config, downloader.NoResume)
32-
}
25+
// LibraryIndexGZURL is the URL where to get the gzipped library index.
26+
var LibraryIndexGZURL, _ = url.Parse("https://downloads.arduino.cc/libraries/library_index.json.gz")
27+
28+
// LibraryIndexSignature is the URL where to get the library index signature.
29+
var LibraryIndexSignature, _ = url.Parse("https://downloads.arduino.cc/libraries/library_index.json.sig")

Diff for: arduino/libraries/librariesmanager/librariesmanager.go

+11-8
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,10 @@ type LibrariesManager struct {
3535
LibrariesDir []*LibrariesDir
3636
Libraries map[string]*LibraryAlternatives `json:"libraries"`
3737

38-
Index *librariesindex.Index
39-
IndexFile *paths.Path
40-
DownloadsDir *paths.Path
38+
Index *librariesindex.Index
39+
IndexFile *paths.Path
40+
IndexFileSignature *paths.Path
41+
DownloadsDir *paths.Path
4142
}
4243

4344
// LibrariesDir is a directory containing libraries
@@ -95,15 +96,17 @@ func (lm LibrariesManager) Names() []string {
9596

9697
// NewLibraryManager creates a new library manager
9798
func NewLibraryManager(indexDir *paths.Path, downloadsDir *paths.Path) *LibrariesManager {
98-
var indexFile *paths.Path
99+
var indexFile, indexFileSignature *paths.Path
99100
if indexDir != nil {
100101
indexFile = indexDir.Join("library_index.json")
102+
indexFileSignature = indexDir.Join("library_index.json.sig")
101103
}
102104
return &LibrariesManager{
103-
Libraries: map[string]*LibraryAlternatives{},
104-
IndexFile: indexFile,
105-
DownloadsDir: downloadsDir,
106-
Index: librariesindex.EmptyIndex,
105+
Libraries: map[string]*LibraryAlternatives{},
106+
IndexFile: indexFile,
107+
IndexFileSignature: indexFileSignature,
108+
DownloadsDir: downloadsDir,
109+
Index: librariesindex.EmptyIndex,
107110
}
108111
}
109112

Diff for: arduino/libraries/librariesresolver/cpp.go

+8-5
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ func computePriority(lib *libraries.Library, header, arch string) int {
121121
header = strings.TrimSuffix(header, filepath.Ext(header))
122122
header = simplify(header)
123123
name := simplify(lib.Name)
124+
realName := simplify(lib.RealName)
124125

125126
priority := 0
126127

@@ -137,15 +138,17 @@ func computePriority(lib *libraries.Library, header, arch string) int {
137138
priority += 0
138139
}
139140

140-
if name == header {
141+
if realName == header && name == header {
142+
priority += 600
143+
} else if realName == header || name == header {
141144
priority += 500
142-
} else if name == header+"-master" {
145+
} else if realName == header+"-master" || name == header+"-master" {
143146
priority += 400
144-
} else if strings.HasPrefix(name, header) {
147+
} else if strings.HasPrefix(realName, header) || strings.HasPrefix(name, header) {
145148
priority += 300
146-
} else if strings.HasSuffix(name, header) {
149+
} else if strings.HasSuffix(realName, header) || strings.HasSuffix(name, header) {
147150
priority += 200
148-
} else if strings.Contains(name, header) {
151+
} else if strings.Contains(realName, header) || strings.Contains(name, header) {
149152
priority += 100
150153
}
151154

Diff for: arduino/libraries/librariesresolver/cpp_test.go

+15
Original file line numberDiff line numberDiff line change
@@ -143,3 +143,18 @@ func TestCppHeaderResolver(t *testing.T) {
143143
require.Equal(t, "Calculus Unified Lib", resolve("calculus_lib.h", l6, l7))
144144
require.Equal(t, "Calculus Unified Lib", resolve("calculus_lib.h", l7, l6))
145145
}
146+
147+
func TestCppHeaderResolverWithLibrariesInStrangeDirectoryNames(t *testing.T) {
148+
resolver := NewCppResolver()
149+
librarylist := libraries.List{}
150+
librarylist.Add(&libraries.Library{Name: "onewire_2_3_4", RealName: "OneWire", Architectures: []string{"*"}})
151+
librarylist.Add(&libraries.Library{Name: "onewireng_2_3_4", RealName: "OneWireNg", Architectures: []string{"avr"}})
152+
resolver.headers["OneWire.h"] = librarylist
153+
require.Equal(t, "onewire_2_3_4", resolver.ResolveFor("OneWire.h", "avr").Name)
154+
155+
librarylist2 := libraries.List{}
156+
librarylist2.Add(&libraries.Library{Name: "OneWire", RealName: "OneWire", Architectures: []string{"*"}})
157+
librarylist2.Add(&libraries.Library{Name: "onewire_2_3_4", RealName: "OneWire", Architectures: []string{"avr"}})
158+
resolver.headers["OneWire.h"] = librarylist2
159+
require.Equal(t, "OneWire", resolver.ResolveFor("OneWire.h", "avr").Name)
160+
}

Diff for: arduino/libraries/loader.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ func makeNewLibrary(libraryDir *paths.Path, location LibraryLocation) (*Library,
6767

6868
library := &Library{}
6969
library.Location = location
70-
library.InstallDir = libraryDir
70+
library.InstallDir = libraryDir.Canonical()
7171
if libraryDir.Join("src").Exist() {
7272
library.Layout = RecursiveLayout
7373
library.SourceDir = libraryDir.Join("src")
@@ -127,7 +127,7 @@ func makeNewLibrary(libraryDir *paths.Path, location LibraryLocation) (*Library,
127127

128128
func makeLegacyLibrary(path *paths.Path, location LibraryLocation) (*Library, error) {
129129
library := &Library{
130-
InstallDir: path,
130+
InstallDir: path.Canonical(),
131131
Location: location,
132132
SourceDir: path,
133133
Layout: FlatLayout,

0 commit comments

Comments
 (0)