Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
75dae97
improve comments for Link struct and its fields in linkedfiles.go
teresaromero Sep 24, 2025
83e13ad
refactor: enhance newLinkedFile function for better error handling an…
teresaromero Sep 24, 2025
9139bb2
test: add unit test for newLinkedFile function to validate link file …
teresaromero Sep 24, 2025
60672b2
decoupled repoRoot from lint cmd and docs
teresaromero Sep 25, 2025
211c7c9
update repository root handling across multiple components
teresaromero Sep 25, 2025
0b61910
standardize repository root handling across build, lint, and links ma…
teresaromero Sep 25, 2025
ce07ec3
ensure repository root is properly closed in multiple command actions…
teresaromero Sep 25, 2025
0deae99
add repoRoot parameter to build command action
teresaromero Sep 29, 2025
1fc643a
update linked file handling to use absolute paths and improve clarity
teresaromero Sep 29, 2025
6820b49
add copyright notice to packages_test.go file
teresaromero Sep 29, 2025
2c16cab
refactor linkedfiles_test.go to use os.MkdirAll for directory creation
teresaromero Sep 29, 2025
403527e
implement repository root handling in benchmark and install commands,…
teresaromero Sep 29, 2025
96d5129
read repoRoot at test runner cmd
teresaromero Sep 29, 2025
90ba403
refactor linkedfiles_test.go to use filepath.Join for constructing li…
teresaromero Sep 29, 2025
aeeee55
inject repoRoot to needed test options
teresaromero Sep 29, 2025
385fc89
Update data stream tests to include repoRoot parameter
teresaromero Sep 29, 2025
9edca9b
Ensure repoRoot is closed in all data stream test cases
teresaromero Sep 30, 2025
c60b836
Remove unnecessary directory change in createAndCheckDataStream function
teresaromero Sep 30, 2025
679c566
Merge branch 'main' into 2797-detach-repo-root
teresaromero Oct 6, 2025
ef3497f
refactor at copyLicenceTextFile to ensure license inside reporoot, re…
teresaromero Oct 6, 2025
1f591bf
Merge branch 'main' into 2797-detach-repo-root
teresaromero Oct 8, 2025
ec2a7e1
refactor linkefiles management to use relative paths and root
teresaromero Oct 9, 2025
169777f
revert linksDefinitionsFilePath from public to private
teresaromero Oct 9, 2025
9229664
add validation for RepoRoot in Options
teresaromero Oct 9, 2025
0436a37
clarify variable name for included file path in newLinkedFile function
teresaromero Oct 9, 2025
9793ffd
simplify checksum comparison logic in newLinkedFile function
teresaromero Oct 9, 2025
5d6ef55
refactor findRepositoryLicensePath to use repoRoot
teresaromero Oct 9, 2025
ecfeb9b
refactor copyLicenseTextFile to use repoRoot.Stat
teresaromero Oct 9, 2025
4412b0b
refactor FindPackageRoot and handle error on FindPackageRootFrom calls
teresaromero Oct 9, 2025
9b7a721
remove repoRoot.Write and Read
teresaromero Oct 9, 2025
091d117
Merge branch 'main' into 2797-detach-repo-root
teresaromero Oct 15, 2025
66274da
rename repoRoot to repositoryRoot for clarity
teresaromero Oct 15, 2025
5429121
fix: correct grammar in comments for license file handling
teresaromero Oct 15, 2025
b3e73ac
update copyLicenseTextFile function to improve clarity and error hand…
teresaromero Oct 15, 2025
563522f
enhance findRepositoryLicensePath function to check for empty license…
teresaromero Oct 15, 2025
bfe509e
improve path handling in TestFindRepositoryLicense and TestCopyLicen…
teresaromero Oct 15, 2025
59436db
rename test function and update comment for clarity
teresaromero Oct 15, 2025
248a704
remove unnecessary blank lines in test files for improved readability
teresaromero Oct 15, 2025
c74c6c8
rename PackageRoot to PackageRootPath for consistency across builder …
teresaromero Oct 15, 2025
68ed0d8
add repository root handling in benchmark and test runner commands
teresaromero Oct 15, 2025
54d8502
rename newLinkMap to newEmptyLinkMap and revert related functions to …
teresaromero Oct 15, 2025
3b32fcc
update findRepositoryLicensePath to use os.ReadFile and improve error…
teresaromero Oct 15, 2025
8af2c99
remove RepositoryRoot references from FleetAgentPolicy, rename RootPa…
teresaromero Oct 16, 2025
d08ed58
refactor copyLicenseTextFile to enforce absolute target license path …
teresaromero Oct 16, 2025
c4a5205
refactor build package handling to inject buildDir
teresaromero Oct 20, 2025
5d84f01
refactor readme generation to include sourceFilesRoot parameter and u…
teresaromero Oct 20, 2025
c8b06ad
Merge branch 'main' into 2797-detach-repo-root
teresaromero Oct 20, 2025
102dfcd
streamline linked files inclusion in BuildPackage function prior to r…
teresaromero Oct 21, 2025
24a9f73
Merge branch 'main' into 2797-detach-repo-root
teresaromero Oct 21, 2025
7570581
restore zipped built package path to build/packages
teresaromero Oct 21, 2025
94a16d7
Add repository root handling to test runner and installer
teresaromero Oct 22, 2025
6d2e054
Update Go version to 1.25.3 and refactor license file handling in tests
teresaromero Oct 22, 2025
d939edc
Refactor license file handling in tests to use repositoryRoot consist…
teresaromero Oct 22, 2025
66db0cf
Merge branch 'main' into 2797-updatego-version
teresaromero Oct 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .go-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.24.2
1.25.3
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/elastic/elastic-package

go 1.24.2
go 1.25.3

require (
github.com/Masterminds/semver/v3 v3.4.0
Expand Down
4 changes: 1 addition & 3 deletions internal/builder/packages.go
Original file line number Diff line number Diff line change
Expand Up @@ -386,9 +386,7 @@ func createBuildDirectory(dirs ...string) (string, error) {
// string - the license file absolute path if found.
// error - an error if the license file does not exist.
func findRepositoryLicensePath(repositoryRoot *os.Root, repositoryLicenseTextFileName string) (string, error) {
// root.ReadFile is supported after go1.25,
// https://go.dev/doc/go1.25
bytes, err := os.ReadFile(filepath.Join(repositoryRoot.Name(), repositoryLicenseTextFileName))
bytes, err := repositoryRoot.ReadFile(repositoryLicenseTextFileName)
if err != nil {
return "", fmt.Errorf("failed to read repository license: %w", err)
}
Expand Down
45 changes: 26 additions & 19 deletions internal/builder/packages_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,40 +15,42 @@ import (

func TestFindRepositoryLicense(t *testing.T) {
t.Run("FileExists", func(t *testing.T) {
root, err := os.OpenRoot(t.TempDir())
repositoryRoot, err := os.OpenRoot(t.TempDir())
require.NoError(t, err)
defer root.Close()
defer repositoryRoot.Close()

filename := "LICENSE.txt"
// Create a LICENSE.txt file in the temp directory
expectedPath := filepath.Join(root.Name(), "LICENSE.txt")
err = os.WriteFile(expectedPath, []byte("license content"), 0644)
err = repositoryRoot.WriteFile(filename, []byte("license content"), 0644)
require.NoError(t, err)

path, err := findRepositoryLicensePath(root, "LICENSE.txt")
expectedPath := filepath.Join(repositoryRoot.Name(), filename)

path, err := findRepositoryLicensePath(repositoryRoot, filename)
require.NoError(t, err)
assert.Equal(t, expectedPath, path)
})

t.Run("FileDoesNotExist", func(t *testing.T) {
root, err := os.OpenRoot(t.TempDir())
repositoryRoot, err := os.OpenRoot(t.TempDir())
require.NoError(t, err)
defer root.Close()
defer repositoryRoot.Close()

path, err := findRepositoryLicensePath(root, "NON_EXISTENT_LICENSE.txt")
path, err := findRepositoryLicensePath(repositoryRoot, "NON_EXISTENT_LICENSE.txt")
require.Error(t, err)
assert.Empty(t, path)
assert.ErrorIs(t, err, os.ErrNotExist)
})

t.Run("FileOutsideRoot", func(t *testing.T) {
root, err := os.OpenRoot(t.TempDir())
repositoryRoot, err := os.OpenRoot(t.TempDir())
require.NoError(t, err)
defer root.Close()
defer repositoryRoot.Close()

path, err := findRepositoryLicensePath(root, filepath.Join("..", "..", "out.txt"))
path, err := findRepositoryLicensePath(repositoryRoot, filepath.Join("..", "..", "out.txt"))
require.Error(t, err)
assert.Empty(t, path)
assert.ErrorIs(t, err, os.ErrNotExist)
assert.ErrorContains(t, err, "path escapes from parent")
})

}
Expand All @@ -73,16 +75,18 @@ func TestCopyLicenseTextFile_UsesExistingLicenseFile(t *testing.T) {
require.NoError(t, err)
defer repositoryRoot.Close()

licensePath := filepath.Join(repositoryRoot.Name(), "LICENSE.txt")
err = os.WriteFile(licensePath, []byte("existing license"), 0644)
filename := "LICENSE.txt"

err = repositoryRoot.WriteFile(filename, []byte("existing license"), 0644)
require.NoError(t, err)

targetLicensePath := filepath.Join(repositoryRoot.Name(), filename)
// Should not attempt to copy, just return nil
err = copyLicenseTextFile(repositoryRoot, licensePath)
err = copyLicenseTextFile(repositoryRoot, targetLicensePath)
assert.NoError(t, err)

// License file should remain unchanged
content, err := os.ReadFile(licensePath)
content, err := repositoryRoot.ReadFile(filename)
require.NoError(t, err)
assert.Equal(t, "existing license", string(content))

Expand Down Expand Up @@ -122,17 +126,20 @@ func TestCopyLicenseTextFile_UsesExistingLicenseFile(t *testing.T) {
require.NoError(t, err)
defer repositoryRoot.Close()

filename := "CUSTOM_LICENSE.txt"
t.Setenv(repositoryLicenseEnv, filename)

// target license file path outside the repository root
targetLicensePath := filepath.Join(t.TempDir(), "REPO_LICENSE.txt")

// original license file path
err = os.WriteFile(filepath.Join(repositoryRoot.Name(), "CUSTOM_LICENSE.txt"), []byte("repo license"), 0644)
err = repositoryRoot.WriteFile(filename, []byte("repo license"), 0644)
require.NoError(t, err)

t.Setenv(repositoryLicenseEnv, "CUSTOM_LICENSE.txt")

err = copyLicenseTextFile(repositoryRoot, targetLicensePath)
assert.NoError(t, err)

// read outside the repository root
content, err := os.ReadFile(targetLicensePath)
require.NoError(t, err)
assert.Equal(t, "repo license", string(content))
Expand Down
5 changes: 2 additions & 3 deletions internal/docs/links_map.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,11 +99,10 @@ func linksDefinitionsFilePath(repositoryRoot *os.Root) (string, error) {
return linksFilePath, nil
}

linksFilePath = filepath.Join(repositoryRoot.Name(), linksMapFileNameDefault)
if _, err := os.Stat(linksFilePath); err != nil {
if _, err := repositoryRoot.Stat(linksMapFileNameDefault); err != nil {
logger.Debugf("links definitions default file doesn't exist: %s", linksFilePath)
return "", nil
}

return linksFilePath, nil
return filepath.Join(repositoryRoot.Name(), linksMapFileNameDefault), nil
}