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

Add upper bounds to FFTW and DSP Compats #5778

Merged
merged 1 commit into from
Nov 25, 2019

Commits on Nov 23, 2019

  1. Add upper bounds to FFTW and DSP Compats

    This is another attempt at JuliaRegistries#5230, which was an attempt at fixing the breakage
    caused by JuliaMath/AbstractFFTs.jl#26 (e.g. JuliaDSP/DSP.jl#320,
    JuliaDSP/DSP.jl#323, JuliaDSP/DSP.jl#324). The underlying problem is that
    JuliaMath/AbstractFFTs.jl#26 moved functions from DSP.jl to AbstractFFTs.jl,
    requiring users to have versions of both of those packages either before that
    change or after it. Because FFTW reexports AbstractFFTWs, users also have to
    coordinate versions of DSP.jl and FFTW.jl.
    
    This problem was fixed for the most recent versions of DSP.jl and
    FFTW.jl (v0.6.1 and v1.1, respectively) by JuliaDSP/DSP.jl#322 and
    JuliaMath/FFTW.jl#124. However, because earlier versions of FFTW do not have an
    upper bound for its dependency on AbstractFFTs, and neither does DSP, Pkg cannot
    currently tell that some combinations of versions for AsbtractFFTs and DSP.jl
    are incompatible, which is causing users to experience issues even after the
    problem was fixed for the most recent versions (JuliaDSP/DSP.jl#323,
    JuliaDSP/DSP.jl#324).
    
    Fixing the problem is made slightly more complicated because DSP does not
    explicitly depend on AbstractFFTs, but instead DSP implicitly depends on
    AbstractFFTs through FFTW's reexport of it, and in turn DSP explicitly depends
    on FFTW.
    
    To fix this problem, I have changed the Compat.toml for FFTW to place a upper
    bound on AbstractFFTs, so that packages get a consistent interface when using
    FFTW. I have also changed the Compat.toml for DSP, to avoid breakage caused by
    AbstractFFTs v0.5 taking some functions that were previously defined in DSP.
    
    In addition, the Compat.toml for DSP showed versions before 0.5.1 to be
    compatible with Julia 1, which was inaccurate. I have therefore changed this
    TOML table to restrict the DSP versions to the range that is compatible with
    Julia 1.
    
    I have tested that these changes work for the most recent versions of DSP and
    FFTW, as well as older versions.
    galenlynch committed Nov 23, 2019
    Configuration menu
    Copy the full SHA
    9fc45de View commit details
    Browse the repository at this point in the history