# Recommended packages to contribute to for newcomers?

**URL:** <https://discourse.julialang.org/t/recommended-packages-to-contribute-to-for-newcomers/3416>\
**Category:** Statistics\
**Tags:** question, first-steps\
**Created:** [April 28, 2017, 2:00am UTC](https://discourse.julialang.org/t/recommended-packages-to-contribute-to-for-newcomers/3416 "2017-04-28T02:00:57Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![ajkeith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ajkeith/32/970_2.png) [@ajkeith](https://discourse.julialang.org/u/ajkeith)\
**Post date:** [April 28, 2017, 2:00am UTC](https://discourse.julialang.org/t/recommended-packages-to-contribute-to-for-newcomers/3416/1 "2017-04-28T02:00:57Z")

</div>

Hello! I’ve been using Julia for homework and I’m interested in getting more involved in package development. In the near term I’d like to contribute to some stats packages to get a feel for how packages work, with a long term goal of writing my own package for my research. I’d appreciate any recommendations for good packages (or specific issues) to start contributing to.

Thanks!

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [April 28, 2017, 2:37am UTC](https://discourse.julialang.org/t/recommended-packages-to-contribute-to-for-newcomers/3416/2 "2017-04-28T02:37:59Z")

</div>

If I had to point out a good beginner issue, it would be this one:

> <https://github.com/JuliaDiff/ForwardDiff.jl/issues/157>
>
> It would be nice if the package would support the complex numbers. Probably it i…s difficult to check when the derivative exist, and what path to take on the complex plane to take derivative. However if you will make default derivative path (for example along real axis) it should be good enough (I think) for \[DifferentialEquations.jl\](https://github.com/JuliaDiffEq/DifferentialEquations.jl) where derivatives are used to calculate Jacobian in implicit ODE integrators. (@ChrisRackauckas is using \`derivative!\` and \`jacobian!\` in DifferentialEquations.jl)
> If it would be possible to indicate the curve on complex plane where to take derivative, it also would be awesome. Thanks.
> \`\`\`
> julia\> using ForwardDiff; import ForwardDiff
> 
> julia\> f(x::Vector) = sum(sin, x) + prod(tan, x) \* sum(sqrt, x);
> 
> julia\> x = rand(5); xi = rand(Complex128,5);
> 
> julia\> g = x -\> ForwardDiff.gradient(f, x);
> 
> julia\> g(x)
> 5-element Array{Float64,1}:
> 1.48017
> 3.33484
> 1.36112
> 1.55229
> 1.376  
> 
> julia\> g = x -\> ForwardDiff.gradient(f, xi);
> 
> julia\> g(xi)
> ERROR: TypeError: Dual: in T, expected T\<:Real, got Type{Complex{Float64}}
> in Type at /home/kosh/.julia/v0.5/ForwardDiff/src/cache.jl:52 \[inlined\]
> in construct\_jacobian\_caches(::Array{Complex{Float64},1}, ::ForwardDiff.Chunk{5}) at /home/kosh/.julia/v0.5/ForwardDiff/src/cache.jl:157
> in get!(::ForwardDiff.##23#24{Array{Complex{Float64},1},ForwardDiff.Chunk{5}}, ::Dict{Tuple{Int64,Int64,DataType,Bool},Any}, ::Tuple{Int64,Int64,DataType,Bool}) at ./dict.jl:663
> in multithread\_jacobian\_cachefetch!(::Array{Complex{Float64},1}, ::ForwardDiff.Chunk{5}, ::Bool, ::Bool) at /home/kosh/.julia/v0.5/ForwardDiff/src/cache.jl:65
> in jacobian\_cachefetch! at /home/kosh/.julia/v0.5/ForwardDiff/src/cache.jl:74 \[inlined\]
> in compute\_vector\_mode\_gradient(::#f, ::Array{Complex{Float64},1}, ::ForwardDiff.Chunk{5}, ::Bool) at /home/kosh/.julia/v0.5/ForwardDiff/src/gradient.jl:87
> in vector\_mode\_gradient at /home/kosh/.julia/v0.5/ForwardDiff/src/gradient.jl:94 \[inlined\]
> in #gradient#33(::Bool, ::Bool, ::Function, ::Function, ::Array{Complex{Float64},1}, ::ForwardDiff.Chunk{5}) at /home/kosh/.julia/v0.5/ForwardDiff/src/gradient.jl:23
> in gradient(::Function, ::Array{Complex{Float64},1}, ::ForwardDiff.Chunk{5}) at /home/kosh/.julia/v0.5/ForwardDiff/src/gradient.jl:22
> in (::##3#4)(::Array{Complex{Float64},1}) at ./REPL\[7\]:1
> in eval\_user\_input(::Any, ::Base.REPL.REPLBackend) at ./REPL.jl:64
> in macro expansion at ./REPL.jl:95 \[inlined\]
> in (::Base.REPL.##3#4{Base.REPL.REPLBackend})() at ./event.jl:68
> \`\`\`

Autodifferentiation is a pretty neat and prevalent feature in Julia, and one way to learn what it is would be to contribute. This issue theoretically could work with just a few typing changes. It’s the kind of thing where everyone notices that it would be easy, lots of people seem to want it, but no one has done it yet 🙂.

As for something more directly related to Stats (though autodifferentiation is used everywhere!), check out Distributions.jl. They have a bunch of issues tagged as new functions and distributions to implement that are up for grabs.

New func:

> **[Issues · JuliaStats/Distributions.jl](https://github.com/JuliaStats/Distributions.jl/issues?q=is%3Aissue%2Bis%3Aopen%2Blabel%3Anew-func)**
>
> A Julia package for probability distributions and associated functions. - Issues · JuliaStats/Distributions.jl

New dist:

> **[Issues · JuliaStats/Distributions.jl](https://github.com/JuliaStats/Distributions.jl/issues?q=is%3Aissue%2Bis%3Aopen%2Blabel%3Anew-distr)**
>
> A Julia package for probability distributions and associated functions. - Issues · JuliaStats/Distributions.jl

Some work in MultivariateStats.jl is up for grabs. It’s a small but very useful library. Small makes it easy to jump into:

> **[GitHub - JuliaStats/MultivariateStats.jl: A Julia package for multivariate...](https://github.com/JuliaStats/MultivariateStats.jl)**
>
> A Julia package for multivariate statistics and data analysis (e.g. dimension reduction) - GitHub - JuliaStats/MultivariateStats.jl: A Julia package for multivariate statistics and data analysis (e...

In general, looking at JuliaStats is probably a good idea for your interests.

---

<div class="post-metadata">

**Author:** ![ajkeith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ajkeith/32/970_2.png) [@ajkeith](https://discourse.julialang.org/u/ajkeith)\
**Post date:** [April 28, 2017, 1:03pm UTC](https://discourse.julialang.org/t/recommended-packages-to-contribute-to-for-newcomers/3416/3 "2017-04-28T13:03:34Z")

</div>

Thanks for the quick and extremely helpful response! I’ll start taking a look at these this weekend.
