Rogue.add(name; project)

Install an unregistered package checked out at ~/.julia/dev/$name. Its unregistered dependencies are installed using information stored in Manifest.toml file checked in its repository (e.g., ~/.julia/dev/$name/test/Manifest.toml).


  • name::AbstractString: Name of the package to be installed.

Keyword Arguments

  • project::Union{Nothing, AbstractString} = nothing: Project in which the package is installed. nothing (default) means the current activated project.
  • prefer_https::Bool = false: Prefer HTTPS repository URL rather than the one used in Git repository.
Rogue.addin(project; package=".", kwargs...)

A shortcut for Rogue.add(package; project=project, kwargs...).

Rogue.updateto(upstream; kwargs...)

A shortcut for Rogue.usein(".", from=upstream).

Rogue.usein(downpath; dryrun, from, rev, commit, push)

Update (Julia)Manifest.toml file(s) in a downstream project at downpath to use the current version of the upstream project.

  • Make sure that the downstream project has no un-committed changes.

  • If manifests is nothing (default), find all JuliaManifest.toml and Manifest.toml file(s) that are tracked by git and have the upstream project as a dependency.

  • Update the downstream manifest files (update git-tree-sha1).

  • Resolve dependencies.

    • Note that this makes sure that the current version of the upstream project is available in the repository referenced by the downstream manifest files (i.e., git pushed).
  • Commit the changed manifest files with a git commit message generated from the upstream commit. In particular, it contains a URL to the commit page of the VCS hosting service used by the upstream project.


  • downpath :: AbstractString: Path to the downstream project.

Keyword Arguments

  • dryrun :: Bool = false: If true, only print the operations that would be performed.

  • from :: AbstractString = ".": Specify the location of the upstream project.

  • rev :: AbstractString = "HEAD": Revision of the upstream project.

  • commit :: Union{Bool, Cmd} = true: If it is a Bool, it determines if the change should be committed. If it is a Cmd, the change is committed and this is passed as options to the git commit command.

  • push :: Union{Bool, Cmd} = false: Similar to commit but for git push.