Commit graph

24 commits

Author SHA1 Message Date
Jose Alonso
bc013f1e6c Support Bitbucket personal repositories 2022-01-24 19:28:45 +01:00
Benoit Gagnon
251792fbb2
fix: allow dots in a repository path's "user" section (#106)
GitLab uses "first.last" naming for personal Groups.
This fixes the ability to reference personal GitLab
projects with jb.
2020-05-19 22:55:33 +02:00
Dominik Süß
50b717beab
Fix subgroup parsing on subsequent installs (#93)
* Fix subgroup parsing on subsequent installs

* enforce .git as remote suffix

* fix integration tests

* do not modify pointer receiver in getters

* fix merged integration tests
2020-05-06 20:40:34 +02:00
Frederic Branczyk
671f2568c4
Use base of absolute path for local dependencies
This allows using local paths like "..", which previously messed up
environments.
2020-05-06 18:02:44 +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
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
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
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
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
sh0rez
6e283c5310
test: jsonnetfile marshalling 2019-10-29 22:09:03 +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
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
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
Matthias Loibl
07801936c0
Create LocalSource as type for local dependencies 2019-07-23 14:01:25 -07:00
Matthias Loibl
95226f7f9b
Sort spec types by dependencies 2019-07-23 14:00:21 -07:00
Frederic Branczyk
74c4caa0cf
Add correct lockfile handling 2018-07-25 13:57:37 +02:00
Frederic Branczyk
5233278a99
Make install idempotent to jsonnetfile.json 2018-04-24 17:43:27 +01:00
Frederic Branczyk
cb59934d1d
Initial commit 2018-04-24 16:01:37 +01:00