sh0rez
db1aae9b08
fix: disable sha256 for local packages
2019-10-30 17:40:08 +01:00
sh0rez
4de4096004
fix: fail on invalid URI
2019-10-29 22:35:59 +01:00
sh0rez
61fd099392
chore(vendor): embedmd
2019-10-29 22:18:22 +01:00
sh0rez
b23411fe58
fix: add sum to integration test
2019-10-29 22:16:59 +01:00
sh0rez
12a8bc9d9d
chore(vendor): github.com/stretchr/testify/require
2019-10-29 22:10:16 +01:00
sh0rez
6e283c5310
test: jsonnetfile marshalling
2019-10-29 22:09:03 +01:00
sh0rez
1caefa556e
refactor: remove dead code
2019-10-29 22:08:31 +01:00
sh0rez
0588b89c07
feat: minor improvements
...
- allow to install pkg that is already locked
- clean unknown files from vendor
- correctly handle checksums and locked versions (was accidentally ignoring
- these before)
2019-10-29 21:44:49 +01:00
sh0rez
cc1d7ea3b8
feat: sort output of jsonnetfile
...
To keep the output deterministic, both `jsonnetfile.json` and the lockfile are
now sorted alphabetically by the packages name
2019-10-29 21:44:45 +01:00
sh0rez
ffd43cf94e
fix: ensure in update
...
moves the update command implementation to the new Ensure function
2019-10-29 21:44:41 +01:00
sh0rez
6e3e7b2fdd
refactor: use a map instead of a slice
...
Packages are unique anyways so it makes sense to use a map to avoid having
duplicates.
For compatibility reasons custom json (un)marshallers hide this change from the
end user
2019-10-29 21:44:38 +01:00
sh0rez
4b6e2d89e9
feat: check sum after download
...
To see if we actually got what we expected
2019-10-29 21:44:34 +01:00
sh0rez
36311f1601
feat: rewrite install procedure
...
rewrites the installation of packages from scratch to solve several issues with
the existing implementation:
- does not need to choose between lockfile and jsonnetfile anymore. The
jsonnetfile what to be installed, while the lockfile also has versions and
checksums of all packages, even nested ones.
- the lockfile is regenerated on every run, preserving the locked values
- downloaded packages are hashed using sha256 to make sure we receive what we
expect. If files on the local disk are modified, they are downloaded again.
2019-10-29 21:44:30 +01:00
sh0rez
71938456ae
refactor: switch to pkg/jsonnetfile
...
So far, `pkg` and `pkg/jsonnetfile` had overlapping functionality when it came
to choosing and loading jsonnetfiles.
This fully switches to the separate package `pkg/jsonnetfile` that seems to be
created for exactly this purpose
2019-10-29 21:44:27 +01:00
sh0rez
a718f48cd8
refactor: dependency parsing
...
Refactors the dependency parsing function chain to evaluate the type of the
dependency right in `parseDependency` to make it clearer what is going on while
reading the code. Before, functions were returning if it was a different type,
which was not that clear from `parseDependency`.
2019-10-29 21:44:23 +01:00
Frederic Branczyk
766a0c7fd8
Merge pull request #51 from davidovich/restore-symlinks
...
restore symlinks from tar archive
2019-10-25 09:50:15 +02:00
david
f3c21baad8
restore symlinks from tar archive
...
fixes #50
2019-10-24 22:41:13 -04:00
Benoit Gagnon
32baaddaf6
Merge pull request #49 from bgagnon/fix-ref-etag-resolve
...
Replace ETag SHA1 assumption with an explicit call to git ls-remote
2019-10-24 12:07:55 -04:00
Benoit Gagnon
ed7d84f846
update comments to reflect git install changes
...
Signed-off-by: Benoit Gagnon <benoit.gagnon@ubisoft.com>
2019-10-24 11:08:24 -04:00
Benoit Gagnon
1915ef519a
relax the SHA1 regex to cover SHA1, SHA256 and any other length of SHA
...
Signed-off-by: Benoit Gagnon <benoit.gagnon@ubisoft.com>
2019-10-24 11:06:36 -04:00
Benoit Gagnon
2bf42f11cd
use fmt.Errorf(...) instead of errors.new(fmt.Sprintf(...))
...
Signed-off-by: Benoit Gagnon <benoit.gagnon@ubisoft.com>
2019-10-24 11:05:54 -04:00
Benoit Gagnon
f09b41c7da
use regexp.MustCompile
...
Co-Authored-By: David Genest <david.genest@gmail.com>
2019-10-24 10:47:35 -04:00
Benoit Gagnon
a44fae09a0
declare Buffer instead of using NewBuffer
...
Co-Authored-By: David Genest <david.genest@gmail.com>
2019-10-24 10:46:51 -04:00
Benoit Gagnon
f4b09c811e
replace ETag SHA1 assumption with an explicit call to git ls-remote
...
Not using an undocumented ETag header from the GitHub archive API is
probably for the best. This is slightly slower due to extra round-trip,
but it is still much faster than cloning the repository to resolve the
ref.
Signed-off-by: Benoit Gagnon <benoit.gagnon@ubisoft.com>
2019-10-23 10:52:39 -04:00
Frederic Branczyk
673e9111b1
Merge pull request #42 from metalmatze/local-dependency-check
...
Check local dependency symlink destition for existence
2019-10-11 09:32:31 +02:00
Matthias Loibl
b21c04091a
Check errors or explicitly ignore
2019-10-10 17:47:41 +02:00
Matthias Loibl
f994e4644e
Fix install integration tests
2019-10-10 17:14:42 +02:00
Matthias Loibl
a2cf8f6412
Update vendor/ after updating to Go 1.13
2019-10-09 15:42:55 +02:00
Matthias Loibl
9a2a8afaeb
Introduce Go 1.13 to use stdlib error wrapping
2019-10-09 15:40:14 +02:00
Matthias Loibl
b1501bbce7
Check local dependency symlink destition for existence
2019-10-09 15:25:53 +02:00
Frederic Branczyk
10e24cb869
Merge pull request #38 from bgagnon/git-clone-optim
...
Git package install optimizations
2019-09-30 13:47:13 +02:00
Benoit Gagnon
50eac0e70c
move the extracted archive into place before exiting Install
2019-09-29 17:24:47 -04:00
Benoit Gagnon
41278d8ef4
undo typo in tarball url format
2019-09-28 11:43:10 -04:00
Benoit Gagnon
741e7f316f
fall back to git if github archive download fails for any reason
2019-09-28 11:41:08 -04:00
Benoit Gagnon
2b485512c0
improve github archive download error reporting
2019-09-28 11:40:09 -04:00
Benoit Gagnon
524c820a94
use regex instead of prefix match to detect github remotes
...
this will allow the optimization to work for both ssh and https
2019-09-28 11:23:15 -04:00
Benoit Gagnon
76d85b1f49
honor header.Mode for directories found in tarballs
2019-09-28 11:04:49 -04:00
Benoit Gagnon
5b12e9c798
additional error checking
2019-09-28 10:57:02 -04:00
Benoit Gagnon
93c18a7d4d
motivate the explicit f.Close()
2019-09-28 10:56:47 -04:00
Benoit Gagnon
b597b16173
use filepath.Join instead of string concatenation
2019-09-28 10:32:26 -04:00
Benoit Gagnon
1fe94dcf91
fix "errors" pkg double import
2019-09-28 10:26:47 -04:00
Benoit Gagnon
926830713e
Merge remote-tracking branch 'origin/master' into git-clone-optim
...
# Conflicts:
# pkg/git.go
2019-09-28 10:24:11 -04:00
Frederic Branczyk
c734431ebd
Update README.md
...
Add design doc
2019-08-13 15:27:02 +02:00
Frederic Branczyk
8b9e476d11
Merge pull request #36 from metalmatze/local-dependencies
...
Add local dependencies as source dependency
2019-08-13 11:21:45 +02:00
Matthias Loibl
e1580b7968
Remove symlink before creating new ones
2019-08-12 18:16:31 +02:00
Matthias Loibl
d3bb1f4ea4
Use URI as name for packages location paths
2019-08-12 18:02:21 +02:00
Matthias Loibl
6ed6c3f3ec
For local dependencies check if abs path exists
2019-08-12 11:50:56 +02:00
Benoit Gagnon
5e742d5339
Resolve commit SHA1 from GitHub archive ETag header
2019-07-30 22:50:39 -04:00
Benoit Gagnon
134b21a473
use Go-native untar and gunzip support to unpack github archives
2019-07-30 21:49:32 -04:00
Benoit Gagnon
ba93fb74c3
Download tarball archives from GitHub (wip)
2019-07-26 08:05:50 -04:00