Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pkg3 stdlib #26141

Merged
merged 292 commits into from
Feb 23, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
292 commits
Select commit Hold shift + click to select a range
55a3139
upgrade Compat
StefanKarpinski Aug 30, 2017
364e5ca
up: make --major the default upgrade level
StefanKarpinski Aug 30, 2017
f42e8e4
better name resolution error reporting
StefanKarpinski Aug 30, 2017
b9cc88c
upgrade SHA
StefanKarpinski Aug 30, 2017
dc9c062
print version number of installed packages
StefanKarpinski Aug 30, 2017
cb52038
print project changes when updating
StefanKarpinski Aug 30, 2017
45cc56c
better operation change reporting
StefanKarpinski Aug 31, 2017
fc21957
sha1map update
StefanKarpinski Aug 31, 2017
6395071
tweak unordered up/downgrade printing
StefanKarpinski Aug 31, 2017
582cbcb
package tree printing code
StefanKarpinski Aug 31, 2017
28f3bdb
auto-clone default registries into user depot
StefanKarpinski Sep 5, 2017
dc5d442
sha1map update
StefanKarpinski Sep 6, 2017
fa6a7fd
Update README.md
StefanKarpinski Sep 6, 2017
dd656a6
create ~/.julia/upstream before cloning into it (#2)
StefanKarpinski Sep 7, 2017
4794353
chmod -x bin/utils.jl
StefanKarpinski Sep 8, 2017
ccb30f1
attempt at monkey patch from vtjnash (doesn't work)
StefanKarpinski Sep 8, 2017
e65a21f
different approach to monkey patching loading
StefanKarpinski Sep 8, 2017
20c56bf
attempt to make Pkg3 work on 0.6 again
StefanKarpinski Sep 11, 2017
1ad50b8
Make Pkg3 load on 0.6.0; internalize TOML, TerminalMenus
StefanKarpinski Sep 11, 2017
4908ee7
refactor manifest diff info printing
StefanKarpinski Sep 18, 2017
fd90d2b
colorize project/manifest changes
StefanKarpinski Sep 19, 2017
fda6219
get rid of manifest_info(f, env)
StefanKarpinski Sep 20, 2017
067bf09
factor parsing of project/manifest from IO object
StefanKarpinski Sep 20, 2017
18022f6
track a git repo for envs
StefanKarpinski Sep 20, 2017
bd3b5b5
implement initial cut of `status` command
StefanKarpinski Sep 20, 2017
bb04098
no stacktraces for REPL mode usage errors
StefanKarpinski Sep 21, 2017
4a33475
toying with +/-/. for add/rm/status
StefanKarpinski Sep 21, 2017
f29869a
update sha1map
StefanKarpinski Sep 27, 2017
ec64028
tweak info Update
StefanKarpinski Sep 27, 2017
0f96b5f
status: add --project & --manifest options
StefanKarpinski Sep 30, 2017
02fe2d4
Display.jl: factor out diff printing logic
StefanKarpinski Sep 30, 2017
03551c9
print relative file paths before diffs
StefanKarpinski Sep 30, 2017
a2c8804
print all packages in project & manifest status
StefanKarpinski Sep 30, 2017
aa6f654
Display: factor out color choices
StefanKarpinski Oct 3, 2017
8ad0acc
work on status display
StefanKarpinski Oct 3, 2017
d450843
display git / non-git envs uniformly
StefanKarpinski Oct 3, 2017
99e8cae
better printing of relative paths
StefanKarpinski Oct 4, 2017
0220dbe
move status printing code into Pkg3.Display
StefanKarpinski Oct 4, 2017
26fed8b
refactor status printing code
StefanKarpinski Oct 4, 2017
6d51fc7
further refactoring of status printing
StefanKarpinski Oct 5, 2017
a503969
default to new combined status mode
StefanKarpinski Oct 6, 2017
3e5ab43
combine Package & PackageVersion => PackageSpec
StefanKarpinski Oct 11, 2017
4cf9e3b
add mode parsing support to `rm` and `up`
StefanKarpinski Oct 11, 2017
dce015c
`rm`, `up`: add real --manifest mode support
StefanKarpinski Oct 11, 2017
ce29870
rm -p vs -m: deletes from project vs manifest
StefanKarpinski Oct 13, 2017
39f04a6
improve output when no changes are made
StefanKarpinski Oct 13, 2017
34f3e2c
update sha1map
StefanKarpinski Oct 13, 2017
5bc8334
add auto build support (but no build command)
StefanKarpinski Oct 13, 2017
1b9d304
build: exit(1) on failure to notify parent
StefanKarpinski Oct 16, 2017
ae5a17b
toposort builds in dependency order (fails if not a DAG)
StefanKarpinski Oct 17, 2017
a2f800b
fix bug in using project file path as env
StefanKarpinski Oct 19, 2017
f8a8248
simplfy build processing code
StefanKarpinski Oct 19, 2017
28c803e
only build after writing out new environment
StefanKarpinski Oct 18, 2017
d9f70b8
fix the PyCall build issue, use 16-byte slugs for version dirs
StefanKarpinski Oct 19, 2017
6e32ff7
qualify call to Base.info since info is a local variable
StefanKarpinski Oct 19, 2017
718182c
use mod 62 arithmetic instead of SHA2-224 for slug generation
StefanKarpinski Oct 20, 2017
e229047
always print log file path when building
StefanKarpinski Oct 20, 2017
853ca08
`up` in manifest mode, default to all manifest packages, not just pro…
StefanKarpinski Oct 23, 2017
1c96bcb
implement a basic help system
StefanKarpinski Oct 23, 2017
468bfbe
tweak log file printing; help text
StefanKarpinski Oct 24, 2017
d6aef97
nicer printing of multiple help topics; allow `?add up` w/o space
StefanKarpinski Oct 24, 2017
f6d6de5
Empty LOAD_PATH on load and add Pkg3 dir
StefanKarpinski Oct 25, 2017
4596b54
actually fix loading issues (#9)
StefanKarpinski Oct 25, 2017
81291ae
avoid creating Project.toml without added dependencies
StefanKarpinski Oct 27, 2017
5b1f812
bin/update.jl: run other scripts with correct LOAD_PATH
StefanKarpinski Nov 7, 2017
7d4badf
remove precompile from internalized toml
KristofferC Nov 10, 2017
f210028
Merge pull request #20 from KristofferC/patch-1
StefanKarpinski Nov 10, 2017
2550b81
internalize BinaryProvider
KristofferC Nov 13, 2017
5483b6a
no precompilation remark, add pkg3 clone, pkg dir
SimonDanisch Nov 14, 2017
13ebc13
Merge pull request #26 from SimonDanisch/patch-1
StefanKarpinski Nov 14, 2017
5f146b8
tweak README
StefanKarpinski Nov 15, 2017
cecfdc2
enable precompilation for Pkg3
KristofferC Nov 16, 2017
4cbe461
small fixes to BinaryProvider
KristofferC Nov 16, 2017
2ef7b9f
install packages async and use tarballs if possible
KristofferC Nov 16, 2017
5de6df7
Merge pull request #27 from KristofferC/patch-2
StefanKarpinski Nov 16, 2017
aef0cca
query for install if package exists in registry but not found locall…
KristofferC Nov 16, 2017
9d53433
Merge pull request #25 from KristofferC/kc/async
StefanKarpinski Nov 16, 2017
91f5803
fix not printing already existing packages
KristofferC Nov 16, 2017
696afd0
Merge pull request #29 from KristofferC/patch-3
StefanKarpinski Nov 16, 2017
266ab1a
internalize the needed parts from Pkg2
KristofferC Nov 8, 2017
682cef5
show name of pkg on resolution failure
KristofferC Nov 19, 2017
173803f
bump TOML
KristofferC Nov 19, 2017
1d3edfa
select libgit2 when tarball download fails
vdayanand Nov 22, 2017
1fc2c3f
Merge pull request #39 from vdayanand/download_fix
KristofferC Nov 26, 2017
706a600
Merge pull request #37 from KristofferC/kc/show_pkg_name_on_req_fail
KristofferC Nov 26, 2017
7f58ca6
make a basic functional API and add some very basic tests
KristofferC Nov 18, 2017
b552904
use default depot for now
KristofferC Nov 26, 2017
6a9806f
Merge pull request #36 from KristofferC/kc/tests
KristofferC Nov 26, 2017
39bf5ce
add preview mode
KristofferC Nov 18, 2017
688f27c
Merge pull request #35 from KristofferC/kc/preview
KristofferC Nov 26, 2017
462e6fd
add test for pkg name in resolution failure
KristofferC Nov 26, 2017
b0c714b
Merge pull request #44 from JuliaLang/kc/test_name_res
KristofferC Nov 26, 2017
490e914
Merge pull request #38 from KristofferC/kc/fixtoml
KristofferC Nov 26, 2017
5987404
fix BinaryProvider deprecations
KristofferC Nov 17, 2017
ec1c4ff
fix TOML deprecations
KristofferC Nov 17, 2017
af5a2f8
fix TerminalMenus deprecations
KristofferC Nov 17, 2017
10ff6c4
upgrade Pkg3 and fix deprecations
KristofferC Nov 17, 2017
3734fd9
fixes on 0.7
KristofferC Nov 24, 2017
0263099
Merge pull request #30 from KristofferC/kc/07
KristofferC Nov 26, 2017
c7cfb25
fix typo
KristofferC Nov 26, 2017
f1ea56c
start implementing test (#33)
KristofferC Nov 26, 2017
27b65fa
update CI (#46)
KristofferC Nov 27, 2017
17887af
update AV badge url
KristofferC Nov 27, 2017
6bf7d0d
remove unnecessary using Base.Test
KristofferC Nov 27, 2017
c5785d4
bump sha1map (#49)
KristofferC Nov 28, 2017
d59635b
allow Pkg3 to be loaded before the REPL is initiated (#57)
KristofferC Dec 1, 2017
053c376
unbreak options pre-command options
StefanKarpinski Dec 5, 2017
4c96737
implement gc (#60)
KristofferC Dec 5, 2017
3c0f46f
Improve Pkg dependency pruning
carlobaldassi Dec 4, 2017
32161b7
Ensure consistency in Pkg solver decimation process
carlobaldassi Dec 4, 2017
5176c8e
Some debug code for the solver
carlobaldassi Dec 4, 2017
e8e8582
Restore Pkg2 sanity_check and more
carlobaldassi Dec 4, 2017
cdf23e7
update registries on up (#64)
KristofferC Dec 6, 2017
23b4df4
Merge pull request #63 from JuliaLang/cb/pkg2fixes
carlobaldassi Dec 6, 2017
beb8a61
exit pkg repl mode with ^C
fredrikekre Dec 7, 2017
3b8d98b
WIP force explicit init using `init` for local env (#51)
KristofferC Dec 7, 2017
d335252
Merge pull request #68 from JuliaLang/fe/Ctrl-C
StefanKarpinski Dec 7, 2017
b03a449
Remove all prerelease/build stuff from tests
carlobaldassi Dec 4, 2017
f5eff12
Expunge prerelease/build stuff from VersionWeight
carlobaldassi Dec 4, 2017
6d80171
Add ∩,∪,hash,== operations to VersionSpec
carlobaldassi Dec 7, 2017
efc8bc5
Temporary change in Pkg2 file loading order
carlobaldassi Dec 7, 2017
f8c5efd
Replace VersionSet->VersionSpec
carlobaldassi Dec 7, 2017
df7f834
Small notational improvements in test/resolve.jl
carlobaldassi Dec 7, 2017
46e97c1
Print names insteadof uuids in ResolveBacktrace
carlobaldassi Dec 8, 2017
c986cbc
Factor out name+short_uuid printing code
carlobaldassi Dec 8, 2017
0a0b1a1
Move contents of Pkg2Types into Types
carlobaldassi Dec 8, 2017
5c54e94
Remove Available type, use Requires instead
carlobaldassi Dec 8, 2017
fdcafb5
Use UUIDs instead of Strings in solver code
carlobaldassi Dec 8, 2017
a3dbce1
Remove Pkg2/reqs.jl and Pkg2.dir()
carlobaldassi Dec 8, 2017
d65a063
Remove Pkg2, merge its contents into main dir
carlobaldassi Dec 8, 2017
99d0229
Make maxsum solver behavior uniform across platforms
carlobaldassi Dec 9, 2017
537a641
Move uuid5 from bin/loadmeta.jl into src/Types.jl
carlobaldassi Dec 9, 2017
6370caf
Add back [pieces of] Pkg2 for bin/loadmeta.jl
carlobaldassi Dec 9, 2017
bd7da6d
fix #74 (#75)
Ken-B Dec 10, 2017
6e7e0ee
Transition from Pkg2 to Pkg3 (#73)
carlobaldassi Dec 12, 2017
c1507f9
use global settings struct for some other globals (#69)
KristofferC Dec 12, 2017
ea9499f
Creating a redundant merge commit to keep a record of Carlo's
StefanKarpinski Dec 12, 2017
70ca74e
help inference by hiding a method and not using Dates.format (#76)
KristofferC Dec 13, 2017
912e550
implement build call (#78)
KristofferC Dec 13, 2017
5a86ce5
add back Project.toml
KristofferC Dec 14, 2017
24dfd8e
Update package URL in README.md
iagobaapellaniz Dec 14, 2017
a554607
Merge pull request #79 from i-apellaniz/ia/typo-in-readme
StefanKarpinski Dec 14, 2017
3b86007
API for status (#54)
vdayanand Dec 27, 2017
317e312
Support for packages with same UUID name in multiple registries (#88)
vdayanand Dec 27, 2017
13bc82a
Tiny, largely inconsequential, fixes
carlobaldassi Dec 11, 2017
8ee6786
New dependency graph, new resolve function
carlobaldassi Jan 5, 2018
456a2f5
Fetch registered names before Graph construction
carlobaldassi Dec 19, 2017
1492de0
Throw error if user tries to add "julia"
carlobaldassi Dec 20, 2017
776439b
Some safeguards while resolving names
carlobaldassi Dec 21, 2017
977a30f
Refactor resolve backtrace into a resolution log
carlobaldassi Jan 5, 2018
6e97978
Remove reqs and fixed from GraphData
carlobaldassi Dec 20, 2017
275eb18
Implement copy for Graphs
carlobaldassi Dec 20, 2017
d35292e
Add STDOUT fallback argument to showlog
carlobaldassi Dec 20, 2017
2aa577c
Maxsum decimation builds an explicit solution
carlobaldassi Dec 20, 2017
1591c8b
Apply maxsum trace, log it, simplify after
carlobaldassi Dec 21, 2017
e65b076
Add global events to resolve log, remove verbosity
carlobaldassi Dec 21, 2017
7b636b5
Make resolve log detachable
carlobaldassi Dec 21, 2017
698be15
Add (optional) progress report in sanity_check
carlobaldassi Dec 21, 2017
98e1e8f
Add backtracking to max-sum, improve greedy solver
carlobaldassi Jan 5, 2018
d72d372
fix: error when JULIA_ENV ends with .toml (#96)
vdayanand Jan 6, 2018
55da10d
Fix preview command in the REPL (#85)
carlobaldassi Jan 6, 2018
b8086ba
Merge pull request #81 from JuliaLang/cb/graphrefactor
carlobaldassi Jan 6, 2018
2f304cb
Merge pull request #86 from JuliaLang/cb/resolvelog
carlobaldassi Jan 6, 2018
32d3dbc
Merge pull request #94 from JuliaLang/cb/backtrack
carlobaldassi Jan 6, 2018
e294caf
fix path in windows (#97)
vdayanand Jan 7, 2018
d001509
Use `transpose` instead of `'` syntax (#101)
carlobaldassi Jan 9, 2018
b4df8a2
Build dependent packages and support varargs in API.build (#91)
vdayanand Jan 11, 2018
8b499ac
loadmeta: add v0.6.{1,2} and a dummy commit for v0.7.0
StefanKarpinski Jan 24, 2018
d79c575
update sha1map
StefanKarpinski Jan 24, 2018
d96e19b
rename hash-sha1 to git-tree-sha1 (#107)
StefanKarpinski Jan 25, 2018
a221919
parameterize IO in TOML parser (#113)
KristofferC Feb 5, 2018
53cceb6
improve performance by not parameterizing on tuple length (#114)
KristofferC Feb 6, 2018
e589255
Significantly improve performance by not using broadcasting for very …
KristofferC Feb 7, 2018
4bd1379
speed up TOML parsing by ~4x (#116)
KristofferC Feb 9, 2018
72ec07f
fix Pkg3 deprecations
KristofferC Jan 8, 2018
59a8ca5
Fix TOML deprecations
KristofferC Jan 8, 2018
c122d82
fix TerminalMenus deprecations
KristofferC Jan 8, 2018
5224270
binary
KristofferC Jan 25, 2018
0653462
a few more deprecation fixes
StefanKarpinski Jan 25, 2018
9bbe58e
delete obsolete hook into Base.find_package
StefanKarpinski Jan 25, 2018
6cce62e
use copy(transpose(...)) instead of permutedims
KristofferC Jan 25, 2018
168e35e
hooking into base no longer needed
KristofferC Jan 25, 2018
ee93b28
update tests a bit
KristofferC Jan 25, 2018
bbf7db7
changes to work with new loading stuff + more deprecation fixes
StefanKarpinski Feb 7, 2018
e254e2e
clean up BinaryProvider files
KristofferC Feb 9, 2018
059007d
TerminalMenus now in Base
KristofferC Feb 9, 2018
c283202
Small fixes
KristofferC Feb 9, 2018
cac3e97
fix TOML deprecation
KristofferC Feb 9, 2018
37b479c
update sh1map.toml
KristofferC Feb 9, 2018
0bdbf47
small optimizations,
KristofferC Feb 9, 2018
dda682f
Merge pull request #99 from JuliaLang/kc/fix_deprecations
KristofferC Feb 9, 2018
86cc164
fix some left over deprecations (#120)
KristofferC Feb 9, 2018
2450b5d
compute registry names correctly (#123)
StefanKarpinski Feb 10, 2018
20028bb
generate Stdlib registry (#121)
StefanKarpinski Feb 10, 2018
88c72f7
make Compat depend on all Stdlib packages
StefanKarpinski Feb 10, 2018
0485f6b
refactor installation process, only use LibGit2 syncronously (#124)
KristofferC Feb 10, 2018
911711a
better way to determine stdlibdir (#125)
StefanKarpinski Feb 10, 2018
0680477
packages takes from channel are not necessarily in the same order as …
KristofferC Feb 10, 2018
776d31a
lazily probe for platform engines (#126)
KristofferC Feb 10, 2018
2e40f6e
improve stdlib dependency detection, remove special-casing Compat
StefanKarpinski Feb 11, 2018
6de6bdd
don't generate the Stdlib registry
StefanKarpinski Feb 12, 2018
a4a89df
update git metadata (sha1map, stdlib deps)
StefanKarpinski Feb 12, 2018
15a893b
update packages + stdlib dependencies
StefanKarpinski Feb 12, 2018
8689243
unknown UUIDs can get empty string as name, print as (unknown)
StefanKarpinski Feb 12, 2018
b8c18e8
delete unused function
KristofferC Feb 12, 2018
e49c9e8
Merge pull request #130 from JuliaLang/kc/del_unused
StefanKarpinski Feb 13, 2018
226ca85
thread a "PkgContext" through most of the Operations. (#131)
KristofferC Feb 13, 2018
490359a
update git metadata caches
StefanKarpinski Feb 13, 2018
f4ad786
fix trailing whitespace
StefanKarpinski Feb 14, 2018
5c724a1
do not resolve standard libraries, these are automatically satisfied
KristofferC Feb 13, 2018
2e21558
don't emit compat constraints for stdlib packages
StefanKarpinski Feb 14, 2018
18f25cf
Merge pull request #134 from JuliaLang/sk/no-stdlib-compat
StefanKarpinski Feb 14, 2018
e154a89
Merge pull request #133 from JuliaLang/kc/loaded_stuff_no_deps
StefanKarpinski Feb 14, 2018
9f8debd
project file: SHA is stdlib now; remove Manifest.toml
StefanKarpinski Feb 14, 2018
bac6bf0
slugs: use Base's SHA1 and version_slug
StefanKarpinski Feb 14, 2018
49528c5
Merge pull request #135 from JuliaLang/sk/slugs
StefanKarpinski Feb 15, 2018
5ceed31
make clear only runs right now on 0.7
KristofferC Feb 15, 2018
bb864c9
pull the JULIA_ENV thread and a lot of sweater unravels
StefanKarpinski Feb 15, 2018
461876f
Merge pull request #138 from JuliaLang/sk/x-julia-env
StefanKarpinski Feb 16, 2018
6b53b11
allow v in VersionRange string, also fix return type of findfirst (#139)
KristofferC Feb 16, 2018
1573125
update tests (#136)
KristofferC Feb 16, 2018
ccde7dd
refactor parsing using enums and structs and use enums in more places…
KristofferC Feb 16, 2018
2cf2845
submit to codecov (#140)
KristofferC Feb 17, 2018
ef861ae
add SHA to stdlib and update registry
KristofferC Feb 17, 2018
28a713f
fix infinte recursion when building non DAG
KristofferC Feb 17, 2018
1b79774
Merge pull request #141 from JuliaLang/kc/no_sha_req
StefanKarpinski Feb 17, 2018
7b48e9d
add Pkg3 to stdlib
KristofferC Feb 17, 2018
6bfa7de
help the compiler
KristofferC Feb 18, 2018
18a1272
fixup some tests
KristofferC Feb 19, 2018
370a349
build/test: evaluate in module with the right UUID
StefanKarpinski Feb 19, 2018
d489b15
don't error if stdlib without Project.toml file is found
KristofferC Feb 19, 2018
a81199b
Merge pull request #144 from JuliaLang/sk/build-module
StefanKarpinski Feb 19, 2018
bb2d420
implement pinning and freeing
KristofferC Feb 19, 2018
30e37c8
show 8 uuid chars to be consistent
KristofferC Feb 19, 2018
e986c05
simplify conditionals for updating the pinned stanza
KristofferC Feb 20, 2018
d79131e
Merge pull request #145 from JuliaLang/kc/rebase_pin
KristofferC Feb 20, 2018
195090b
add help for pin and free
KristofferC Feb 20, 2018
ed2f41a
implement checkout
KristofferC Feb 20, 2018
928223e
Merge pull request #146 from JuliaLang/kc/checkout
KristofferC Feb 20, 2018
909628d
fixup tests
KristofferC Feb 21, 2018
27715f5
trim trailing whitespace
KristofferC Feb 21, 2018
fda3bbd
only activate repl if interactive and the repl is a LineEditREPL
KristofferC Feb 21, 2018
9aa4564
fix trying to put a large UInt32 into an Int32 array on 32-bit systems
KristofferC Feb 21, 2018
1cf3d4b
Merge pull request #147 from JuliaLang/kc/few_fixes
KristofferC Feb 21, 2018
7215ca2
Add 'stdlib/Pkg3/' from commit '1cf3d4be069f2904dc44303ec12166f1f50c5…
KristofferC Feb 23, 2018
fc8dd1c
add to stdlib
KristofferC Feb 19, 2018
52e179e
add precompilation statements for Pkg3
KristofferC Feb 21, 2018
610ca03
disable Pkg3 precompile unless opted into
KristofferC Feb 23, 2018
d879aaa
fix DevNull -> devnull
KristofferC Feb 23, 2018
41ce00e
fix removal of LOAD_CACHE_PATH
KristofferC Feb 23, 2018
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 .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ jobs:
/tmp/julia/bin/julia-debug --sysimage-native-code=no -e 'true' &&
pushd /tmp/julia/share/julia/test &&
/tmp/julia/bin/julia --check-bounds=yes runtests.jl all --skip socket | bar -i 30 &&
/tmp/julia/bin/julia --check-bounds=yes runtests.jl LibGit2/online Pkg/pkg download &&
/tmp/julia/bin/julia --check-bounds=yes runtests.jl LibGit2/online Pkg/pkg Pkg3/pkg download &&
popd &&
mkdir /tmp/embedding-test &&
make check -C /tmp/julia/share/julia/test/embedding \
Expand Down
2 changes: 1 addition & 1 deletion .freebsdci.sh
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ runtests(){
export JULIA_CPU_CORES=$MAKE_JOBS_NUMBER

./usr/bin/julia test/runtests.jl all
./usr/bin/julia test/runtests.jl LibGit2/online Pkg/pkg download
./usr/bin/julia test/runtests.jl LibGit2/online Pkg/pkg Pkg3/pkg download
}

test-embedding(){
Expand Down
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ script:
- /tmp/julia/bin/julia -e 'versioninfo()'
- pushd /tmp/julia/share/julia/test
- /tmp/julia/bin/julia --check-bounds=yes runtests.jl $TESTSTORUN &&
/tmp/julia/bin/julia --check-bounds=yes runtests.jl LibGit2/online Pkg/pkg download
/tmp/julia/bin/julia --check-bounds=yes runtests.jl LibGit2/online Pkg/pkg Pkg3/pkg download
- popd
# test that the embedding code works on our installation
- mkdir /tmp/embedding-test &&
Expand Down
2 changes: 1 addition & 1 deletion appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,6 @@ test_script:
- usr\bin\julia -e "versioninfo()"
- usr\bin\julia --sysimage-native-code=no -e "true"
- cd julia-* && .\bin\julia.exe --check-bounds=yes share\julia\test\runtests.jl all &&
.\bin\julia.exe --check-bounds=yes share\julia\test\runtests.jl LibGit2/online Pkg/pkg download
.\bin\julia.exe --check-bounds=yes share\julia\test\runtests.jl LibGit2/online Pkg/pkg Pkg3/pkg download
- cd ..
- usr\bin\julia usr\share\julia\test\embedding\embedding-test.jl test\embedding\embedding.exe
1 change: 1 addition & 0 deletions base/sysimg.jl
Original file line number Diff line number Diff line change
Expand Up @@ -541,6 +541,7 @@ let
:Distributed,
:Test,
:REPL,
:Pkg3,
]

maxlen = maximum(textwidth.(string.(stdlibs)))
Expand Down
1 change: 1 addition & 0 deletions stdlib/Pkg3/.codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
comment: false
4 changes: 4 additions & 0 deletions stdlib/Pkg3/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/tmp
*.jl.mem
*.jl.cov
*.jl.*.cov
22 changes: 22 additions & 0 deletions stdlib/Pkg3/.travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
language: julia

julia:
- nightly

os:
- linux
- osx

notifications:
email: false

before_script:
- export PATH=$HOME/.local/bin:$PATH

script:
- if [[ -a .git/shallow ]]; then git fetch --unshallow; fi
- julia --check-bounds=yes -e 'Pkg.clone(pwd()); Pkg.build("Pkg3"); Pkg.test("Pkg3"; coverage=true)'

after_success:
- julia -e 'cd(Pkg.dir("Pkg3")); Pkg.add("Coverage"); using Coverage; Codecov.submit(Codecov.process_folder())'

36 changes: 36 additions & 0 deletions stdlib/Pkg3/Compat.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
[123] # this name doesn't matter, just needs to be unique
url = "http://github.com/PkgA/issues/123"
desc = "PkgA accidentally changed its `foo` API and broke PkgB"

# The name/uuid mapping of a package is recorded when a compatibility entry
# is created. This is only used to decode the package names below and does
# not need to match the name used in Config.toml or Manifest.toml, nor do
# they need to be updated later if those change for any reason. They may be
# updated, however, for clarity.

[123.uuids]
PkgA = "uuid#1"
PkgB = "uuid#2"

# A key-value pair in a broken/fixed stanza is satisfied if the named package
# on the LHS is checked out at a commit that is a descendant of the commit on
# the RHS. A broken/fixed stanza is satisfied if all of its key-value pairs
# are satisfied. If the value of "broken" or "fixed" is a single stanza (i.e.
# a dict) then it is satisfied if that stanza is. If a "broken" or "fixed"
# entry is an array, then it is satisfied if any of its stanzas are satisfied.
# A set of package versions is considered "broken" if the "broken" entry is
# satisfied but the "fixed" entry is not satisfied.

[123.broken]
PkgA = "commit#1"
PkgB = "commit#2"

[[123.fixed]]
PkgA = "commit#5"
PkgB = "commit#6"

[[123.fixed]]
PkgA = "commit#3"

[[123.fixed]]
PkgB = "commit#4"
47 changes: 47 additions & 0 deletions stdlib/Pkg3/LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
The Pkg3.jl package is licensed under the MIT "Expat" License:

> Copyright (c) 2017: Stefan Karpinski.
>
> Permission is hereby granted, free of charge, to any person obtaining a copy
> of this software and associated documentation files (the "Software"), to deal
> in the Software without restriction, including without limitation the rights
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
> copies of the Software, and to permit persons to whom the Software is
> furnished to do so, subject to the following conditions:
>
> The above copyright notice and this permission notice shall be included in all
> copies or substantial portions of the Software.
>
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
> SOFTWARE.
>

The file PlatformEngines.jl is under the following license:

The BinaryProvider.jl package is licensed under the MIT "Expat" License:

> Copyright (c) 2017: SimonDanisch.
>
> Permission is hereby granted, free of charge, to any person obtaining a copy
> of this software and associated documentation files (the "Software"), to deal
> in the Software without restriction, including without limitation the rights
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
> copies of the Software, and to permit persons to whom the Software is
> furnished to do so, subject to the following conditions:
>
> The above copyright notice and this permission notice shall be included in all
> copies or substantial portions of the Software.
>
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
> SOFTWARE.
>
15 changes: 15 additions & 0 deletions stdlib/Pkg3/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
desc = "The next-generation Julia package manager."
keywords = ["package", "management"]
license = "MIT"
name = "Pkg3"
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"

[deps]
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
LibGit2 = "76f85450-5226-5b5a-8eaa-529ad045b433"
Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
SHA = "ea8e919c-243c-51af-8825-aaa63cd721ce"
UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
67 changes: 67 additions & 0 deletions stdlib/Pkg3/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Pkg3

[![Build Status](https://travis-ci.org/JuliaLang/Pkg3.jl.svg?branch=master)](https://travis-ci.org/JuliaLang/Pkg3.jl) [![Build status](https://ci.appveyor.com/api/projects/status/ywiwk98gvye1ov6x/branch/master?svg=true)](https://ci.appveyor.com/project/KristofferC/pkg3-jl-li0m6/branch/master) [![codecov](https://codecov.io/gh/JuliaLang/Pkg3.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/JuliaLang/Pkg3.jl)

Next-generation package manager for Julia. Still quite alpha. The last commit that works on 0.6 is [4bd137919](https://github.com/JuliaLang/Pkg3.jl/commit/4bd1379195ce10056c26fb689f732907dd4f09fa).

To install, `Pkg.clone` the `Pkg3` repo itself:

```jl
Pkg.clone("https://github.com/JuliaLang/Pkg3.jl.git")
```

Packages are installed under `joinpath(homedir(), ".julia", "packages")`, so they won't influence the packages that you already have installed.

```jl
$ julia

julia> using Pkg3
```

This gives you a `pkg> ` REPL mode, activated by the `]` key. Currently, this supports thee operations: `add`, `rm` and `up`:

```jl
pkg> add JSON
INFO: Resolving package versions
INFO: Cloning [682c06a0-de6a-54ab-a142-c8b1cf79cde6] JSON
INFO: Installing JSON v0.13.0 [9003b4622ec7e553]
INFO: Updating project file /Users/stefan/projects/julia/Project.toml
INFO: [+] JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
INFO: Updating manifest file /Users/stefan/projects/julia/Manifest.toml
INFO: [34da2185] + Compat v0.31.0
INFO: [682c06a0] + JSON v0.13.0

pkg> add Compat @0.28
INFO: Resolving package versions
INFO: Installing Compat v0.28.0 [0427af7e2c8610c8]
INFO: Updating project file /Users/stefan/projects/julia/Project.toml
INFO: [+] Compat = "34da2185-b29b-5c13-b0c7-acf172513d20"
INFO: Updating manifest file /Users/stefan/projects/julia/Manifest.toml
INFO: [34da2185] ↓ Compat v0.31.0 ⇒ v0.28.0

pkg> rm Compat
INFO: Updating project file /Users/stefan/projects/julia/Project.toml
INFO: [-] Compat = "34da2185-b29b-5c13-b0c7-acf172513d20"
INFO: [-] JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
INFO: Updating manifest file /Users/stefan/projects/julia/Manifest.toml
INFO: [34da2185] - Compat v0.28.0
INFO: [682c06a0] - JSON v0.13.0

pkg> add JSON @0.10
INFO: Resolving package versions
INFO: Installing JSON v0.10.0 [77699b5cc09b169c]
INFO: Updating project file /Users/stefan/projects/julia/Project.toml
INFO: [+] JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
INFO: Updating manifest file /Users/stefan/projects/julia/Manifest.toml
INFO: [34da2185] + Compat v0.31.0
INFO: [682c06a0] + JSON v0.10.0

pkg> up
INFO: Resolving package versions
INFO: Updating project file /Users/stefan/projects/julia/Project.toml
INFO: [no changes]
INFO: Updating manifest file /Users/stefan/projects/julia/Manifest.toml
INFO: [682c06a0] ↑ JSON v0.10.0 ⇒ v0.13.0
```

Package operations create a `Project.toml` file that record what dependencies your project (or named global environment) has – i.e. what you've explicitly added. It also creates a `Manifest.toml` file that records the exact versions of each of those dependenices and their transitive dependencies – and the graph between them. You can load top-level dependencies via the usual `using JSON` or `import JSON` constructs in the REPL or in Julia scripts.
1 change: 1 addition & 0 deletions stdlib/Pkg3/REQUIRE
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
julia 0.7-
39 changes: 39 additions & 0 deletions stdlib/Pkg3/appveyor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
environment:
matrix:
- JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x86/julia-latest-win32.exe"
- JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x64/julia-latest-win64.exe"

branches:
only:
- master
- /release-.*/

notifications:
- provider: Email
on_build_success: false
on_build_failure: false
on_build_status_changed: false

install:
- ps: "[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12"
# If there's a newer build queued for the same PR, cancel this one
- ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod `
https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | `
Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { `
throw "There are newer queued builds for this pull request, failing early." }
# Download most recent Julia Windows binary
- ps: (new-object net.webclient).DownloadFile(
$env:JULIA_URL,
"C:\projects\julia-binary.exe")
# Run installer silently, output to C:\projects\julia
- C:\projects\julia-binary.exe /S /D=C:\projects\julia

build_script:
# Need to convert from shallow to complete for Pkg.clone to work
- IF EXIST .git\shallow (git fetch --unshallow)
- C:\projects\julia\bin\julia -e "versioninfo();
Pkg.clone(pwd(), \"Pkg3\"); Pkg.build(\"Pkg3\")"

test_script:
- C:\projects\julia\bin\julia -e "Pkg.test(\"Pkg3\")"

1 change: 1 addition & 0 deletions stdlib/Pkg3/bin/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
stdlib.toml.old
Loading