-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
use git subtree to graft Pkg3, etc. into stdlib #25942
Conversation
otherwise the build process doesn't pick up correct versions
The miniconda installer creates the correct shebang line no problem but conda update encounters long shebang lines and decides that they are dangerous, so it silently replaces a "long" (≥128 bytes) path to `python` with `/usr/bin/env python`. What could go wrong?!? This works around that behavior by using a 16-byte "slug" in package/version paths instead of using the full "$uuid/$sha1" string, which, to be fair, is an excessive 77 characters in the middle of paths. The issue was that Conda looks for long shebang lines (>127) and silently replaces the or
character and string concatenation
otherwise the SHA package would have to be internalized
when the build takes a while, you can tail the file to see what's up
This allows Pkg3 loading to work even if it's loaded with `include` instead of by being on the `LOAD_PATH` and running `using Pkg3`.
Support more forms of at-nospecialize.
remove precompile from internalized toml
add information I was missing when installing and remove remark about precompilation, which doesn't seem to be true anymore.
no precompilation remark, add pkg3 clone, pkg dir
Add occursin and find* methods replacing search and findin
* Add size(::LinearIndices) Fixes indexing LinearIndices with an array. This is useful in particular to convert cartesian indices that find() now returns to linear indices. * Add size(::LinearIndices) on older 0.7 versions
add Pkg3 Project.toml file
Why do we need `Pkg3/ext`? We should replace those with proper stdlib
modules. Also I still prefer the approach I prototyped in #25714 and don't
quite see the benefit of using `git sub-tree`.
…On Wed, Feb 7, 2018, 23:24 Stefan Karpinski ***@***.***> wrote:
This was astonishingly easy to do with git subtree. It really might be a
great solution for developing stdlib packages outside of the main repo but
having the code available without any additional futzing upon checkout of
julia. On this branch, you can do using Pkg3 from the julia prompt and it
works:
julia> using Pkg3
[ Info: Precompiling module Pkg3
pkg> init
[ Info: Initialized environment in /Users/stefan/projects/julia by creating the file Project.toml
pkg> add JSON
[ Info: Resolving package versions
[ Info: Updating "Project.toml"
[682c06a0] + JSON v0.16.4
[ Info: Updating "Manifest.toml"
[34da2185] + Compat v0.49.0
[682c06a0] + JSON v0.16.4
[4d1e1d77] + Nullables v0.0.3
Resulting project and manifest files.
Project.toml:
[deps]JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
Manifest.toml
[[Compat]]git-tree-sha1 = "e74e175d5b9c7411f17d7db90ccdfdf492bde9e9"uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"version = "0.49.0"
[[JSON]]deps = ["Compat", "Nullables"]git-tree-sha1 = "e4b57d438f523a2ad5f9f3510598f00961d4bc08"uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"version = "0.16.4"
[[Nullables]]deps = ["Compat"]git-tree-sha1 = "05176cebbb49ab979006b0bd12008c3f9a54f60c"uuid = "4d1e1d77-625e-5b40-9113-a560ec7a8ecd"version = "0.0.3"
Upshot
julia> using JSON
[ Info: Precompiling module JSON
ERROR: LoadError: LoadError: ArgumentError: Module Unicode not found in current path.
Run `Pkg.add("Unicode")` to install the Unicode package.
Ok, so there are some rough edges to smooth out, but this finally
basically works.
------------------------------
You can view, comment on, or merge this pull request online at:
#25942
Commit Summary
- toposort builds in dependency order (fails if not a DAG)
- character and string concatenation
- fix bug in using project file path as env
- simplfy build processing code
- only build after writing out new environment
- fix the PyCall build issue, use 16-byte slugs for version dirs
- qualify call to Base.info since info is a local variable
- Merge pull request #406 from chakravala/pull-request/55c211cb
- Drop Compat dependency (#42)
- use mod 62 arithmetic instead of SHA2-224 for slug generation
- always print log file path when building
- `up` in manifest mode, default to all manifest packages, not just
project packages
- implement a basic help system
- tweak log file printing; help text
- nicer printing of multiple help topics; allow `?add up` w/o space
- Empty LOAD_PATH on load and add Pkg3 dir
- actually fix loading issues (#9)
- avoid creating Project.toml without added dependencies
- Much smarter file wrapper that loads in files one chunk at a time
- Add BitSet (#407)
- bin/update.jl: run other scripts with correct LOAD_PATH
- add HMAC functionalities (#45)
- Support more forms of at-nospecialize.
- Avoid method override warnings.
- Merge pull request #409 from JuliaLang/tb/nospecialize
- remove precompile from internalized toml
- Merge pull request #20 from KristofferC/patch-1
- internalize BinaryProvider
- no precompilation remark, add pkg3 clone, pkg dir
- Merge pull request #26 from SimonDanisch/patch-1
- tweak README
- enable precompilation for Pkg3
- small fixes to BinaryProvider
- install packages async and use tarballs if possible
- Merge pull request #27 from KristofferC/patch-2
- query for install if package exists in registry but not found
locally (#24)
- Merge pull request #25 from KristofferC/kc/async
- fix not printing already existing packages
- Merge pull request #29 from KristofferC/patch-3
- internalize the needed parts from Pkg2
- show name of pkg on resolution failure
- bump TOML
- add textwidth (merge of strwidth and charwidth on 0.7) (#411)
- Add (sp)diagm pair constructors (#408)
- Add constructors for `Matrix{T}`, `Array{T}`, and
`SparseMatrixCSC{T}` from `UniformScaling` (#412)
- select libgit2 when tarball download fails
- Add Compat.Dates for standard library Dates (#413)
- Merge pull request #39 from vdayanand/download_fix
- Merge pull request #37 from KristofferC/kc/show_pkg_name_on_req_fail
- make a basic functional API and add some very basic tests
- use default depot for now
- Merge pull request #36 from KristofferC/kc/tests
- add preview mode
- Merge pull request #35 from KristofferC/kc/preview
- add test for pkg name in resolution failure
- Merge pull request #44 from JuliaLang/kc/test_name_res
- Merge pull request #38 from KristofferC/kc/fixtoml
- fix BinaryProvider deprecations
- fix TOML deprecations
- fix TerminalMenus deprecations
- upgrade Pkg3 and fix deprecations
- fixes on 0.7
- Merge pull request #30 from KristofferC/kc/07
- fix typo
- start implementing test (#33)
- update CI (#46)
- update AV badge url
- remove unnecessary using Base.Test
- Uninitialized, uninitialized and Array constructors supporting
uninitialized (#417)
- bump sha1map (#49)
- Cleanup Julia 0.7 deprecations (#419)
- Add function-first finalizers (#416)
- Base64 (#418)
- revert part of #419 and put tests in a version check instead (#421)
- allow Pkg3 to be loaded before the REPL is initiated (#57)
- Revert "Add function-first finalizers (#416)"
- Add ambiguity detection test
- Merge pull request #422 from JuliaLang/aa/revert-finalizer
- unbreak options pre-command options
- implement gc (#60)
- IOContext(::IO, ::Pair, ::Pair...) (#427)
- Improve Pkg dependency pruning
- Ensure consistency in Pkg solver decimation process
- Some debug code for the solver
- Restore Pkg2 sanity_check and more
- update registries on up (#64)
- Merge pull request #63 from JuliaLang/cb/pkg2fixes
- BitArray constructors for uninitialized (#429)
- Support keywords in invokelatest (#424)
- Support get(::Function, ::EnvHash, key) (#430)
- exit pkg repl mode with ^C
- WIP force explicit init using `init` for local env (#51)
- Merge pull request #68 from JuliaLang/fe/Ctrl-C
- Remove all prerelease/build stuff from tests
- Expunge prerelease/build stuff from VersionWeight
- Add ∩,∪,hash,== operations to VersionSpec
- Temporary change in Pkg2 file loading order
- Replace VersionSet->VersionSpec
- Small notational improvements in test/resolve.jl
- Print names insteadof uuids in ResolveBacktrace
- Factor out name+short_uuid printing code
- Move contents of Pkg2Types into Types
- Remove Available type, use Requires instead
- Use UUIDs instead of Strings in solver code
- Remove Pkg2/reqs.jl and Pkg2.dir()
- Remove Pkg2, merge its contents into main dir
- Make maxsum solver behavior uniform across platforms
- Move uuid5 from bin/loadmeta.jl into src/Types.jl
- Add back [pieces of] Pkg2 for bin/loadmeta.jl
- fix #74 (#75)
- Transition from Pkg2 to Pkg3 (#73)
- use global settings struct for some other globals (#69)
- Creating a redundant merge commit to keep a record of Carlo's
- help inference by hiding a method and not using Dates.format (#76)
- implement build call (#78)
- add back Project.toml
- Update package URL in README.md
- Merge pull request #79 from i-apellaniz/ia/typo-in-readme
- `Complex<2N>` to `ComplexF<N>` rename (#431)
- Implement `pairs` like PR 22907 (#428)
- Add Compat.Unicode for standard library Unicode (#432)
- Add AbstractDict
- Add Printf
- Add IterativeEigensolvers
- Add SuiteSparse
- Add axes
- Disable Nullable tests when Nullable isn't defined
- Add Some, coalesce, notnothing
- Add Nothing and Cvoid
- Merge pull request #435 from JuliaLang/aa/0.7
- Temporarily disable the OffsetArrays tests for 0.7
- Better workaround for IterativeEigensolvers rename
- Merge pull request #436 from JuliaLang/aa/disable-oa
- add Compat.Sys.BINDIR (#433)
- Undeprecate textwidth (only on Julia < 0.7-DEV.2915) (#437)
- API for status (#54)
- Support for packages with same UUID name in multiple registries (#88)
- Don't export axes (#442)
- Add invpermute!
- Add pairs method for replace
- Add pushfirst! and popfirst! (#444)
- Merge branch 'master' into aa/more-0.7
- Merge pull request #445 from JuliaLang/aa/more-0.7
- Tiny, largely inconsequential, fixes
- New dependency graph, new resolve function
- Fetch registered names before Graph construction
- Throw error if user tries to add "julia"
- Some safeguards while resolving names
- Refactor resolve backtrace into a resolution log
- Remove reqs and fixed from GraphData
- Implement copy for Graphs
- Add STDOUT fallback argument to showlog
- Maxsum decimation builds an explicit solution
- Apply maxsum trace, log it, simplify after
- Add global events to resolve log, remove verbosity
- Make resolve log detachable
- Add (optional) progress report in sanity_check
- Add backtracking to max-sum, improve greedy solver
- fix: error when JULIA_ENV ends with .toml (#96)
- Fix preview command in the REPL (#85)
- Merge pull request #81 from JuliaLang/cb/graphrefactor
- Merge pull request #86 from JuliaLang/cb/resolvelog
- Merge pull request #94 from JuliaLang/cb/backtrack
- Add CartesianIndices and LinearIndices
- Drop Julia 0.5 support
- fix path in windows (#97)
- fix using A: B deprecation warning (#447)
- Merge pull request #446 from JuliaLang/nl/indices
- Use `transpose` instead of `'` syntax (#101)
- Moved BINDIR definition into '__init__'. (#439)
- add copyto! and unsafe_copyto! (#448)
- Added Compat.AbstractDateTime (#443)
- =Use abstract type, not union (#48)
- Abstractions for MD5.jl (#49)
- fix typo in comment
- Build dependent packages and support varargs in API.build (#91)
- Compat.IteratorSize and Compat.IteratorEltype (#451)
- add contains(str, r::Regex) (#452)
- 0.7 compat fixes (#51)
- Compat.SparseArrays (#459)
- Compat.Random (#460)
- add Compat.at-error, Compat.at-warn, Compat.at-info and
Compat.at-debug (#458)
- Compat.LinearAlgebra (#463)
- Add parentmodule
- Compat for Libdl moving to stdlib
- Merge pull request #465 from JuliaLang/jq/libdl
- Compat for findall
- Merge pull request #461 from JuliaLang/aa/parentmodule
- Merge branch 'master' into jq/findall
- Merge pull request #466 from JuliaLang/jq/findall
- README entry and tests for Compat.Libdl
- README entry and test for Compat.findall
- add link for LinearAlgebra PR
- Merge pull request #467 from JuliaLang/fe/news-and-tests
- Optimize SHA1 implementation. (#47)
- Add Matrix(I, dims) constructor (#438)
- Add argmin and argmax (#470)
- Add Compat.REPL (#469)
- More 0.7 compat (#52)
- Bump Compat requirement
- loadmeta: add v0.6.{1,2} and a dummy commit for v0.7.0
- update sha1map
- Fix `argmin`/`argmax` for non-vectors
- rename hash-sha1 to git-tree-sha1 (#107)
- fix Pkg3 deprecations
- Fix TOML deprecations
- fix TerminalMenus deprecations
- binary
- a few more deprecation fixes
- delete obsolete hook into Base.find_package
- use copy(transpose(...)) instead of permutedims
- hooking into base no longer needed
- update tests a bit
- Handle `HasShape` change (#476)
- codeunits and ncodeunits (#474)
- Backport period rounding (#462)
- Compat for Serialization stdlib (#473)
- Add nameof (#471)
- Add `isabstracttype` and `isconcretetype`
- Use `replace` with pair argument in tests
- Use `Compat.axes` instead of `indices` in tests
- `readline` with `keep` instead of `chomp` keyword
- Use `Nothing` instead of `Void` in tests
- Use `CartesianIndices` instead of `CartesianRange` in tests
- Utilize `codeunits` in tests
- Add `GC` module with `gc` and `gc_enable`
- Add `Distributed`
- Merge pull request #477 from JuliaLang/mh/fixes_0.7
- Add `lastindex`
- Merge pull request #480 from JuliaLang/mh/lastindex
- Delete outdated deprecated code
- Merge pull request #456 from JuliaLang/teh/expunge_oldcode
- Add PkgEval badge for Julia 0.7 [ci skip] (#479)
- Display -> AbstractDisplay (#482)
- Add bytesavailable (#483)
- Add printstyled (#481)
- Add hasmethod and objectid (#486)
- Add Compat.Pkg and Compat.InteractiveUtils (#485)
- Add occursin and find* methods replacing search and findin
- Add unexported find* functions returning nothing
- Add Compat.LibGit2 (#487)
- Merge pull request #484 from JuliaLang/nl/search
- Add size(::LinearIndices) (#455)
- changes to work with new loading stuff + more deprecation fixes
- add Pkg3 Project.toml file
- add Pkg3 Project.toml file
- Merge pull request #488 from JuliaLang/sk/project-file
- Add 'stdlib/Compat/' from commit
'95db156e9adf11adf400caf7c3db29ea025a389a'
- Add 'stdlib/SHA/' from commit
'2958883111f7ddc37b485a7f91af18be4ab84434'
- Add 'stdlib/Pkg3/' from commit
'3c0c9e2834b5a7a1c0f4fa04ae25f61cc4ba8483'
File Changes
- *A* stdlib/Compat/.gitignore
<https://github.com/JuliaLang/julia/pull/25942/files#diff-0> (2)
- *A* stdlib/Compat/.travis.yml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-1> (9)
- *A* stdlib/Compat/LICENSE.md
<https://github.com/JuliaLang/julia/pull/25942/files#diff-2> (23)
- *A* stdlib/Compat/Project.toml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-3> (24)
- *A* stdlib/Compat/README.md
<https://github.com/JuliaLang/julia/pull/25942/files#diff-4> (555)
- *A* stdlib/Compat/REQUIRE
<https://github.com/JuliaLang/julia/pull/25942/files#diff-5> (1)
- *A* stdlib/Compat/appveyor.yml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-6> (40)
- *A* stdlib/Compat/src/Compat.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-7> (1634)
- *A* stdlib/Compat/src/arraymacros.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-8> (201)
- *A* stdlib/Compat/src/deprecated.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-9> (58)
- *A* stdlib/Compat/test/REQUIRE
<https://github.com/JuliaLang/julia/pull/25942/files#diff-10> (1)
- *A* stdlib/Compat/test/runtests.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-11> (1396)
- *A* stdlib/Pkg3/.codecov.yml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-12> (1)
- *A* stdlib/Pkg3/.gitignore
<https://github.com/JuliaLang/julia/pull/25942/files#diff-13> (4)
- *A* stdlib/Pkg3/.travis.yml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-14> (22)
- *A* stdlib/Pkg3/Compat.toml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-15> (36)
- *A* stdlib/Pkg3/LICENSE.md
<https://github.com/JuliaLang/julia/pull/25942/files#diff-16> (22)
- *A* stdlib/Pkg3/Manifest.toml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-17> (10)
- *A* stdlib/Pkg3/Project.toml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-18> (16)
- *A* stdlib/Pkg3/README.md
<https://github.com/JuliaLang/julia/pull/25942/files#diff-19> (69)
- *A* stdlib/Pkg3/REQUIRE
<https://github.com/JuliaLang/julia/pull/25942/files#diff-20> (3)
- *A* stdlib/Pkg3/appveyor.yml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-21> (39)
- *A* stdlib/Pkg3/bin/Pkg2/Pkg2.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-22> (45)
- *A* stdlib/Pkg3/bin/Pkg2/reqs.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-23> (46)
- *A* stdlib/Pkg3/bin/Pkg2/types.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-24> (128)
- *A* stdlib/Pkg3/bin/generate.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-25> (109)
- *A* stdlib/Pkg3/bin/loadmeta.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-26> (148)
- *A* stdlib/Pkg3/bin/sha1map.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-27> (51)
- *A* stdlib/Pkg3/bin/sha1map.toml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-28> (16907)
- *A* stdlib/Pkg3/bin/update.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-29> (6)
- *A* stdlib/Pkg3/bin/utils.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-30> (105)
- *A* stdlib/Pkg3/ext/BinaryProvider/.codecov.yml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-31> (1)
- *A* stdlib/Pkg3/ext/BinaryProvider/.gitignore
<https://github.com/JuliaLang/julia/pull/25942/files#diff-32> (5)
- *A* stdlib/Pkg3/ext/BinaryProvider/.travis.yml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-33> (30)
- *A* stdlib/Pkg3/ext/BinaryProvider/LICENSE.md
<https://github.com/JuliaLang/julia/pull/25942/files#diff-34> (22)
- *A* stdlib/Pkg3/ext/BinaryProvider/README.md
<https://github.com/JuliaLang/julia/pull/25942/files#diff-35> (35)
- *A* stdlib/Pkg3/ext/BinaryProvider/REQUIRE
<https://github.com/JuliaLang/julia/pull/25942/files#diff-36> (3)
- *A* stdlib/Pkg3/ext/BinaryProvider/appveyor.yml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-37> (48)
- *A* stdlib/Pkg3/ext/BinaryProvider/src/BinDepsIntegration.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-38> (37)
- *A* stdlib/Pkg3/ext/BinaryProvider/src/BinaryPackage.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-39> (151)
- *A* stdlib/Pkg3/ext/BinaryProvider/src/BinaryProvider.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-40> (37)
- *A* stdlib/Pkg3/ext/BinaryProvider/src/OutputCollector.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-41> (362)
- *A* stdlib/Pkg3/ext/BinaryProvider/src/PlatformEngines.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-42> (542)
- *A* stdlib/Pkg3/ext/BinaryProvider/src/PlatformNames.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-43> (212)
- *A* stdlib/Pkg3/ext/BinaryProvider/src/Prefix.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-44> (543)
- *A* stdlib/Pkg3/ext/BinaryProvider/src/Products.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-45> (345)
- *A* stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/.gitignore
<https://github.com/JuliaLang/julia/pull/25942/files#diff-46> (2)
- *A* stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/README.md
<https://github.com/JuliaLang/julia/pull/25942/files#diff-47> (3)
- *A* stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/deps/build.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-48> (37)
- *A* stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/src/LibFoo.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-49> (38)
- *A* stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/test/runtests.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-50> (5)
- *A* stdlib/Pkg3/ext/BinaryProvider/test/output_tests/fail.sh
<https://github.com/JuliaLang/julia/pull/25942/files#diff-51> (6)
- *A* stdlib/Pkg3/ext/BinaryProvider/test/output_tests/kill.sh
<https://github.com/JuliaLang/julia/pull/25942/files#diff-52> (10)
- *A* stdlib/Pkg3/ext/BinaryProvider/test/output_tests/long.sh
<https://github.com/JuliaLang/julia/pull/25942/files#diff-53> (5)
- *A* stdlib/Pkg3/ext/BinaryProvider/test/output_tests/newlines.sh
<https://github.com/JuliaLang/julia/pull/25942/files#diff-54> (6)
- *A* stdlib/Pkg3/ext/BinaryProvider/test/output_tests/simple.sh
<https://github.com/JuliaLang/julia/pull/25942/files#diff-55> (8)
- *A* stdlib/Pkg3/ext/BinaryProvider/test/runtests.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-56> (575)
- *A* stdlib/Pkg3/ext/TOML/.gitignore
<https://github.com/JuliaLang/julia/pull/25942/files#diff-57> (3)
- *A* stdlib/Pkg3/ext/TOML/.travis.yml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-58> (15)
- *A* stdlib/Pkg3/ext/TOML/LICENSE.md
<https://github.com/JuliaLang/julia/pull/25942/files#diff-59> (22)
- *A* stdlib/Pkg3/ext/TOML/README.md
<https://github.com/JuliaLang/julia/pull/25942/files#diff-60> (37)
- *A* stdlib/Pkg3/ext/TOML/REQUIRE
<https://github.com/JuliaLang/julia/pull/25942/files#diff-61> (1)
- *A* stdlib/Pkg3/ext/TOML/appveyor.yml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-62> (33)
- *A* stdlib/Pkg3/ext/TOML/src/TOML.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-63> (46)
- *A* stdlib/Pkg3/ext/TOML/src/parser.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-64> (896)
- *A* stdlib/Pkg3/ext/TOML/src/print.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-65> (97)
- *A* stdlib/Pkg3/ext/TOML/test/runtests.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-66> (671)
- *A* stdlib/Pkg3/ext/TerminalMenus/.gitignore
<https://github.com/JuliaLang/julia/pull/25942/files#diff-67> (5)
- *A* stdlib/Pkg3/ext/TerminalMenus/.travis.yml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-68> (35)
- *A* stdlib/Pkg3/ext/TerminalMenus/LICENSE.md
<https://github.com/JuliaLang/julia/pull/25942/files#diff-69> (22)
- *A* stdlib/Pkg3/ext/TerminalMenus/README.md
<https://github.com/JuliaLang/julia/pull/25942/files#diff-70> (170)
- *A* stdlib/Pkg3/ext/TerminalMenus/REQUIRE
<https://github.com/JuliaLang/julia/pull/25942/files#diff-71> (1)
- *A* stdlib/Pkg3/ext/TerminalMenus/appveyor.yml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-72> (47)
- *A* stdlib/Pkg3/ext/TerminalMenus/changelog.md
<https://github.com/JuliaLang/julia/pull/25942/files#diff-73> (10)
- *A* stdlib/Pkg3/ext/TerminalMenus/src/AbstractMenu.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-74> (262)
- *A* stdlib/Pkg3/ext/TerminalMenus/src/MultiSelectMenu.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-75> (112)
- *A* stdlib/Pkg3/ext/TerminalMenus/src/RadioMenu.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-76> (77)
- *A* stdlib/Pkg3/ext/TerminalMenus/src/TerminalMenus.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-77> (24)
- *A* stdlib/Pkg3/ext/TerminalMenus/src/config.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-78> (79)
- *A* stdlib/Pkg3/ext/TerminalMenus/src/util.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-79> (123)
- *A* stdlib/Pkg3/ext/TerminalMenus/test/multiselect_menu.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-80> (35)
- *A* stdlib/Pkg3/ext/TerminalMenus/test/radio_menu.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-81> (38)
- *A* stdlib/Pkg3/ext/TerminalMenus/test/runtests.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-82> (41)
- *A* stdlib/Pkg3/src/API.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-83> (290)
- *A* stdlib/Pkg3/src/Display.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-84> (197)
- *A* stdlib/Pkg3/src/GraphType.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-85> (1448)
- *A* stdlib/Pkg3/src/Operations.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-86> (739)
- *A* stdlib/Pkg3/src/Pkg3.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-87> (74)
- *A* stdlib/Pkg3/src/REPLMode.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-88> (549)
- *A* stdlib/Pkg3/src/Resolve.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-89> (417)
- *A* stdlib/Pkg3/src/Types.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-90> (1012)
- *A* stdlib/Pkg3/src/resolve/FieldValues.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-91> (108)
- *A* stdlib/Pkg3/src/resolve/MaxSum.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-92> (482)
- *A* stdlib/Pkg3/src/resolve/VersionWeights.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-93> (58)
- *A* stdlib/Pkg3/test/NastyGenerator.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-94> (96)
- *A* stdlib/Pkg3/test/operations.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-95> (86)
- *A* stdlib/Pkg3/test/resolve.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-96> (587)
- *A* stdlib/Pkg3/test/resolvedata1.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-97> (2853)
- *A* stdlib/Pkg3/test/runtests.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-98> (6)
- *A* stdlib/SHA/.github/ISSUE_TEMPLATE.md
<https://github.com/JuliaLang/julia/pull/25942/files#diff-99> (5)
- *A* stdlib/SHA/.github/PULL_REQUEST_TEMPLATE.md
<https://github.com/JuliaLang/julia/pull/25942/files#diff-100> (5)
- *A* stdlib/SHA/.gitignore
<https://github.com/JuliaLang/julia/pull/25942/files#diff-101> (1)
- *A* stdlib/SHA/.travis.yml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-102> (15)
- *A* stdlib/SHA/LICENSE.md
<https://github.com/JuliaLang/julia/pull/25942/files#diff-103> (58)
- *A* stdlib/SHA/Project.toml
<https://github.com/JuliaLang/julia/pull/25942/files#diff-104> (5)
- *A* stdlib/SHA/README.md
<https://github.com/JuliaLang/julia/pull/25942/files#diff-105> (52)
- *A* stdlib/SHA/REQUIRE
<https://github.com/JuliaLang/julia/pull/25942/files#diff-106> (2)
- *A* stdlib/SHA/src/SHA.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-107> (92)
- *A* stdlib/SHA/src/base_functions.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-108> (40)
- *A* stdlib/SHA/src/common.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-109> (79)
- *A* stdlib/SHA/src/constants.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-110> (129)
- *A* stdlib/SHA/src/hmac.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-111> (33)
- *A* stdlib/SHA/src/sha1.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-112> (93)
- *A* stdlib/SHA/src/sha2.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-113> (134)
- *A* stdlib/SHA/src/sha3.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-114> (81)
- *A* stdlib/SHA/src/types.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-115> (153)
- *A* stdlib/SHA/test/perf.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-116> (45)
- *A* stdlib/SHA/test/runtests.jl
<https://github.com/JuliaLang/julia/pull/25942/files#diff-117> (293)
Patch Links:
- https://github.com/JuliaLang/julia/pull/25942.patch
- https://github.com/JuliaLang/julia/pull/25942.diff
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#25942>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAI3at3FdlYRlH5VYkSVgOvAlO_mUnOAks5tSncagaJpZM4R9yDp>
.
|
Yes, the things in Pkg3/ext should become proper stdlib modules, but I wasn't quite ready to add those right now – they are at the moment, implementation details of Pkg3. I'm not 100% sold on git subtree, but so far it's been a pleasure to use. The main advantages seem to be:
|
Milestoning, not because we have to do it this way but because we have to do something like this. |
Drupal followed a similar way a few month ago
The symfony framework (~ new drupal kernel, and more) guys gave a talk about this at drupalcon 2016 : a monorepo vs manyrepos (slides), (video), and (code) |
Triage dixit: no Compat in stdlib, so excise that dependency. Pkg3 + SHA in base is fine, but favors @vchuravy's approach to use @vtjnash's "git external" mechanism. The TerminalMenus is a different story since it should be merged into REPL; for that, using subtree to import and do a temporary bridge between internal and external is fine. |
In triage several of us prefer @vchuravy 's approach (#25714). I think that will make it clearer that the packages are separate, and owned by different repos. There's something to be said for being able to update Base and stdlibs all at once, but we're already used to having many packages in external repos that might need to be updated in sync with Base. |
That seems very(!!!) unfortunate in my view. Having stuff in the same repo tremendously ease development and coherence. All other stdlibs live in the repo. Why should Pkg3 be the only one getting punished!?
I am all for getting rid of the Pkg3 repo and just have it here if it would mean not having to do this. Just develop it here then.
And this is typically very annoying and time-consuming. Run Also, multiple stdlib packages depend on Pkg right now. Are they going to be in this repo and depend on a repo located somewhere else? |
I didn't manage to get to the triage call in time for this, but if the discussion was only between keeping the Pkg3 repo separate and using |
If Compat is out of the picture, then I'm much more ok with using git subtrees. I also wouldn't object to entirely moving the Pkg3 code here. |
I'll close this then since @KristofferC's PRs supersede it. |
I was going to update this one but can make a new one. |
Eh, just make a new one. There's too much junk in here. |
Being frozen in stdlib is a punishment, being free to develop separately should be a positive.
Regardless of where this code lives, I think we should encourage development to happen upstream, with separate release cycles, issue tracker, CI, etc., then just import the stable releases here. |
This was astonishingly easy to do with
git subtree
. It really might be a great solution for developing stdlib packages outside of the main repo but having the code available without any additional futzing upon checkout of julia. On this branch, you can dousing Pkg3
from the julia prompt and it works:Resulting project and manifest files.
Project.toml:
Manifest.toml
Upshot
Ok, so there are some rough edges to smooth out, but this finally basically works.