# Bitrise step dependency version

**URL:** https://discuss.bitrise.io/t/bitrise-step-dependency-version/6073
**Category:** Development
**Created:** [August 30, 2018, 3:30pm UTC](https://discuss.bitrise.io/t/bitrise-step-dependency-version/6073 "2018-08-30T15:30:42Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![seppe\_r](https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.bitrise.io/seppe_r/32/1709_2.png) [@seppe\_r](https://discuss.bitrise.io/u/seppe_r)
#### Post date: [August 30, 2018, 3:30pm UTC](https://discuss.bitrise.io/t/bitrise-step-dependency-version/6073/1 "2018-08-30T15:30:42Z")

</div>

Hi,

I’m creating my first bitrise step.  
I need a dependency which I declare in the step.yml file under deps.  
But If I would like to give the user the option to enter a custom version or ‘latest’ of the dependency?  
Is there some best practice to do this?  
Or should I just remove it from the deps and install it myself in a shell command that afterwards runs my go command?

Friendly regards,

Seppe

---

<div class="post-metadata">

### Author: ![tamasbazsonyi](https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.bitrise.io/tamasbazsonyi/32/1654_2.png) [@tamasbazsonyi](https://discuss.bitrise.io/u/tamasbazsonyi)
#### Post date: [August 31, 2018, 11:06am UTC](https://discuss.bitrise.io/t/bitrise-step-dependency-version/6073/2 "2018-08-31T11:06:45Z")

</div>

Hi @seppe_r,  
Nice! We are really happy to hear that you’re working on creating your first step! 😉 If the latest version of the deps would be enough and they are available via apt-get and/or brew you can simply add it in the `deps` section and the CLI will handle everything for you.  
For using custom versions of a dependency according to the user’s preferences the solution would be to use a shell command as you mentioned to download and install the desired version of the tool. Let me know if you’d have any further questions! 🙂  
Best regards,  
Tamas

---

<div class="post-metadata">

### Author: ![seppe\_r](https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.bitrise.io/seppe_r/32/1709_2.png) [@seppe\_r](https://discuss.bitrise.io/u/seppe_r)
#### Post date: [September 3, 2018, 7:59am UTC](https://discuss.bitrise.io/t/bitrise-step-dependency-version/6073/3 "2018-09-03T07:59:37Z")

</div>

Ok thanks 😃

So the deps always updates to the latest version even if already installed?

Is there any sort of example to run the step.sh which runs the go command?

I can see [https://github.com/bitrise-steplib/steps-carthage/blob/master/step.sh](https://github.com/bitrise-steplib/steps-carthage/blob/master/step.sh) but is all the creation of the folders necessary if the step.sh is in the same repo as the main.go ? 🤔

Friendly regards,

Seppe

---

<div class="post-metadata">

### Author: ![tamaspapik](https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.bitrise.io/tamaspapik/32/251_2.png) [@tamaspapik](https://discuss.bitrise.io/u/tamaspapik)
#### Post date: [September 10, 2018, 1:47pm UTC](https://discuss.bitrise.io/t/bitrise-step-dependency-version/6073/4 "2018-09-10T13:47:51Z")

</div>

Hey!

I suggest you to use this post, it is awesome and really handy: [https://www.thedroidsonroids.com/blog/how-to-create-bitrise-step-in-go-flutter-example](https://www.thedroidsonroids.com/blog/how-to-create-bitrise-step-in-go-flutter-example)

---

<div class="post-metadata">

### Author: ![viktorbenei](https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.bitrise.io/viktorbenei/32/18_2.png) [@viktorbenei](https://discuss.bitrise.io/u/viktorbenei)
#### Post date: [October 11, 2018, 6:40pm UTC](https://discuss.bitrise.io/t/bitrise-step-dependency-version/6073/5 "2018-10-11T18:40:31Z")

</div>

> [@seppe\_r](#):
>
> So the deps always updates to the latest version even if already installed?

No, if the tool is already installed it won’t update it. See: [Installing tools during a build - Bitrise Docs](https://devcenter.bitrise.io/tips-and-tricks/install-additional-tools/#advanced-option-use-deps-in-bitriseyml)

> If you declare `deps`_for a given Step_ , the [Bitrise CLI](https://github.com/bitrise-io/bitrise) will check if that tool is installed, and will install it for you if required.

also

> This method is the preferred way of handling (step) dependencies, as the Bitrise CLI will not (re)install the specified tool(s) if it’s already available.
