This repository (Sindbad-Dev-Template) is a template repo for local development of the
Sindbad suite of packages. It keeps a shared Julia environment at the root while each
package lives in its own Git repository under dev directory.
dev/Sindbad.jl/dev/Sindbad.jl/SindbadTEM/dev/ErrorMetrics.jl/dev/TimeSamplers.jl/dev/OmniTools.jl/
This workspace repo is intentionally minimal. The .gitignore is configured to track:
.gitignore
and exclude:
dev/.dev*.devdev.*tmp***/Manifest.toml
All package checkouts (Sindbad.jl/, ErrorMetrics.jl/, etc.), the
Manifest.toml, and any other files you create are local-only and never
committed here.
The recommended way to start developing is:
- Copy
LandEcosystems/Sindbad-Dev-Templateto your own namespace by clickingUse this templateon the repo page and generating a new repository from it. - Clone the copy locally and work in that repo.
You still contribute directly to the package repositories (Sindbad.jl,
ErrorMetrics.jl, TimeSamplers.jl, OmniTools.jl, SindbadTEM) by committing
inside those package directories and opening PRs on their respective repos.
From the workspace root of your fork:
julia setup_dev_packages.jlThis will:
- Activate the root environment
- Clone
Sindbad.jl,ErrorMetrics.jl,TimeSamplers.jl, andOmniTools.jlinto thedev/folder - Add all of them in
devmode, plusSindbadTEMfromdev/Sindbad.jl/SindbadTEM - Instantiate the environment with all dependencies
- Run verification tests
You can verify the environment with:
julia -e 'using Pkg; Pkg.status()'To point the workspace at your own GitHub forks while keeping the same folder
layout under dev/, use the SindbadDevSettings.toml file. In that, override the git_url entries, e.g.:
[Sindbad]
git_url = "https://github.com/your-user/Sindbad.jl.git"Then re-run:
julia setup_dev_packages.jlExisting checkouts in the dev/ folder are never overwritten; if a
directory already exists, it is used as-is and no clone is attempted.
Each package remains a standalone Git repository in the dev/ folder, so you can
commit and push changes directly within the individual package directories.