Commit graph

162 commits

Author SHA1 Message Date
Fred Rolland
c446df4ee0 Add missing license header 2020-05-06 18:58:00 +03:00
Frederic Branczyk
1c78d6cfcb
Merge pull request #100 from bgagnon/fix-relative-install
Fix LocalPackage install for relative paths
2020-05-06 17:55:33 +02:00
Benoit Gagnon
9d24e141db rename "vendorDir" variable to "jsonnetPkgHomeDir"
this better matches the terminology used for the
config flag
2020-05-01 12:46:42 -04:00
Benoit Gagnon
f2a24b787b add test coverage for local package installs 2020-05-01 12:38:08 -04:00
Benoit Gagnon
13568d0b65 fix LocalPackage install for relative paths
The vendor dir (here called "dir") is already joined with the CWD
in installCommand(). it should not be joined again here.

Also adds a logging message to show that a local package was
installed.
2020-04-30 22:45:49 -04:00
Frederic Branczyk
ccd60c13eb
Merge pull request #99 from jsonnet-bundler/single
feat(install): skip dependencies
2020-04-23 07:41:09 +02:00
sh0rez
5b346df9d1
test: remove flake 2020-04-22 22:35:05 +02:00
sh0rez
586be45435
doc: regenerate readme.md 2020-04-22 22:34:58 +02:00
sh0rez
fd5f7f108a
feat(install): skip dependencies
Allows `installing` a package without pulling dependencies of that
package. This comes in handy when having multiple directories on
`JPATH`, which overlay each other.

Because dependencies may be already present at lesser ranked import
paths, it's not required to pull them, when only needing to bump a
single one.
2020-04-22 22:34:02 +02:00
Matthias Loibl
d84e1d760d
Merge pull request #92 from jsonnet-bundler/update-uris
feat: update single dependencies
2020-04-21 16:29:19 +02:00
David Genest
cf414c4370
Fix unarchiver (#86)
* rework archive uncompress

fix err shadoing that silenced archive errors

* remove git command duplication
2020-04-20 21:39:31 +02:00
sh0rez
5e141e10f9
test: update integration 2020-04-20 18:24:56 +02:00
Paweł Krupa
e9c1fdd4c0
*: update VERSION file to latest tag (#95) 2020-03-22 11:44:58 +01:00
Dominik Süß
74a7f9775e
feat: subgroups (#91)
Several code-hosters like GitLab allow to have subgroups. These were previously not suppported because we weren't able to tell if something was a subgroup or a subdir.

By letting users specify the `.git` part of the http string as well, this now work for all protocol, including https.
2020-03-17 17:45:34 +01:00
sh0rez
25fcc6dda0
doc: update README 2020-03-17 17:42:08 +01:00
sh0rez
eeea4677d2
feat: update single dependencies
The `update` command now takes dependency URI's like the `install`
command.

In contrast to `install`, `update` always pulls the latest version.
2020-03-17 17:40:33 +01:00
Frederic Branczyk
cd5e2945d2
Merge pull request #87 from jsonnet-bundler/ldflag-version
feat(cli): --version using ldflags
2020-03-02 18:18:52 +01:00
sh0rez
7beb30ed18 fix: generate-help-script
Binary path is different, need to adapt
2020-03-02 16:43:11 +01:00
sh0rez
4f76fe7be6 fix: makefile embedmd
Runs the Makefile on bash, so that pushd/popd works
2020-03-02 07:37:21 +00:00
Frederic Branczyk
cb0a14f809
Merge pull request #88 from jsonnet-bundler/fix-install
fix: proper parsing of v0
2020-03-01 08:36:02 +01:00
sh0rez
0912b958d7
doc: add license to spec/v1/v0.go 2020-02-29 16:52:08 +01:00
sh0rez
e00d1268e4
fix(spec/v1): properly handle empty subdirs 2020-02-29 16:50:56 +01:00
sh0rez
fcac885ce2
fix: unmarshal legacyImports 2020-02-28 23:22:41 +01:00
sh0rez
e28e7ff55b
fix(spec): properly translate v0 into v1 2020-02-28 23:07:46 +01:00
sh0rez
80c06a483a
feat(cli): --version using ldflags
The go-modules approach is a bit broken: https://github.com/golang/go/issues/29228
To resolve that, we now compute that version using `git describe` and
set it using `ldflags`.

While this is not as nice/builtin as the other approach, it at least
works all the time and across go versions.

Furthermore, I did refactor the Makefile in preparation for an AUR
package that builds from source and for building release artifacts in CI.
2020-02-28 19:40:37 +01:00
sh0rez
f8be6a936f
doc(release): CHANGELOG for v0.3.0 (#83) 2020-02-28 18:30:54 +01:00
Matthias Loibl
bcd89fd33d
feat(spec): version field (#85)
Adds a `version` field to the `jsonnetfile.json`, so that `jb` can automatically recognize too old / too new schema versions, instead of panicking.
2020-02-28 17:41:49 +01:00
Paul Gier
efe0c9e864
fix(deps): catch git parse errors on Unmarshal (#79)
Fixes the nil pointer error that currently happens with
invalid URL.
2020-02-11 23:00:01 +01:00
Matthias Loibl
4a1cd85aca
Merge pull request #84 from metalmatze/go-1.14-rc
Start testing Go 1.14 with rc0
2020-02-10 16:05:59 +01:00
Matthias Loibl
a6bc2c25ae
Start testing Go 1.14 with rc0 2020-02-10 10:17:29 +01:00
Hang Xie
1d729c9517
fix: allow other dirs than vendor (#80) 2020-02-08 14:46:51 +01:00
Cody Boggs
0ba0ff5522
feat: generic git https (#73)
Previously, only `github.com` was supported for HTTP cloning of packages.

With this change, every git host using the http protocol (GitHub, Gitlab, Gitea) is supported :D
2020-02-03 18:07:44 +01:00
Tom
8f14d63f95
fix: Git ssh-scp syntax (#69)
* fix(deps): proper git ssh scheme

* feat(deps): git scp style

Adds support for the git ssh-scp style (`git@github.com:user/repo.git`),
which is an alternative form for ssh (note no ssh://).

* fix(deps): githubSlug also matching gitSSH

* test(deps): other hosts than github
2020-01-29 16:58:25 +01:00
Tom
7b8a7836a4
feat: absolute imports (#63)
* feat: go-like import style

jb now creates a directory structure inside of vendor/ that is similar to how go
does (github.com/grafana/jsonnet-libs). This is reflected in the final import
paths, which means they will be go-like

* refactor(spec/deps): named regexs

* feat: make goImportStyle configurable

Defaults to off, can be enabled in `jsonnetfile.json`

* fix: integration test

* doc: license headers

* fix(deps): remove GO_IMPORT_STYLE

not an option anymore, will always do so and symlink

* feat: symlink to legacy location

* feat: allow to disable legacy links

* fix(test): legacyImports in integration tests

* fix(spec): test

* fix: respect legacyName aliases

It was possible to alias packages by changing `name` previously.

While names are now absolute (and computed), legacy links should still respect
old aliases to avoid breaking code.

* fix(test): integration

* fix(init): keep legacyImports enabled for now

* feat: rewrite imports

adds a command to automatically rewrite imports from legacy to absolute style

* fix(tool): rewrite confused by prefixing packages

When a package was a prefix of another one, it broke.
Fixed that by using a proper regular expression. Added a test to make sure it
works as expected

* Update cmd/jb/init.go

* fix: exclude local packages from legacy linking

They actually still use the old style, which is fine. LegacyLinking
messed them up, but from now on it just ignores symlinks that match a localPackage.
2020-01-24 08:02:34 +01:00
Matthias Loibl
184841238b
Merge pull request #65 from metalmatze/release-0.2.0
Prepare a v0.2.0 release
2020-01-08 13:32:19 +01:00
Matthias Loibl
20988370cc
Fix generate README script 2020-01-08 11:39:44 +01:00
Matthias Loibl
f1f1723381
Prepare a v0.2.0 release 2020-01-08 11:20:36 +01:00
sh0rez
376432fadd
feat(cli): version flag (#60)
* feat(cli): version flag

Adds a --version flag to jb. Only available on go versions greater than 1.12

* style: add license headers

* chore(ci): generate only on latest go

* fix: unique step names

* doc: include version in README help text

* fix: rebuild .drone.yml using drone.cli

* fix: remove race condidion from CI
2019-12-14 16:40:30 +01:00
Frederic Branczyk
d7829f6c7e
Merge pull request #59 from metalmatze/go-versions-ci
Test for 3 latest Go versions in CI
2019-11-12 09:30:02 +01:00
Matthias Loibl
442ccc505a
Revert to pkg/errors usage for Go 1.11 & 1.12 2019-11-12 01:41:33 +01:00
Matthias Loibl
f1b13bd42d
Test for 3 latest Go versions in CI 2019-11-10 13:44:10 +01:00
Viktor Erpylev
7b564ae8b5 Add install instructions to README.md (#54) 2019-11-08 15:45:20 +01:00
Hang Xie
013e3937e8 fix: unknown pathspec on tags (#58)
forces to fetch tags from the remote. This was dependent on `git-config` before and led to issues with some users where tags were not be fetched
2019-11-08 15:44:37 +01:00
David Genest
f4417ac665 only write jsonnnet files if we made changes (#56)
Adding a dep, or updating a dependency version makes writes to the
jsonnet files.

We evaluate the changes on each of the files. An empty jsonnetfile.json
does not create a corresponding lockfile, as a missing lockfile is not
different from its previous (non existent).
2019-11-08 15:36:13 +01:00
Frederic Branczyk
7fc7c31856
Merge pull request #44 from sh0rez/rework-install
feat: rework install
2019-10-31 11:15:18 +01:00
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