# Developing Julia Packages

**URL:** <https://discourse.julialang.org/t/developing-julia-packages/29541>\
**Category:** General Usage\
**Created:** [October 6, 2019, 3:56am UTC](https://discourse.julialang.org/t/developing-julia-packages/29541 "2019-10-06T03:56:47Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Alec\_Loudenback](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alec_loudenback/32/278_2.png) [@Alec\_Loudenback](https://discourse.julialang.org/u/Alec_Loudenback)\
**Post date:** [October 6, 2019, 3:56am UTC](https://discourse.julialang.org/t/developing-julia-packages/29541/1 "2019-10-06T03:56:47Z")

</div>

@ChrisRackauckas made a YouTube tutorial on developing julia packages and some best practices:

[![](https://global.discourse-cdn.com/julialang/original/3X/a/9/a9eed041bdd2be4339d3e6dd3961b86bdc1511f3.jpeg "Developing Julia Packages") ](https://www.youtube.com/watch?v=QVmU29rCjaA)

---

<div class="post-metadata">

**Author:** ![Alec\_Loudenback](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alec_loudenback/32/278_2.png) [@Alec\_Loudenback](https://discourse.julialang.org/u/Alec_Loudenback)\
**Post date:** [October 6, 2019, 3:57am UTC](https://discourse.julialang.org/t/developing-julia-packages/29541/2 "2019-10-06T03:57:11Z")

</div>

I couldn’t find a discussion on this anywhere on Discourse yet!

---

<div class="post-metadata">

**Author:** ![Alec\_Loudenback](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alec_loudenback/32/278_2.png) [@Alec\_Loudenback](https://discourse.julialang.org/u/Alec_Loudenback)\
**Post date:** [October 6, 2019, 4:03am UTC](https://discourse.julialang.org/t/developing-julia-packages/29541/3 "2019-10-06T04:03:11Z")

</div>

One question I had was why is Revise “evaluating the one that’s inside your package” in [this segment](https://youtu.be/QVmU29rCjaA?t=810), but [a few minutes earlier](https://youtu.be/QVmU29rCjaA?t=603), evaluating the function interactively did not do the same thing?

Is it because in the intervening part of the video, `my_f` became `export`ed?

---

<div class="post-metadata">

**Author:** ![carstenbauer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/carstenbauer/32/4981_2.png) [@carstenbauer](https://discourse.julialang.org/u/carstenbauer)\
**Post date:** [October 6, 2019, 8:08am UTC](https://discourse.julialang.org/t/developing-julia-packages/29541/4 "2019-10-06T08:08:10Z")

</div>

Like Chris says in the video (your second link), the `my_f` he is calling in `runtests.jl` is not actually the one defined in the package - I guess he had an old version of `my_f` already defined in his julia session.

So, when he evaluated the `my_f` definition in the package Juno did actually update the definition of `my_f` inside of the package, but the `my_f` he is calling in `runtests.jl` isn’t effected by this - again, it is not the one from the package. To resolve this, he then restarts his Julia session: he wants to make sure that there is only a single `my_f` defined (the one from the package)

---

<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:** [October 6, 2019, 12:01pm UTC](https://discourse.julialang.org/t/developing-julia-packages/29541/5 "2019-10-06T12:01:05Z")

</div>

I evaluated `my_f` before I ever loaded the module, so it just put it in `Main`.

---

<div class="post-metadata">

**Author:** ![dmolina](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dmolina/32/5246_2.png) [@dmolina](https://discourse.julialang.org/u/dmolina)\
**Post date:** [October 6, 2019, 1:41pm UTC](https://discourse.julialang.org/t/developing-julia-packages/29541/6 "2019-10-06T13:41:24Z")

</div>

Thanks you. It is a very nice video and complete and it is very useful showing how test and use tools like Travis, contribute using Github pull requests, and even Register the package, a great step-by-step tutorial.
