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

Identify and document removable dependencies #1075

Open
Tracked by #1051
juliasloan25 opened this issue Nov 11, 2024 · 2 comments
Open
Tracked by #1051

Identify and document removable dependencies #1075

juliasloan25 opened this issue Nov 11, 2024 · 2 comments
Assignees
Labels
Dependencies 🔗 enhancement New feature or request

Comments

@juliasloan25
Copy link
Member

juliasloan25 commented Nov 11, 2024

We want to go through the whole ClimaCoupler package and identify dependencies that we can easily remove. This will decrease compile time, and make sure that we're actually using all the dependencies we pull in.

Environments to go through

  • top-level Project
  • experiments/ClimaEarth
  • test
  • experiments/ClimaCore
  • docs

Part of #1050

(see comments for dependencies we can remove)

@imreddyTeja
Copy link
Contributor

imreddyTeja commented Nov 14, 2024

Packages I found can be removed without implementing any new methods:
(note: I have not tried removing any of these and running)

top level

  • Artifacts
  • Could JLD2 be related with NCDatasets, which is already a dep?

experiments/ClimaEarth

  • Artifacts (indirectly dep)
  • ClimaCorePlots
  • Interpolations (indirectly dep) (needed for ClimaUtilitiesClimaCoreInterpolationsExt, which is never used - check this , maybe in Project.toml for compat)
  • Glob
  • JLDL (indirectly dep)
  • OrderedCollectrons (indirect dep)
  • pretty tables (used, but only call once) (probably not worth writing a function for?)

experiments/ClimaCore

  • Thermodynamics (indirectly dependent)

test

  • Adapt (indirectly dep)
  • CairoMakie
  • ClimaAnalysis
  • ClimaCorePlots
  • ClimaLand (indirectly dep, maybe in Project for compat)
  • ClimaTimeSteppers (indirectly dependent)
  • ClimaUtilities (indirectly dependent, maybe in Project for compat)
  • Downloads (indirectly dependent, maybe in Project for compat)
  • GeoMakie
  • Interpolations (indirectly dep)
  • IntervalSets (imported with using, need to check, maybe in Project for compat)
  • LinearAlgebra (indirect dep)
  • OrderedColelctions (indirect dep)
  • Plots
  • PrettyTables (indirect dep, maybe in Project for compat)
  • Printf (indirect dep)
  • SciMLBase (indirect dep, maybe in Project for compat)
  • Statistics (indirect dep)

docs

  • Pkg

Most of these are indirect dependencies/never imported, so I think removing them from Project.toml files wouldn't make compilation any faster. It seems like experiments/ClimaEarth has a lot of dependencies that are used for plotting and leaderboard.

@juliasloan25
Copy link
Member Author

Most of these are indirect dependencies/never imported, so I think removing them from Project.toml files wouldn't make compilation any faster.

It's a bummer that removing most of these won't help with compilation time. It would still be good to remove everything you identified so our environments only have what we need.

It seems like experiments/ClimaEarth has a lot of dependencies that are used for plotting and leaderboard.

We could potentially move the plotting + leaderboard code into an extension that's only loaded for simulations where we want postprocessing. We can discuss and think about if this would be worth the effort.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Dependencies 🔗 enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants