ptiede / Comrade.jl

MIT License
43 stars 8 forks source link

JonesModel and other calibration data types are not exported #328

Closed kazuakiyama closed 7 months ago

kazuakiyama commented 7 months ago

Hi @ptiede , I was going through Comrade's tutorial and found that the latest Comrade with Julia 1.9.3 / 1.9.4 does not export either of "ResponseCache", "JonesModel", "jonescache", "station_tuple", and "jonesmap" defined in src/calibration/jones.jl. I was not sure if the current code does have a grammatical error but fixing the line 2 of jones.jl in the following way seems to fix the issue.

export JonesCache, TrackSeg, ScanSeg, FixedSeg, IntegSeg, jonesG, jonesD, jonesT
export ResponseCache, JonesModel, jonescache, station_tuple, jonesmap

FYI, everything exported in the first line is loaded correctly in the current version. Please check if this fix will help to mitigate the issue as these are critical for polarization modeling.

ptiede commented 7 months ago

I can't seem to reproduce this on my machine. When I load up Julia 1.9.4, it appears that everything is being exported correctly.

julia> using Comrade
julia> station_tuple((:AA, :AP),  ScanSeg())
(AA = ScanSeg{false}(), AP = ScanSeg{false}())

This is my versioninfo

Julia Version 1.9.4
Commit 8e5136fa297 (2023-11-14 08:46 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 32 × AMD Ryzen 9 7950X 16-Core Processor
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-14.0.6 (ORCJIT, znver3)
  Threads: 1 on 32 virtual cores

and my project

Project Comrade v0.9.0
Status `~/.julia/dev/Comrade/Project.toml`
⌃ [80f14c24] AbstractMCMC v4.4.2
  [dce04be8] ArgCheck v2.3.0
  [c61b5328] AstroTime v0.7.0
  [94b1ba4f] AxisKeys v0.2.13
  [d360d2e6] ChainRulesCore v1.18.0
  [6d8c423b] ComradeBase v0.5.5
  [8bb1440f] DelimitedFiles v1.9.1
  [b429d917] DensityInterface v0.4.0
  [31c24e10] Distributions v0.25.103
  [ffbed154] DocStringExtensions v0.9.3
  [7da242da] Enzyme v0.11.10
  [1a297f60] FillArrays v1.7.0
  [f6369f11] ForwardDiff v0.10.36
  [9ec9aee3] HypercubeTransform v0.4.2
  [6fdf6af0] LogDensityProblems v2.1.1
  [d9ec5142] NamedTupleTools v0.14.3
  [5432bcbf] PaddedViews v0.5.12
  [2412ca09] ParameterHandling v0.4.7
  [d3c5d4cd] PolarizedTypes v0.1.1
  [08abe8d2] PrettyTables v2.3.0
  [3cdcf5f2] RecipesBase v1.3.4
  [189a3867] Reexport v1.2.2
  [ae029012] Requires v1.3.0
  [276daf66] SpecialFunctions v2.3.1
  [aedffcd0] Static v0.8.8
  [1e83bf80] StaticArraysCore v1.4.2
  [2913bbd2] StatsBase v0.34.2
  [09ab397b] StructArrays v0.6.16
  [bd369af6] Tables v1.11.1
  [84d833dd] TransformVariables v0.8.8
  [9d95f2ec] TypedTables v1.4.3
  [90db92cd] VLBILikelihoods v0.2.0
  [d6343c73] VLBISkyModels v0.3.2 `~/.julia/dev/VLBISkyModels`
  [37e2e46d] LinearAlgebra
  [de0858da] Printf
  [9a3f8284] Random
  [2f01184e] SparseArrays
  [10745b16] Statistics v1.9.0
Info Packages marked with ⌃ have new versions available and may be upgradable.
kazuakiyama commented 7 months ago

Oh sorry, I was wrong in a sense to exaggerate the problem. station_tuple and jonescache are available as these are exported in another source file. the rest of data types (ResponseCache, JonesModel, jonesmap)are not available. If you type the first characters and hit to search available methods or types we saw the below.

julia> using Comrade julia> # try to find data types julia> Comrade.Re Renormalize Residual julia> Comrade.Jones JonesCache JonesPairs JonesStyle julia> Comrade.jones jonesD jonesG jonesG_prod_ratio jonesStokes jonesT jonescache julia> Comrade.station Comrade.station_tuple

FYI, I'm switching Julia version and saw the same issues in both Julia 1.9.3 / 1.9.4 but the above snippet was from this particular environment. I noticed I'm using an oldervesion of Comrade in my environment (I can't update further for some reasons). Do you think that is a part of the problem?

versioninfo() returns:

Julia Version 1.9.3 Commit bed2cd540a1 (2023-08-24 14:43 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: Linux (x86_64-linux-gnu) CPU: 12 × Intel(R) Core(TM) i7-5820K CPU @ 3.30GHz WORD_SIZE: 64 LIBM: libopenlibm LLVM: libLLVM-14.0.6 (ORCJIT, haswell) Threads: 1 on 12 virtual cores

Pkg.status() returns:

[6e4b80f9] BenchmarkTools v1.3.2 [336ed68f] CSV v0.10.11 [13f3f980] CairoMakie v0.10.12 [99d987ce] Comrade v0.8.1 [a4336a5c] ComradeAHMC v0.3.2 [26988f03] ComradeOptimization v0.1.4 [a93c6f00] DataFrames v1.6.1 [31c24e10] Distributions v0.25.103 [ced4e74d] DistributionsAD v0.6.53 [033835bb] JLD2 v0.4.38 [996a588d] LogDensityProblemsAD v1.7.0 [d9ec5142] NamedTupleTools v0.14.3 [36348300] OptimizationOptimJL v0.1.13 [3d669222] OptimizationSpeedMapping v0.1.5 [91a5bcdd] Plots v1.39.0 [3d61700d] Pyehtim v0.1.2 [295af30f] Revise v3.5.9 [2913bbd2] StatsBase v0.34.2 [4c63d2b9] StatsFuns v1.3.0 [b1ba175b] VLBIImagePriors v0.5.0 [d6343c73] VLBISkyModels v0.1.0 [e88e6eb3] Zygote v0.6.67 [37e2e46d] LinearAlgebra [9a3f8284] Random [9e88b42a] Serialization

ptiede commented 7 months ago

Ok good to know! I think the problem is just that ResponseCache is only defined in 0.8.1, while main is on 0.9.0. It looks like the CI is working so I'll push a release.

ptiede commented 7 months ago

Did you want to check on the new version?

kazuakiyama commented 7 months ago

Yes, 0.9.0 works ok. In the above environment, apparently, ComradeAHMC and ComradeOptimization forces to use v0.8.1 as long as I use these packages. I guess upgrading the compat entries in these two packages may resolve the issue completely. pkg> status --outdated

⌅ [99d987ce] Comrade v0.8.1 (<v0.9.0): ComradeAHMC, ComradeOptimization ⌃ [d6343c73] VLBISkyModels v0.1.0 (<v0.3.2)

ptiede commented 7 months ago

That should be fixed now, all the libs are updated to 0.9