# What is Julia 0.7? How does it relate to 1.0?

**URL:** <https://discourse.julialang.org/t/what-is-julia-0-7-how-does-it-relate-to-1-0/9994>\
**Category:** Internals & Design\
**Created:** [March 26, 2018, 3:56pm UTC](https://discourse.julialang.org/t/what-is-julia-0-7-how-does-it-relate-to-1-0/9994 "2018-03-26T15:56:05Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [March 26, 2018, 3:56pm UTC](https://discourse.julialang.org/t/what-is-julia-0-7-how-does-it-relate-to-1-0/9994/1 "2018-03-26T15:56:05Z")

</div>

I thought we’d communicated this adequately and clearly, but there were some questions on Slack about what Julia 0.7 is and how it relates to 1.0, so it seems that this could use some official clarification:

- Julia 0.7 will be released with deprecations for functionality that existed in Julia 0.6 but will be removed or replaced in Julia 1.0.
- Julia 1.0 will remove all of those deprecations and add some functionality that we prevented from being implemented by those deprecations.

Aside from removed deprecations and functionality that was blocked by them, Julia 0.7 and 1.0 will be identical. This means that if a program runs on 0.7 without any warnings it should work exactly the same on 1.0. Julia 0.7 and 1.0 will be released very close together. The difference in release dates will only be as long as it takes to remove deprecations and implement blocked functionality. When you are upgrading Julia code from 0.6 you should follow this process:

1. Upgrade to 0.7 and run your tests and example use cases.
2. Make any changes that the deprecation warnings indicate.
3. [Optional but recommended for production systems:] Run your applications in production on 0.7, paying close attention to any deprecation warnings that you may have missed and fixing them.
4. Upgrade to 1.0 and run your tests and example use cases again.
5. Fix any code that _breaks_ because of deleted or changed functionality. This ideally shouldn’t happen, but sometimes deprecation warnings get missed.

Hopefully that clears things up.

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [March 26, 2018, 7:48pm UTC](https://discourse.julialang.org/t/what-is-julia-0-7-how-does-it-relate-to-1-0/9994/2 "2018-03-26T19:48:44Z")

</div>

Perhaps it might be helpful to the package developers to have an idea how stabilized 0.7 has become at this point. In the past month or so the changes required to have a clean run were significant: many deprecations and hence many lines of printed warnings. However installing the last development version of 0.7 was comparatively uneventful. If that is a sign of things to expect from 0.7, it would be good to spread the word so that people don’t hesitate to come on board.

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [March 26, 2018, 8:07pm UTC](https://discourse.julialang.org/t/what-is-julia-0-7-how-does-it-relate-to-1-0/9994/3 "2018-03-26T20:07:00Z")

</div>

> [@1.0 progress/status](https://discourse.julialang.org/t/1-0-progress-status/9762):
>
> I figured I’d write a post updating people with where we’re at on getting Julia 1.0-alpha ready. We’re several months overdue at this point, so people may be getting impatient. I know that I am and I feel confident that I speak for all Julia core devs – we can’t wait to get this release out the door. The major work item that’s holding things up at this point is a significant rewrite of the optimizer that @keno is working on. It’s already fairly far along, but still not done. Why is he rewriting…

---

<div class="post-metadata">

**Author:** ![ExpandingMan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/expandingman/32/866_2.png) [@ExpandingMan](https://discourse.julialang.org/u/ExpandingMan)\
**Post date:** [March 26, 2018, 8:09pm UTC](https://discourse.julialang.org/t/what-is-julia-0-7-how-does-it-relate-to-1-0/9994/4 "2018-03-26T20:09:18Z")

</div>

> [@PetrKryslUCSD](#):
>
> Perhaps it might be helpful to the package developers to have an idea how stabilized 0.7 has become at this point.

I’ve been using it for a while now and find it to be pretty stable, I encourage everyone to jump on board. (I’m going to pretend the whole `uninitialized`, `undef` thing never happened 😊.)

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [March 26, 2018, 8:15pm UTC](https://discourse.julialang.org/t/what-is-julia-0-7-how-does-it-relate-to-1-0/9994/5 "2018-03-26T20:15:37Z")

</div>

Thanks. I didn’t mean “when is 0.7 going to be released”, but rather "when are the major changes going to be done so that I can reasonably start updating to 0.7 (development version) ".

Edit: BTW I have been running exclusively 0.7 for the past month or so, very happy.

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [March 26, 2018, 8:22pm UTC](https://discourse.julialang.org/t/what-is-julia-0-7-how-does-it-relate-to-1-0/9994/6 "2018-03-26T20:22:59Z")

</div>

That post addresses just that question. It indicates what the major remaining changes are – i.e. iteration and broadcasting. Since then a few more broadcast PRs have been merged and iteration has made some not-yet-merged progress. The 0.7-alpha release will be the official signal of “there are no more breaking changes anticipated”.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [June 17, 2018, 10:28am UTC](https://discourse.julialang.org/t/what-is-julia-0-7-how-does-it-relate-to-1-0/9994/7 "2018-06-17T10:28:01Z")

</div>

> [@PetrKryslUCSD](#):
>
> However installing the last development version of 0.7 was comparatively uneventful. If that is a sign of things to expect from 0.7, it would be good to spread the word so that people don’t hesitate to come on board.

Judging from the size of [NEWS.md](https://github.com/JuliaLang/julia/blob/master/NEWS.md), the amount of changes in v0.7 (85k) is roughly comparable to v0.4 (74k), and much more than v0.5 or v0.6 (30k and 41k, respectively). But many of those are syntax/semantics unifications and easy to deal with so I find the upgrade to v0.7 rather smooth, especially with Compat.jl.

The only glitches I experienced were with packages I use that rely on representations of the AST, and some of these were fixed quickly, some are still WIP.

The speed improvements I get “for free” are significant, mostly I guess because I was anticipating the “small unions” optimization and started writing code that relying on that, now that is really fast. But I get general performance improvements too.
