# Cairo v2.8.0 is out!

**URL:** <https://community.starknet.io/t/cairo-v2-8-0-is-out/114606>\
**Category:** 🤷‍♀️ All-Purpose Hangout\
**Created:** [August 29, 2024, 7:00am UTC](https://community.starknet.io/t/cairo-v2-8-0-is-out/114606 "2024-08-29T07:00:44Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![FeedTheFed](https://dub1.discourse-cdn.com/flex005/user_avatar/community.starknet.io/feedthefed/32/72981_2.png) [@FeedTheFed](https://community.starknet.io/u/FeedTheFed)\
**Post date:** [August 29, 2024, 7:00am UTC](https://community.starknet.io/t/cairo-v2-8-0-is-out/114606/1 "2024-08-29T07:00:44Z")

</div>

## TL;DR

Closely following v2.7.0, v2.8.0 is a version focusing on stability and bug-fixes. Most importantly, in a recent joint effort by the Scarb and compiler teams, we addressed many issues in the language server, improving its stability and performance, thus significantly improving the developer experience.

This version affects only the high level compiler, Cairo → Sierra, which means contracts written with the new version can be deployed on testnet or mainnet without delay.

In addition to the language server improvements, a few new features were added to the language, which we’ll cover below. As always, for a comprehensive review of the changes, see the [release notes](https://github.com/starkware-libs/cairo/releases/tag/v2.8.0).

Finally, we’d like to remind everyone that the Cairo package registry [scarbs.xyz](https://scarbs.xyz/) is live. Uploading is still whitelisted, but you can browse through the popular packages.

## Language server improvements

 ![image](https://europe1.discourse-cdn.com/flex005/uploads/starknet1/original/3X/9/9/99015a39752b55f70aa448e47bdf303a87f149fa.jpeg)

Following community feedback, over the past few weeks we have significantly increased the attention given to the language server to give the best DevX possible.

Thanks to the great work of the Scarb & compiler team, you should now notice that it’s now:

- Much more stable, many crashing-related issues were solved
- Much more performant, less to no waiting for it to analyze your files

To enjoy the latest improvements, make sure you’re using [scarb](https://docs.swmansion.com/scarb/) 2.8.0 (ideally installed via asdf), and in case you’re using VSCode, the latest version of the [extension](https://marketplace.visualstudio.com/items?itemName=starkware.cairo1).

To ensure things keep running smoothly, please report any LS-related issues on the [TG support group](https://t.me/cairo_ls_support).

## The Cairo package registry

 ![image](https://europe1.discourse-cdn.com/flex005/uploads/starknet1/original/3X/4/a/4a6b32868cd74c5a7b686dbc9d4486da3c364e28.png)

We’re happy to announce the official cairo package-registry [scarbs.xyz](https://scarbs.xyz/). Uploading packages is still whitelisted at the moment, but is expected to open in the upcoming weeks.

Thanks to the registry, you no longer have to use github tags when specifying your dependencies, but can instead use package versions.

Before:

```auto
[dependencies]
starknet = "2.8.0"
openzeppelin = { git = "<https://github.com/openzeppelin/cairo-contracts>", tag = "v0.10.0"}

[dev-dependencies]
snforge_std = { git = "<https://github.com/foundry-rs/starknet-foundry.git>", tag = "v0.25.0" }

```

Now

```auto
[dependencies]
starknet = "2.8.0"
openzeppelin = "0.15.1"

[dev-dependencies]
snforge_std = "0.28.0"

```

Having issues uploading? Think a critical package is missing? Join the registry [TG group](https://t.me/scarbs_xyz) and share your issues and suggestions.

## Range operator

The range operator `..` is introduced to Cairo, currently implemented for all integer types:

```auto
for i in 1_u32..10_u32 {
   println!("{i}");
}

```

To support custom types, one needs to implement `IntoIterator<Range<T>>`. For more details, see [range.cairo](https://github.com/starkware-libs/cairo/blob/98aa21d68c389c69de6ef3008ed6e2e362750f7e/corelib/src/ops/range.cairo) in the corelib.

## supporting `crate::` in path names

When importing items from your own package, you no longer have to use the explicit name, but instead can write:

`use crate::path::in::the_crate;`
