# Updating packages from Julia v0.6 to 0.7

**URL:** <https://discourse.julialang.org/t/updating-packages-from-julia-v0-6-to-0-7/5103>\
**Category:** General Usage\
**Created:** [July 28, 2017, 8:57am UTC](https://discourse.julialang.org/t/updating-packages-from-julia-v0-6-to-0-7/5103 "2017-07-28T08:57:44Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![cormullion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cormullion/32/49131_2.png) [@cormullion](https://discourse.julialang.org/u/cormullion)\
**Post date:** [July 28, 2017, 8:57am UTC](https://discourse.julialang.org/t/updating-packages-from-julia-v0-6-to-0-7/5103/1 "2017-07-28T08:57:44Z")

</div>

I’m wondering how to approach the job of moving a package from supporting Julia v0.6 to v0.7. My current thinking is like this:

1 - make a release for Julia v0.6 (✔)  
2 - create a git branch `v07changes`  
3 - make v0.7 changes (e.g. deprecations, new syntax, Sys.isunix…, etc)  
4 - remove support for earlier versions (e.g. older Compat statements, BaseTestNext, broadcast (#17623), …)  
5 - change the REQUIRE file to say `julia 0.7-`  
6 - test and merge branch to master  
7 - make a v0.7-only release using Attobot  
8 - keep the v0.7-only version up to date with all the forthcoming breakages etc…  
9 - don’t touch v0.6 version again…

Is this how you do it? Perhaps there’s a guide somewhere — I’m not well-versed in this side of package development.

(I’m assuming v0.7 is next — although it’s not [a milestone](https://github.com/JuliaLang/julia/milestones)… ?

---

<div class="post-metadata">

**Author:** ![JeffreySarnoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeffreysarnoff/32/1980_2.png) [@JeffreySarnoff](https://discourse.julialang.org/u/JeffreySarnoff)\
**Post date:** [July 28, 2017, 9:22am UTC](https://discourse.julialang.org/t/updating-packages-from-julia-v0-6-to-0-7/5103/2 "2017-07-28T09:22:00Z")

</div>

Your plan is good … v0.7 is next and it will provide the deprecations and additions and amendations bridge to v1.0. The intent is that packages which work cleanly under v0.7 (no warnings or other bothers) should expect that holds for v1.0.

It has been common practice to let go of intent support for pre-1.0 versions that have seen two 0.\_.0 steps since their introduction. This is not true for e.g. the NY FED who uses v0.4.x (afaik) as that is the version in which their major development work happened and for which they had some dedicated highly-skilled help. There is nothing in your plan that is counterproductive, and much that moves your work forward version-wise.

---

<div class="post-metadata">

**Author:** ![mkborregaard](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkborregaard/32/556_2.png) [@mkborregaard](https://discourse.julialang.org/u/mkborregaard)\
**Post date:** [July 28, 2017, 9:35am UTC](https://discourse.julialang.org/t/updating-packages-from-julia-v0-6-to-0-7/5103/3 "2017-07-28T09:35:27Z")

</div>

Why would you need Compat if you change the minimum version to 0.7? On Plots so far we make a final 0.6 release that works, and branch a backports-0.6-branch off from that. We then up the minimum version number to 0.7 and merge the 0.7 branch into master. All new features only happen on master and thus only come to the people using 0.7, whereas fixes for annoying bugs can be backported to the 0.6 branch, and releases targeting 0.6 users can be made off from that.

---

<div class="post-metadata">

**Author:** ![cormullion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cormullion/32/49131_2.png) [@cormullion](https://discourse.julialang.org/u/cormullion)\
**Post date:** [July 28, 2017, 9:52am UTC](https://discourse.julialang.org/t/updating-packages-from-julia-v0-6-to-0-7/5103/4 "2017-07-28T09:52:51Z")

</div>

Oh, I meant removing all the Compat-statements that have been in since v0.4 and v0.5… I’ll edit…

---

<div class="post-metadata">

**Author:** ![nantonel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nantonel/32/2889_2.png) [@nantonel](https://discourse.julialang.org/u/nantonel)\
**Post date:** [June 15, 2018, 2:34pm UTC](https://discourse.julialang.org/t/updating-packages-from-julia-v0-6-to-0-7/5103/5 "2018-06-15T14:34:26Z")

</div>

I was wondering if in the meanwhile a definite guide for transferring packages from julia 0.6 to 0.7 is out there.

Especially for the new Pkg manager. It looks really nice but I have difficulties in getting started.

In particular I don’t understand if we should use the developer mode or how to generate the Project.toml file in an already existing package.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [June 15, 2018, 2:38pm UTC](https://discourse.julialang.org/t/updating-packages-from-julia-v0-6-to-0-7/5103/6 "2018-06-15T14:38:10Z")

</div>

I’m at point 5 of your list but intend to go all the way through 9.

---

<div class="post-metadata">

**Author:** ![chakravala](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chakravala/32/6832_2.png) [@chakravala](https://discourse.julialang.org/u/chakravala)\
**Post date:** [June 15, 2018, 5:17pm UTC](https://discourse.julialang.org/t/updating-packages-from-julia-v0-6-to-0-7/5103/7 "2018-06-15T17:17:09Z")

</div>

It’s also possible to write packages that support both 0.6 and 0.7 without much hassle, so I wouldnt rush to completely deprecate v0.6 yet, since in v0.7 you can still have warnings. Therefore, I would first upgdate to v0.7 with warnings and compatibility with 0.6, then tag, and then deprecate 0.6 in the next tag. This way you can still address bugs for 0.6 users before completely moving to 1.0

---

<div class="post-metadata">

**Author:** ![teored90](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/teored90/32/5142_2.png) [@teored90](https://discourse.julialang.org/u/teored90)\
**Post date:** [June 27, 2018, 12:17pm UTC](https://discourse.julialang.org/t/updating-packages-from-julia-v0-6-to-0-7/5103/8 "2018-06-27T12:17:55Z")

</div>

I am new to the package system of 0.7, and I have a package working for 0.6. I already made the changes that make it compatible with 0.7 and solve deprecation warnings on a separate branch. How do I then release the package for 0.7 so that on v0.6 `Pkg.add` will still download the right version?

---

<div class="post-metadata">

**Author:** ![avik](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/avik/32/17_2.png) [@avik](https://discourse.julialang.org/u/avik)\
**Post date:** [June 27, 2018, 12:42pm UTC](https://discourse.julialang.org/t/updating-packages-from-julia-v0-6-to-0-7/5103/9 "2018-06-27T12:42:26Z")

</div>

On your 0.7 branch, make sure your REQUIRE file says `julia 0.7-`. Then tag a release from that branch (increase your minor version, not just your patch version), and if you have set up attobot, it will create a release for you.

---

<div class="post-metadata">

**Author:** ![Wikunia](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/wikunia/32/2180_2.png) [@Wikunia](https://discourse.julialang.org/u/Wikunia)\
**Post date:** [August 4, 2018, 10:12am UTC](https://discourse.julialang.org/t/updating-packages-from-julia-v0-6-to-0-7/5103/10 "2018-08-04T10:12:02Z")

</div>

Can you explain the syntax of `julia 0.7-`. I thought it means it works for everything below 0.7 which doesn’t make sense here 🤣 At least I used `julia 0.6 0.7-` to express 0.6-0.7 without including 0.7 as I know my package breaks for 0.7.

Thanks in advance

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [August 4, 2018, 1:48pm UTC](https://discourse.julialang.org/t/updating-packages-from-julia-v0-6-to-0-7/5103/11 "2018-08-04T13:48:07Z")

</div>

[https://docs.julialang.org/en/stable/manual/packages/#Requirements-Specification-1](https://docs.julialang.org/en/stable/manual/packages/#Requirements-Specification-1)

> Distributions 0.1-
> 
> is satisfied by pre-release versions such as `0.1-dev` or `0.1-rc1` , or by any version greater than or equal to `0.1.0` .
