Skip to content

Commit a20e7b7

Browse files
authored
[breaking] refactor: made some golang modules private (#2447)
* Replaced 'executils' with go-paths library equivalent * Made 'buildcache' private * Made 'table'' private * Updated docs
1 parent 5935e45 commit a20e7b7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+57
-792
lines changed

Diff for: .licenses/go/github.com/arduino/go-paths-helper.dep.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: github.com/arduino/go-paths-helper
3-
version: v1.9.2
3+
version: v1.10.0
44
type: go
55
summary:
66
homepage: https://pkg.go.dev/github.com/arduino/go-paths-helper

Diff for: arduino/builder/builder.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ import (
3333
"github.com/arduino/arduino-cli/arduino/libraries"
3434
"github.com/arduino/arduino-cli/arduino/libraries/librariesmanager"
3535
"github.com/arduino/arduino-cli/arduino/sketch"
36-
"github.com/arduino/arduino-cli/executils"
3736
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
3837
"github.com/arduino/go-paths-helper"
3938
"github.com/arduino/go-properties-orderedmap"
@@ -492,7 +491,7 @@ func (b *Builder) build() error {
492491
return nil
493492
}
494493

495-
func (b *Builder) prepareCommandForRecipe(buildProperties *properties.Map, recipe string, removeUnsetProperties bool) (*executils.Process, error) {
494+
func (b *Builder) prepareCommandForRecipe(buildProperties *properties.Map, recipe string, removeUnsetProperties bool) (*paths.Process, error) {
496495
pattern := buildProperties.Get(recipe)
497496
if pattern == "" {
498497
return nil, fmt.Errorf(tr("%[1]s pattern is missing"), recipe)
@@ -525,7 +524,7 @@ func (b *Builder) prepareCommandForRecipe(buildProperties *properties.Map, recip
525524
}
526525
}
527526

528-
command, err := executils.NewProcess(nil, parts...)
527+
command, err := paths.NewProcess(nil, parts...)
529528
if err != nil {
530529
return nil, err
531530
}
@@ -536,7 +535,7 @@ func (b *Builder) prepareCommandForRecipe(buildProperties *properties.Map, recip
536535
return command, nil
537536
}
538537

539-
func (b *Builder) execCommand(command *executils.Process) error {
538+
func (b *Builder) execCommand(command *paths.Process) error {
540539
if b.logger.Verbose() {
541540
b.logger.Info(utils.PrintableCommand(command.GetArgs()))
542541
command.RedirectStdoutTo(b.logger.Stdout())

Diff for: arduino/builder/core.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ import (
2424

2525
"github.com/arduino/arduino-cli/arduino/builder/cpp"
2626
"github.com/arduino/arduino-cli/arduino/builder/internal/utils"
27-
"github.com/arduino/arduino-cli/buildcache"
2827
f "github.com/arduino/arduino-cli/internal/algorithms"
28+
"github.com/arduino/arduino-cli/internal/buildcache"
2929
"github.com/arduino/go-paths-helper"
3030
"github.com/pkg/errors"
3131
)

Diff for: arduino/builder/internal/compilation/database.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
"fmt"
2121
"os"
2222

23-
"github.com/arduino/arduino-cli/executils"
2423
"github.com/arduino/arduino-cli/i18n"
2524
"github.com/arduino/go-paths-helper"
2625
)
@@ -71,7 +70,7 @@ func (db *Database) SaveToFile() {
7170
}
7271

7372
// Add adds a new CompilationDatabase entry
74-
func (db *Database) Add(target *paths.Path, command *executils.Process) {
73+
func (db *Database) Add(target *paths.Path, command *paths.Process) {
7574
commandDir := command.GetDir()
7675
if commandDir == "" {
7776
// This mimics what Cmd.Run also does: Use Dir if specified,

Diff for: arduino/builder/internal/compilation/database_test.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ package compilation
1818
import (
1919
"testing"
2020

21-
"github.com/arduino/arduino-cli/executils"
2221
"github.com/arduino/go-paths-helper"
2322
"github.com/stretchr/testify/require"
2423
)
@@ -28,7 +27,7 @@ func TestCompilationDatabase(t *testing.T) {
2827
require.NoError(t, err)
2928
defer tmpfile.Remove()
3029

31-
cmd, err := executils.NewProcess(nil, "gcc", "arg1", "arg2")
30+
cmd, err := paths.NewProcess(nil, "gcc", "arg1", "arg2")
3231
require.NoError(t, err)
3332
db := NewDatabase(tmpfile)
3433
db.Add(paths.New("test"), cmd)

Diff for: arduino/builder/internal/diagnostics/compiler_detection.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020
"path/filepath"
2121
"strings"
2222

23-
"github.com/arduino/arduino-cli/executils"
23+
"github.com/arduino/go-paths-helper"
2424
semver "go.bug.st/relaxed-semver"
2525
)
2626

@@ -34,7 +34,7 @@ type DetectedCompiler struct {
3434

3535
// This function is overridden for mocking unit tests
3636
var runProcess = func(args ...string) []string {
37-
if cmd, err := executils.NewProcess(nil, args...); err == nil {
37+
if cmd, err := paths.NewProcess(nil, args...); err == nil {
3838
out := &bytes.Buffer{}
3939
cmd.RedirectStdoutTo(out)
4040
cmd.Run()

Diff for: arduino/builder/internal/preprocessor/arduino_preprocessor.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323

2424
"github.com/arduino/arduino-cli/arduino/builder/internal/utils"
2525
"github.com/arduino/arduino-cli/arduino/sketch"
26-
"github.com/arduino/arduino-cli/executils"
2726
"github.com/arduino/go-paths-helper"
2827
"github.com/arduino/go-properties-orderedmap"
2928
"github.com/pkg/errors"
@@ -66,7 +65,7 @@ func PreprocessSketchWithArduinoPreprocessor(sk *sketch.Sketch, buildPath *paths
6665
return nil, nil, errors.WithStack(err)
6766
}
6867

69-
command, err := executils.NewProcess(nil, parts...)
68+
command, err := paths.NewProcess(nil, parts...)
7069
if err != nil {
7170
return nil, nil, err
7271
}

Diff for: arduino/builder/internal/preprocessor/ctags.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import (
2727
"github.com/arduino/arduino-cli/arduino/builder/cpp"
2828
"github.com/arduino/arduino-cli/arduino/builder/internal/preprocessor/internal/ctags"
2929
"github.com/arduino/arduino-cli/arduino/sketch"
30-
"github.com/arduino/arduino-cli/executils"
3130
"github.com/arduino/arduino-cli/i18n"
3231
"github.com/arduino/go-paths-helper"
3332
"github.com/arduino/go-properties-orderedmap"
@@ -195,7 +194,7 @@ func RunCTags(sourceFile *paths.Path, buildProperties *properties.Map) ([]byte,
195194
if err != nil {
196195
return nil, nil, err
197196
}
198-
proc, err := executils.NewProcess(nil, parts...)
197+
proc, err := paths.NewProcess(nil, parts...)
199198
if err != nil {
200199
return nil, nil, err
201200
}

Diff for: arduino/builder/internal/preprocessor/gcc.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121
"strings"
2222

2323
"github.com/arduino/arduino-cli/arduino/builder/cpp"
24-
"github.com/arduino/arduino-cli/executils"
2524
f "github.com/arduino/arduino-cli/internal/algorithms"
2625
"github.com/arduino/go-paths-helper"
2726
"github.com/arduino/go-properties-orderedmap"
@@ -69,7 +68,7 @@ func GCC(sourceFilePath *paths.Path, targetFilePath *paths.Path, includes paths.
6968
// to create a /dev/null.d dependency file, which won't work.
7069
args = f.Filter(args, f.NotEquals("-MMD"))
7170

72-
proc, err := executils.NewProcess(nil, args...)
71+
proc, err := paths.NewProcess(nil, args...)
7372
if err != nil {
7473
return nil, nil, err
7574
}

Diff for: arduino/cores/packagemanager/install_uninstall.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"github.com/arduino/arduino-cli/arduino"
2525
"github.com/arduino/arduino-cli/arduino/cores"
2626
"github.com/arduino/arduino-cli/arduino/cores/packageindex"
27-
"github.com/arduino/arduino-cli/executils"
2827
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
2928
"github.com/arduino/go-paths-helper"
3029
"github.com/pkg/errors"
@@ -239,7 +238,7 @@ func (pme *Explorer) RunPreOrPostScript(installDir *paths.Path, prefix string) (
239238
}
240239
script := installDir.Join(scriptFilename)
241240
if script.Exist() && script.IsNotDir() {
242-
cmd, err := executils.NewProcessFromPath(pme.GetEnvVarsForSpawnedProcess(), script)
241+
cmd, err := paths.NewProcessFromPath(pme.GetEnvVarsForSpawnedProcess(), script)
243242
if err != nil {
244243
return []byte{}, []byte{}, err
245244
}

Diff for: arduino/discovery/discovery.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ import (
2323
"sync"
2424
"time"
2525

26-
"github.com/arduino/arduino-cli/executils"
2726
"github.com/arduino/arduino-cli/i18n"
2827
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
2928
"github.com/arduino/arduino-cli/version"
29+
"github.com/arduino/go-paths-helper"
3030
"github.com/arduino/go-properties-orderedmap"
3131
"github.com/pkg/errors"
3232
"github.com/sirupsen/logrus"
@@ -48,7 +48,7 @@ const (
4848
type PluggableDiscovery struct {
4949
id string
5050
processArgs []string
51-
process *executils.Process
51+
process *paths.Process
5252
outgoingCommandsPipe io.Writer
5353
incomingMessagesChan <-chan *discoveryMessage
5454

@@ -269,7 +269,7 @@ func (disc *PluggableDiscovery) sendCommand(command string) error {
269269

270270
func (disc *PluggableDiscovery) runProcess() error {
271271
logrus.Infof("starting discovery %s process", disc.id)
272-
proc, err := executils.NewProcess(nil, disc.processArgs...)
272+
proc, err := paths.NewProcess(nil, disc.processArgs...)
273273
if err != nil {
274274
return err
275275
}

Diff for: arduino/discovery/discovery_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@ import (
2020
"testing"
2121
"time"
2222

23-
"github.com/arduino/arduino-cli/executils"
23+
"github.com/arduino/go-paths-helper"
2424
"github.com/stretchr/testify/require"
2525
)
2626

2727
func TestDiscoveryStdioHandling(t *testing.T) {
2828
// Build `cat` helper inside testdata/cat
29-
builder, err := executils.NewProcess(nil, "go", "build")
29+
builder, err := paths.NewProcess(nil, "go", "build")
3030
require.NoError(t, err)
3131
builder.SetDir("testdata/cat")
3232
require.NoError(t, builder.Run())

Diff for: arduino/monitor/monitor.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,17 @@ import (
2626
"strings"
2727
"time"
2828

29-
"github.com/arduino/arduino-cli/executils"
3029
"github.com/arduino/arduino-cli/i18n"
3130
"github.com/arduino/arduino-cli/version"
31+
"github.com/arduino/go-paths-helper"
3232
"github.com/sirupsen/logrus"
3333
)
3434

3535
// PluggableMonitor is a tool that communicates with a board through a communication port.
3636
type PluggableMonitor struct {
3737
id string
3838
processArgs []string
39-
process *executils.Process
39+
process *paths.Process
4040
outgoingCommandsPipe io.Writer
4141
incomingMessagesChan <-chan *monitorMessage
4242
supportedProtocol string
@@ -172,7 +172,7 @@ func (mon *PluggableMonitor) sendCommand(command string) error {
172172

173173
func (mon *PluggableMonitor) runProcess() error {
174174
mon.log.Infof("Starting monitor process")
175-
proc, err := executils.NewProcess(nil, mon.processArgs...)
175+
proc, err := paths.NewProcess(nil, mon.processArgs...)
176176
if err != nil {
177177
return err
178178
}

Diff for: arduino/monitor/monitor_test.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"testing"
2525
"time"
2626

27-
"github.com/arduino/arduino-cli/executils"
2827
"github.com/arduino/go-paths-helper"
2928
"github.com/stretchr/testify/require"
3029
)
@@ -33,7 +32,7 @@ func TestDummyMonitor(t *testing.T) {
3332
// Build `dummy-monitor` helper inside testdata/dummy-monitor
3433
testDataDir, err := paths.New("testdata").Abs()
3534
require.NoError(t, err)
36-
builder, err := executils.NewProcess(nil, "go", "install", "github.com/arduino/pluggable-monitor-protocol-handler/dummy-monitor@main")
35+
builder, err := paths.NewProcess(nil, "go", "install", "github.com/arduino/pluggable-monitor-protocol-handler/dummy-monitor@main")
3736
fmt.Println(testDataDir.String())
3837
env := os.Environ()
3938
env = append(env, "GOBIN="+testDataDir.String())

Diff for: commands/compile/compile.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ import (
2929
"github.com/arduino/arduino-cli/arduino/libraries/librariesmanager"
3030
"github.com/arduino/arduino-cli/arduino/sketch"
3131
"github.com/arduino/arduino-cli/arduino/utils"
32-
"github.com/arduino/arduino-cli/buildcache"
3332
"github.com/arduino/arduino-cli/commands/internal/instances"
3433
"github.com/arduino/arduino-cli/configuration"
3534
"github.com/arduino/arduino-cli/i18n"
35+
"github.com/arduino/arduino-cli/internal/buildcache"
3636
"github.com/arduino/arduino-cli/internal/inventory"
3737
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
3838
paths "github.com/arduino/go-paths-helper"

Diff for: commands/debug/debug.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import (
2727
"github.com/arduino/arduino-cli/arduino"
2828
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2929
"github.com/arduino/arduino-cli/commands/internal/instances"
30-
"github.com/arduino/arduino-cli/executils"
3130
"github.com/arduino/arduino-cli/i18n"
3231
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
3332
"github.com/arduino/go-paths-helper"
@@ -67,7 +66,7 @@ func Debug(ctx context.Context, req *rpc.GetDebugConfigRequest, inStream io.Read
6766
}
6867
entry.Debug("Executing debugger")
6968

70-
cmd, err := executils.NewProcess(pme.GetEnvVarsForSpawnedProcess(), commandLine...)
69+
cmd, err := paths.NewProcess(pme.GetEnvVarsForSpawnedProcess(), commandLine...)
7170
if err != nil {
7271
return nil, &arduino.FailedDebugError{Message: tr("Cannot execute debug tool"), Cause: err}
7372
}

Diff for: commands/upload/upload.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import (
3131
"github.com/arduino/arduino-cli/arduino/serialutils"
3232
"github.com/arduino/arduino-cli/arduino/sketch"
3333
"github.com/arduino/arduino-cli/commands/internal/instances"
34-
"github.com/arduino/arduino-cli/executils"
3534
"github.com/arduino/arduino-cli/i18n"
3635
f "github.com/arduino/arduino-cli/internal/algorithms"
3736
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
@@ -652,7 +651,7 @@ func runTool(recipeID string, props *properties.Map, outStream, errStream io.Wri
652651
if dryRun {
653652
return nil
654653
}
655-
cmd, err := executils.NewProcess(toolEnv, cmdArgs...)
654+
cmd, err := paths.NewProcess(toolEnv, cmdArgs...)
656655
if err != nil {
657656
return fmt.Errorf(tr("cannot execute upload tool: %s"), err)
658657
}

Diff for: docs/UPGRADING.md

+10
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,16 @@ Here you can find a list of migration guides to handle breaking changes between
44

55
## 0.36.0
66

7+
### Some golang modules from `github.com/arduino/arduino-cli/*` have been made private.
8+
9+
The following golang modules are no longer available as public API:
10+
11+
- `github.com/arduino/arduino-cli/buildcache`
12+
- `github.com/arduino/arduino-cli/executils`
13+
- `github.com/arduino/arduino-cli/table`
14+
15+
Most of the `executils` library has been integrated inside the `go-paths` library `github.com/arduino/go-paths-helper`.
16+
717
### CLI changed JSON output for some `lib`, `core`, `config`, `board`, and `sketch` commands.
818

919
- `arduino-cli lib list --format json` results are now wrapped under `installed_libraries` key

0 commit comments

Comments
 (0)