Skip to content

Commit

Permalink
[breaking] refactor: made some golang modules private (#2447)
Browse files Browse the repository at this point in the history
* Replaced 'executils' with go-paths library equivalent

* Made 'buildcache' private

* Made 'table'' private

* Updated docs
  • Loading branch information
cmaglie committed Dec 5, 2023
1 parent 5935e45 commit a20e7b7
Show file tree
Hide file tree
Showing 47 changed files with 57 additions and 792 deletions.
2 changes: 1 addition & 1 deletion .licenses/go/github.com/arduino/go-paths-helper.dep.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: github.com/arduino/go-paths-helper
version: v1.9.2
version: v1.10.0
type: go
summary:
homepage: https://pkg.go.dev/github.com/arduino/go-paths-helper
Expand Down
7 changes: 3 additions & 4 deletions arduino/builder/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ import (
"github.com/arduino/arduino-cli/arduino/libraries"
"github.com/arduino/arduino-cli/arduino/libraries/librariesmanager"
"github.com/arduino/arduino-cli/arduino/sketch"
"github.com/arduino/arduino-cli/executils"
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
"github.com/arduino/go-paths-helper"
"github.com/arduino/go-properties-orderedmap"
Expand Down Expand Up @@ -492,7 +491,7 @@ func (b *Builder) build() error {
return nil
}

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

command, err := executils.NewProcess(nil, parts...)
command, err := paths.NewProcess(nil, parts...)
if err != nil {
return nil, err
}
Expand All @@ -536,7 +535,7 @@ func (b *Builder) prepareCommandForRecipe(buildProperties *properties.Map, recip
return command, nil
}

func (b *Builder) execCommand(command *executils.Process) error {
func (b *Builder) execCommand(command *paths.Process) error {
if b.logger.Verbose() {
b.logger.Info(utils.PrintableCommand(command.GetArgs()))
command.RedirectStdoutTo(b.logger.Stdout())
Expand Down
2 changes: 1 addition & 1 deletion arduino/builder/core.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ import (

"github.com/arduino/arduino-cli/arduino/builder/cpp"
"github.com/arduino/arduino-cli/arduino/builder/internal/utils"
"github.com/arduino/arduino-cli/buildcache"
f "github.com/arduino/arduino-cli/internal/algorithms"
"github.com/arduino/arduino-cli/internal/buildcache"
"github.com/arduino/go-paths-helper"
"github.com/pkg/errors"
)
Expand Down
3 changes: 1 addition & 2 deletions arduino/builder/internal/compilation/database.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import (
"fmt"
"os"

"github.com/arduino/arduino-cli/executils"
"github.com/arduino/arduino-cli/i18n"
"github.com/arduino/go-paths-helper"
)
Expand Down Expand Up @@ -71,7 +70,7 @@ func (db *Database) SaveToFile() {
}

// Add adds a new CompilationDatabase entry
func (db *Database) Add(target *paths.Path, command *executils.Process) {
func (db *Database) Add(target *paths.Path, command *paths.Process) {
commandDir := command.GetDir()
if commandDir == "" {
// This mimics what Cmd.Run also does: Use Dir if specified,
Expand Down
3 changes: 1 addition & 2 deletions arduino/builder/internal/compilation/database_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ package compilation
import (
"testing"

"github.com/arduino/arduino-cli/executils"
"github.com/arduino/go-paths-helper"
"github.com/stretchr/testify/require"
)
Expand All @@ -28,7 +27,7 @@ func TestCompilationDatabase(t *testing.T) {
require.NoError(t, err)
defer tmpfile.Remove()

cmd, err := executils.NewProcess(nil, "gcc", "arg1", "arg2")
cmd, err := paths.NewProcess(nil, "gcc", "arg1", "arg2")
require.NoError(t, err)
db := NewDatabase(tmpfile)
db.Add(paths.New("test"), cmd)
Expand Down
4 changes: 2 additions & 2 deletions arduino/builder/internal/diagnostics/compiler_detection.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import (
"path/filepath"
"strings"

"github.com/arduino/arduino-cli/executils"
"github.com/arduino/go-paths-helper"
semver "go.bug.st/relaxed-semver"
)

Expand All @@ -34,7 +34,7 @@ type DetectedCompiler struct {

// This function is overridden for mocking unit tests
var runProcess = func(args ...string) []string {
if cmd, err := executils.NewProcess(nil, args...); err == nil {
if cmd, err := paths.NewProcess(nil, args...); err == nil {
out := &bytes.Buffer{}
cmd.RedirectStdoutTo(out)
cmd.Run()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import (

"github.com/arduino/arduino-cli/arduino/builder/internal/utils"
"github.com/arduino/arduino-cli/arduino/sketch"
"github.com/arduino/arduino-cli/executils"
"github.com/arduino/go-paths-helper"
"github.com/arduino/go-properties-orderedmap"
"github.com/pkg/errors"
Expand Down Expand Up @@ -66,7 +65,7 @@ func PreprocessSketchWithArduinoPreprocessor(sk *sketch.Sketch, buildPath *paths
return nil, nil, errors.WithStack(err)
}

command, err := executils.NewProcess(nil, parts...)
command, err := paths.NewProcess(nil, parts...)
if err != nil {
return nil, nil, err
}
Expand Down
3 changes: 1 addition & 2 deletions arduino/builder/internal/preprocessor/ctags.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import (
"github.com/arduino/arduino-cli/arduino/builder/cpp"
"github.com/arduino/arduino-cli/arduino/builder/internal/preprocessor/internal/ctags"
"github.com/arduino/arduino-cli/arduino/sketch"
"github.com/arduino/arduino-cli/executils"
"github.com/arduino/arduino-cli/i18n"
"github.com/arduino/go-paths-helper"
"github.com/arduino/go-properties-orderedmap"
Expand Down Expand Up @@ -195,7 +194,7 @@ func RunCTags(sourceFile *paths.Path, buildProperties *properties.Map) ([]byte,
if err != nil {
return nil, nil, err
}
proc, err := executils.NewProcess(nil, parts...)
proc, err := paths.NewProcess(nil, parts...)
if err != nil {
return nil, nil, err
}
Expand Down
3 changes: 1 addition & 2 deletions arduino/builder/internal/preprocessor/gcc.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import (
"strings"

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

proc, err := executils.NewProcess(nil, args...)
proc, err := paths.NewProcess(nil, args...)
if err != nil {
return nil, nil, err
}
Expand Down
3 changes: 1 addition & 2 deletions arduino/cores/packagemanager/install_uninstall.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import (
"github.com/arduino/arduino-cli/arduino"
"github.com/arduino/arduino-cli/arduino/cores"
"github.com/arduino/arduino-cli/arduino/cores/packageindex"
"github.com/arduino/arduino-cli/executils"
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
"github.com/arduino/go-paths-helper"
"github.com/pkg/errors"
Expand Down Expand Up @@ -239,7 +238,7 @@ func (pme *Explorer) RunPreOrPostScript(installDir *paths.Path, prefix string) (
}
script := installDir.Join(scriptFilename)
if script.Exist() && script.IsNotDir() {
cmd, err := executils.NewProcessFromPath(pme.GetEnvVarsForSpawnedProcess(), script)
cmd, err := paths.NewProcessFromPath(pme.GetEnvVarsForSpawnedProcess(), script)
if err != nil {
return []byte{}, []byte{}, err
}
Expand Down
6 changes: 3 additions & 3 deletions arduino/discovery/discovery.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ import (
"sync"
"time"

"github.com/arduino/arduino-cli/executils"
"github.com/arduino/arduino-cli/i18n"
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
"github.com/arduino/arduino-cli/version"
"github.com/arduino/go-paths-helper"
"github.com/arduino/go-properties-orderedmap"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
Expand All @@ -48,7 +48,7 @@ const (
type PluggableDiscovery struct {
id string
processArgs []string
process *executils.Process
process *paths.Process
outgoingCommandsPipe io.Writer
incomingMessagesChan <-chan *discoveryMessage

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

func (disc *PluggableDiscovery) runProcess() error {
logrus.Infof("starting discovery %s process", disc.id)
proc, err := executils.NewProcess(nil, disc.processArgs...)
proc, err := paths.NewProcess(nil, disc.processArgs...)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions arduino/discovery/discovery_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ import (
"testing"
"time"

"github.com/arduino/arduino-cli/executils"
"github.com/arduino/go-paths-helper"
"github.com/stretchr/testify/require"
)

func TestDiscoveryStdioHandling(t *testing.T) {
// Build `cat` helper inside testdata/cat
builder, err := executils.NewProcess(nil, "go", "build")
builder, err := paths.NewProcess(nil, "go", "build")
require.NoError(t, err)
builder.SetDir("testdata/cat")
require.NoError(t, builder.Run())
Expand Down
6 changes: 3 additions & 3 deletions arduino/monitor/monitor.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,17 @@ import (
"strings"
"time"

"github.com/arduino/arduino-cli/executils"
"github.com/arduino/arduino-cli/i18n"
"github.com/arduino/arduino-cli/version"
"github.com/arduino/go-paths-helper"
"github.com/sirupsen/logrus"
)

// PluggableMonitor is a tool that communicates with a board through a communication port.
type PluggableMonitor struct {
id string
processArgs []string
process *executils.Process
process *paths.Process
outgoingCommandsPipe io.Writer
incomingMessagesChan <-chan *monitorMessage
supportedProtocol string
Expand Down Expand Up @@ -172,7 +172,7 @@ func (mon *PluggableMonitor) sendCommand(command string) error {

func (mon *PluggableMonitor) runProcess() error {
mon.log.Infof("Starting monitor process")
proc, err := executils.NewProcess(nil, mon.processArgs...)
proc, err := paths.NewProcess(nil, mon.processArgs...)
if err != nil {
return err
}
Expand Down
3 changes: 1 addition & 2 deletions arduino/monitor/monitor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import (
"testing"
"time"

"github.com/arduino/arduino-cli/executils"
"github.com/arduino/go-paths-helper"
"github.com/stretchr/testify/require"
)
Expand All @@ -33,7 +32,7 @@ func TestDummyMonitor(t *testing.T) {
// Build `dummy-monitor` helper inside testdata/dummy-monitor
testDataDir, err := paths.New("testdata").Abs()
require.NoError(t, err)
builder, err := executils.NewProcess(nil, "go", "install", "github.com/arduino/pluggable-monitor-protocol-handler/dummy-monitor@main")
builder, err := paths.NewProcess(nil, "go", "install", "github.com/arduino/pluggable-monitor-protocol-handler/dummy-monitor@main")
fmt.Println(testDataDir.String())
env := os.Environ()
env = append(env, "GOBIN="+testDataDir.String())
Expand Down
2 changes: 1 addition & 1 deletion commands/compile/compile.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ import (
"github.com/arduino/arduino-cli/arduino/libraries/librariesmanager"
"github.com/arduino/arduino-cli/arduino/sketch"
"github.com/arduino/arduino-cli/arduino/utils"
"github.com/arduino/arduino-cli/buildcache"
"github.com/arduino/arduino-cli/commands/internal/instances"
"github.com/arduino/arduino-cli/configuration"
"github.com/arduino/arduino-cli/i18n"
"github.com/arduino/arduino-cli/internal/buildcache"
"github.com/arduino/arduino-cli/internal/inventory"
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
paths "github.com/arduino/go-paths-helper"
Expand Down
3 changes: 1 addition & 2 deletions commands/debug/debug.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import (
"github.com/arduino/arduino-cli/arduino"
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
"github.com/arduino/arduino-cli/commands/internal/instances"
"github.com/arduino/arduino-cli/executils"
"github.com/arduino/arduino-cli/i18n"
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
"github.com/arduino/go-paths-helper"
Expand Down Expand Up @@ -67,7 +66,7 @@ func Debug(ctx context.Context, req *rpc.GetDebugConfigRequest, inStream io.Read
}
entry.Debug("Executing debugger")

cmd, err := executils.NewProcess(pme.GetEnvVarsForSpawnedProcess(), commandLine...)
cmd, err := paths.NewProcess(pme.GetEnvVarsForSpawnedProcess(), commandLine...)
if err != nil {
return nil, &arduino.FailedDebugError{Message: tr("Cannot execute debug tool"), Cause: err}
}
Expand Down
3 changes: 1 addition & 2 deletions commands/upload/upload.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ import (
"github.com/arduino/arduino-cli/arduino/serialutils"
"github.com/arduino/arduino-cli/arduino/sketch"
"github.com/arduino/arduino-cli/commands/internal/instances"
"github.com/arduino/arduino-cli/executils"
"github.com/arduino/arduino-cli/i18n"
f "github.com/arduino/arduino-cli/internal/algorithms"
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
Expand Down Expand Up @@ -652,7 +651,7 @@ func runTool(recipeID string, props *properties.Map, outStream, errStream io.Wri
if dryRun {
return nil
}
cmd, err := executils.NewProcess(toolEnv, cmdArgs...)
cmd, err := paths.NewProcess(toolEnv, cmdArgs...)
if err != nil {
return fmt.Errorf(tr("cannot execute upload tool: %s"), err)
}
Expand Down
10 changes: 10 additions & 0 deletions docs/UPGRADING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,16 @@ Here you can find a list of migration guides to handle breaking changes between

## 0.36.0

### Some golang modules from `github.com/arduino/arduino-cli/*` have been made private.

The following golang modules are no longer available as public API:

- `github.com/arduino/arduino-cli/buildcache`
- `github.com/arduino/arduino-cli/executils`
- `github.com/arduino/arduino-cli/table`

Most of the `executils` library has been integrated inside the `go-paths` library `github.com/arduino/go-paths-helper`.

### CLI changed JSON output for some `lib`, `core`, `config`, `board`, and `sketch` commands.

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

0 comments on commit a20e7b7

Please sign in to comment.