Skip to content

[pull] master from JuliaLang:master#4

Open
pull[bot] wants to merge 303 commits into
Julia-Embedded:masterfrom
JuliaLang:master
Open

[pull] master from JuliaLang:master#4
pull[bot] wants to merge 303 commits into
Julia-Embedded:masterfrom
JuliaLang:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Nov 24, 2024

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.1)

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull Bot added the ⤵️ pull label Nov 24, 2024
adienes and others added 29 commits April 29, 2025 14:24
…y URL or devved (#4225)

Co-authored-by: Kristoffer <kcarlsson89@gmail.com>
Co-authored-by: Florian Atteneder <florian.atteneder@gmail.com>
Co-authored-by: SundaraRaman R <sundar.vignyaan@gmail.com>
Co-authored-by: Viral B. Shah <viral@mayin.org>
)

Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com>
Co-authored-by: gbaraldi <baraldigabriel@gmail.com>
Co-authored-by: KristofferC <kristoffer.carlsson@juliacomputing.com>
)

Co-authored-by: KristofferC <kristoffer.carlsson@juliacomputing.com>
The code here appeared to be untested and broke whenever something actually used it.
Example backtrace:

```
julia> JLLPrefixes.collect_artifact_paths(["ripgrep_jll"])
ERROR: MethodError: no method matching haskey(::Vector{Base.UUID}, ::String)
The function `haskey` exists, but no method is defined for this combination of argument types.

Closest candidates are:
  haskey(::Pkg.Types.Manifest, ::Any)
   @ Pkg ~/.julia/juliaup/julia-nightly/share/julia/stdlib/v1.13/Pkg/src/Types.jl:323
  haskey(::REPL.Terminals.TTYTerminal, ::Any)
   @ REPL ~/.julia/juliaup/julia-nightly/share/julia/stdlib/v1.13/REPL/src/Terminals.jl:155
  haskey(::LibGit2.CachedCredentials, ::Any)
   @ LibGit2 ~/.julia/juliaup/julia-nightly/share/julia/stdlib/v1.13/LibGit2/src/types.jl:1357
  ...

Stacktrace:
  [1] fixups_from_projectfile!(ctx::Pkg.Types.Context)
    @ Pkg.Operations ~/.julia/juliaup/julia-nightly/share/julia/stdlib/v1.13/Pkg/src/Operations.jl:238
  [2] add(ctx::Pkg.Types.Context, pkgs::Vector{…}, new_git::Set{…}; allow_autoprecomp::Bool, preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform, target::Symbol)
    @ Pkg.Operations ~/.julia/juliaup/julia-nightly/share/julia/stdlib/v1.13/Pkg/src/Operations.jl:1710
  [3] add
    @ ~/.julia/juliaup/julia-nightly/share/julia/stdlib/v1.13/Pkg/src/Operations.jl:1680 [inlined]
  [4] add(ctx::Pkg.Types.Context, pkgs::Vector{…}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform, target::Symbol, allow_autoprecomp::Bool, kwargs::@kwargs{…})
    @ Pkg.API ~/.julia/juliaup/julia-nightly/share/julia/stdlib/v1.13/Pkg/src/API.jl:328
```
…alled app (#4263)

Co-authored-by: KristofferC <kristoffer.carlsson@juliacomputing.com>
Co-authored-by: KristofferC <kristoffer.carlsson@juliacomputing.com>
Co-authored-by: KristofferC <kristoffer.carlsson@juliacomputing.com>
Co-authored-by: KristofferC <kristoffer.carlsson@juliacomputing.com>
Co-authored-by: Claude <noreply@anthropic.com>
KristofferC and others added 30 commits February 10, 2026 16:26
…4396)

Co-authored-by: KristofferC <kristoffer.carlsson@juliacomputing.com>
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…o the General registry docs (#4626)

Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com>
Co-authored-by: Claude <claude@anthropic.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Switch from the deprecated 2-arg `complete_path(path, pos)` to the
1-arg `complete_path(path)` form, and adapt to JuliaLang/julia#61397
which renamed `shell_escape` to `cmd_escape`.

Co-authored-by: Claude <noreply@anthropic.com>
…compile (#4658)

* Fix workspace test path: use test env Context for instantiate and precompile

Previously, `Pkg.precompile()` was called without a Context, so it used
the currently active (parent) project instead of the test project. The
`instantiate` call also created a throwaway Context each time.

Create a shared `test_ctx` pointing at the test env and pass it to both
`instantiate` and `precompile` so they operate on the correct project.

* Test that workspace test deps are precompiled

Assert in WorkspaceTestInstantiate's runtests.jl that Example (a
test-only dep) is precompiled before it is loaded. This catches the
bug where Pkg.precompile targeted the parent project instead of the
test subproject.

* allow autoprecomp
The `syntax.julia_version` field written to Manifest.toml was recording the
full DEV build number (e.g. `1.13.0-DEV.1234`) instead of dropping it to
just `1.13.0-DEV`. This caused unnecessary manifest churn on each build,
inconsistent with the behavior of the top-level `julia_version` field which
already uses `dropbuild`.

Fix `get_project_syntax_version` to:
- Return `p.julia_syntax_version` directly instead of the undefined
  `syntax_table["julia_version"]` (which was a bug)
- Apply `dropbuild(VERSION)` when falling back to the current Julia version

Fixes JuliaLang/julia#61578

Co-authored-by: Claude <claude@anthropic.com>
* activate: warn if different versions are loaded

* Add tests, docs, and changelog for activate mismatch warning

- CHANGELOG: note the new warning under v1.14.
- environments.md: document that activation does not unload modules and
  Pkg now warns on path/version mismatches.
- test/api.jl: subprocess tests covering the warning, suppression on
  re-activating the same env, and the per-(project, package) dedup.
Bumps [julia-actions/setup-julia](https://github.com/julia-actions/setup-julia) from 2 to 3.
- [Release notes](https://github.com/julia-actions/setup-julia/releases)
- [Commits](julia-actions/setup-julia@v2...v3)

---
updated-dependencies:
- dependency-name: julia-actions/setup-julia
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com>
…on a stale manifest (#4678)

* instantiate: add `update_on_mismatch` kwarg to fall back to `update` on a stale manifest

For tooling and helper environments (formatters, doc-render scripts, etc.), the
strict default of `Pkg.instantiate` is the wrong fit: the maintainer wants the
env to keep working across teammates editing `Project.toml` and Julia minor
bumps, without paying the registry-update + precompilation cost of a blanket
`Pkg.update()` on every run. The new `update_on_mismatch::Bool` kwarg (and
`-u` / `--update_on_mismatch` REPL flag) makes `instantiate` fall back to
`Pkg.update()` whenever the existing manifest cannot be used as-is, instead of
warning or erroring. The default (`false`) preserves the existing behavior.

* fix workspace forwarding

---------

Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com>
* prefer adding already loaded dep versions

* fix: make it a preference, not a fix

* fix: prefer loaded versions via resolver weight, not pinning

Remove apply_preferred_versions_to_direct! which was setting
pkg.version = VersionSpec(pref_version) for direct deps, creating
a hard constraint instead of a soft preference. The resolver's
PREFERRED_VERSION_WEIGHT_BONUS already handles this correctly as
a soft preference for all packages (both direct and indirect).

Also pass preferred_versions to all resolution tiers instead of
only an extra first tier. Since the weight bonus is additive and
cannot cause resolver errors, it can safely apply at every tier.

Co-authored-by: Claude <noreply@anthropic.com>"

* Fix preferred version bonus lost when eq class representative is higher version

When build_eq_classes1! merges versions with identical compatibility into
equivalence classes, it previously always chose the highest version as the
representative. If the preferred (already-loaded) version was not the
highest, it would be collapsed away and the PREFERRED_VERSION_WEIGHT_BONUS
could never be applied, causing the resolver to pick the newer version
instead.

Fix by detecting when a preferred version falls inside an equivalence class
and promoting it to be the representative of that class.

Co-authored-by: Claude <claude@anthropic.com>

* Refactor: scope preferred-loaded variables inside if target == :deps

* Default prefer_loaded_versions to REPL mode only

Pkg.add (functional API) now defaults to prefer_loaded_versions=false
for reproducibility, while pkg> add (REPL mode) defaults to true so
interactive use stays loading-consistent.

Co-authored-by: Claude <noreply@anthropic.com>

* Mention pkg> up in prefer_loaded_versions docs

Co-authored-by: Claude <noreply@anthropic.com>

* Code review fixes for prefer_loaded_versions

- Fix Pkg.add docstring example to demonstrate opting in (=true)
  rather than the now-default-in-functional-mode =false.
- Flip Operations.add internal default to false to match the
  "programmatic call = pure" stance; API.add always passes the kwarg.
- Add a REPL-mode test using IN_REPL_MODE scoped value to lock in
  that the REPL default is on without an explicit kwarg.

Co-authored-by: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <claude@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
…4682)

* Add precompile statements for `Val{PkgArtifacts}` artifact dispatch.

Avoids load-time codegen in JLL packages using `using Pkg.Artifacts`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* precompile: resolve stdlib `Artifacts` via `parentmodule` and guard internals

`PkgArtifacts.Artifacts._artifact_str` resolved to `PkgArtifacts._artifact_str`
(since `const Artifacts = PkgArtifacts` shadows the stdlib name and `Pkg` then
re-aliases the same way), which is undefined. Use `parentmodule` on an imported
stdlib function to reach the real `Artifacts` module, and gate each precompile
on `isdefined` so it stays robust if the internals change in future Julia
versions.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Pins the default GITHUB_TOKEN to contents: read on workflows that don't
call a GitHub API beyond the initial checkout. Other workflows that need
write scopes are left implicit for a maintainer to declare.

Motivation: CVE-2025-30066 (March 2025 tj-actions/changed-files
compromise) exfiltrated GITHUB_TOKEN from workflow logs. Per-workflow
caps bound runtime authority irrespective of repo or org default,
give drift protection, and are credited per-file by the OpenSSF
Scorecard Token-Permissions check.

YAML validated locally with yaml.safe_load.

Signed-off-by: Arpit Jain <arpitjain099@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.