<p>You've identified the general problem. The easiest path around this issue is to upgrade to the latest of everything all at once. <code>composer update</code> alone will not upgrade to the latest major release, only to the latest releases defined in your composer.json. To make sure you are upgrading to the latest of everything:</p>

<ol>
<li>Delete your <code>composer.lock</code> file (might not be necessary but I find it helps get around a few potential support scenarios to take this step)</li>
<li>Review each package in the <code>require</code> array of your composer.json</li>
<li>Update each package to the latest version release.</li>
<li>Once all packages are defined with their latest versions, run <code>composer update</code></li>
</ol>

<p>Regarding version constraints in your composer.json file, you'll probably want to require an explicit version of Craft and us the Caret Version Range for plugins:</p>

<pre><code>{
  ...
  "require": {
    "craftcms/cms": "3.1.23",
    "vlucas/phpdotenv": "^2.4.0",
    "barrelstrength/sprout-forms": "^3.0.0-beta.57",
    "barrelstrength/sprout-email": "^4.0.0-beta.18",
    ...
  }
  ...
}
</code></pre>

<p>By updating to the latest versions of everything all at once, you'll ensure that the major releases of supporting modules that may be used by more than one plugin are updated and resolved together.</p>

<p>If you continue to run into issues you may want to try to run remove commands first (i.e. `composer remove barrelstrength/sprout-forms barrelstrength/sprout-email) or remove your entire vendor folder and go through the steps above again.</p>

<p>You should not need to require <code>barrelstrength/sprout-base</code>. Once you get the primary list if required packages in your <code>composer.json</code> file sorted out, the correct dependency will get resolved.</p>

CC BY-SA 4.0
2019-05-29T10:50:58.477Z
Thanks Ben... I muddled through somehow but will try to make sure I follow the steps outlined above next time.
Kevin
CC BY-SA 4.0
2019-05-29T23:47:51.903Z
@Kevin The steps above should not always be necessary. But they can be helpful to resolve dependency conflicts if they arise.
Ben Parizek
CC BY-SA 4.0
2019-05-28T11:32:27.587Z
2019-05-28T11:32:27.587Z
Ben Parizek
<p>Try to change <code>barrelstrength/sprout-email</code> to <code>4.0.0-beta.18</code>, run <code>composer clear-cache</code> then <code>composer update</code> again.</p>

CC BY-SA 4.0
2019-05-27T12:50:45.913Z
Tried that – still getting an error 
`    - Can only install one of: barrelstrength/sprout-base[5.0.0, 4.0.8].
    - barrelstrength/sprout-email 4.0.0-beta.18 requires barrelstrength/sprout-base ^5.0.0 -> satisfiable by barrelstrength/sprout-base[5.0.0].`
Kevin
CC BY-SA 4.0
2019-05-27T13:15:08.730Z
Do you actually have `barrelstrength/sprout-base` in your `composer.json`?
Oli
CC BY-SA 4.0
2019-05-27T15:56:55.790Z
No I didnt - I can require version 4.0.8 of sprout base and then run a composer update. But if I then try to update the plugins from the back end I get an error: 

- Installation request for barrelstrength/sprout-forms 3.0.0-beta.57 -> satisfiable by barrelstrength/sprout-forms[3.0.0-beta.57].
- barrelstrength/sprout-forms 3.0.0-beta.57 requires barrelstrength/sprout-base ^5.0.0 -> satisfiable by barrelstrength/sprout-base[5.0.0] but these conflict with your requirements or minimum-stability.
Kevin
CC BY-SA 4.0
2019-05-27T15:57:01.760Z
If I try to require sprout-base 5.0.0 from composer I get an error: 
    - barrelstrength/sprout-email 4.0.0-beta.15 requires barrelstrength/sprout-base ^4.0.8 -> satisfiable by barrelstrength/sprout-base[4.0.8, v4.x-dev] but these conflict with your requirements or minimum-stability.
Kevin
CC BY-SA 4.0
2019-05-27T12:08:23.013Z
2019-05-27T12:08:23.013Z
Oli
<p>I cant update my sprout plugins due to a dependency / version issue with sprout base. Ive tried updating via composer - but I think I need to edit my composer file to work around the sprout base dependency issue - not certain of what that edit should be - any help appreciated. </p>

<pre><code>Your requirements could not be resolved to an installable set of packages.

Problem 1
- barrelstrength/sprout-email 4.0.0-beta.15 requires barrelstrength/sprout-base ^4.0.8 -&gt; satisfiable by barrelstrength/sprout-base[4.0.8].
- barrelstrength/sprout-email 4.0.0-beta.15 requires barrelstrength/sprout-base ^4.0.8 -&gt; satisfiable by barrelstrength/sprout-base[4.0.8].
- barrelstrength/sprout-email 4.0.0-beta.15 requires barrelstrength/sprout-base ^4.0.8 -&gt; satisfiable by barrelstrength/sprout-base[4.0.8].
- Can only install one of: barrelstrength/sprout-base[5.0.0, 4.0.8].
- Can only install one of: barrelstrength/sprout-base[4.0.8, 5.0.0].
- Can only install one of: barrelstrength/sprout-base[5.0.0, 4.0.8].
- barrelstrength/sprout-forms 3.0.0-beta.57 requires barrelstrength/sprout-base ^5.0.0 -&gt; satisfiable by barrelstrength/sprout-base[5.0.0].
- Installation request for barrelstrength/sprout-forms 3.0.0-beta.57 -&gt; satisfiable by barrelstrength/sprout-forms[3.0.0-beta.57].
- Installation request for barrelstrength/sprout-email 4.0.0-beta.15 -&gt; satisfiable by barrelstrength/sprout-email[4.0.0-beta.15].
</code></pre>

<plugin-sproutforms>
Composer issue updating sprout plugins
# Composer issue updating sprout plugins

(Asked by: username_0 on 2019-05-27)

I cant update my sprout plugins due to a dependency / version issue with sprout base. Ive tried updating via composer - but I think I need to edit my composer file to work around the sprout base dependency issue - not certain of what that edit should be - any help appreciated. 
Your requirements could not be resolved to an installable set of packages.

Problem 1
- barrelstrength/sprout-email 4.0.0-beta.15 requires barrelstrength/sprout-base ^4.0.8 -> satisfiable by barrelstrength/sprout-base[4.0.8].
- barrelstrength/sprout-email 4.0.0-beta.15 requires barrelstrength/sprout-base ^4.0.8 -> satisfiable by barrelstrength/sprout-base[4.0.8].
- barrelstrength/sprout-email 4.0.0-beta.15 requires barrelstrength/sprout-base ^4.0.8 -> satisfiable by barrelstrength/sprout-base[4.0.8].
- Can only install one of: barrelstrength/sprout-base[5.0.0, 4.0.8].
- Can only install one of: barrelstrength/sprout-base[4.0.8, 5.0.0].
- Can only install one of: barrelstrength/sprout-base[5.0.0, 4.0.8].
- barrelstrength/sprout-forms 3.0.0-beta.57 requires barrelstrength/sprout-base ^5.0.0 -> satisfiable by barrelstrength/sprout-base[5.0.0].
- Installation request for barrelstrength/sprout-forms 3.0.0-beta.57 -> satisfiable by barrelstrength/sprout-forms[3.0.0-beta.57].
- Installation request for barrelstrength/sprout-email 4.0.0-beta.15 -> satisfiable by barrelstrength/sprout-email[4.0.0-beta.15].

**Tags:** plugin-sproutforms


---

## 2 answers

### Answer by username_1 on 2019-05-28. Score: 2 | Accepted answer

You've identified the general problem. The easiest path around this issue is to upgrade to the latest of everything all at once. composer update alone will not upgrade to the latest major release, only to the latest releases defined in your composer.json. To make sure you are upgrading to the latest of everything:

Delete your composer.lock file (might not be necessary but I find it helps get around a few potential support scenarios to take this step)
Review each package in the require array of your composer.json
Update each package to the latest version release.
Once all packages are defined with their latest versions, run composer update

Regarding version constraints in your composer.json file, you'll probably want to require an explicit version of Craft and us the Caret Version Range for plugins:
{
  ...
  "require": {
    "craftcms/cms": "3.1.23",
    "vlucas/phpdotenv": "^2.4.0",
    "barrelstrength/sprout-forms": "^3.0.0-beta.57",
    "barrelstrength/sprout-email": "^4.0.0-beta.18",
    ...
  }
  ...
}

By updating to the latest versions of everything all at once, you'll ensure that the major releases of supporting modules that may be used by more than one plugin are updated and resolved together.
If you continue to run into issues you may want to try to run remove commands first (i.e. `composer remove barrelstrength/sprout-forms barrelstrength/sprout-email) or remove your entire vendor folder and go through the steps above again.
You should not need to require barrelstrength/sprout-base. Once you get the primary list if required packages in your composer.json file sorted out, the correct dependency will get resolved.

> **Comments:**
> **username_0**: Thanks Ben... I muddled through somehow but will try to make sure I follow the steps outlined above next time.  
> **username_1**: @username_0 The steps above should not always be necessary. But they can be helpful to resolve dependency conflicts if they arise.  

---

### Answer by username_2 on 2019-05-27. Score: 1

Try to change `barrelstrength/sprout-email` to `4.0.0-beta.18`, run `composer clear-cache` then `composer update` again.

> **Comments:**
> **username_0**: Tried that – still getting an error  `    - Can only install one of: barrelstrength/sprout-base[5.0.0, 4.0.8].     - barrelstrength/sprout-email 4.0.0-beta.18 requires barrelstrength/sprout-base ^5.0.0 -> satisfiable by barrelstrength/sprout-base[5.0.0].`  
> **username_2**: Do you actually have `barrelstrength/sprout-base` in your `composer.json`?  
> **username_0**: No I didnt - I can require version 4.0.8 of sprout base and then run a composer update. But if I then try to update the plugins from the back end I get an error:   - Installation request for barrelstrength/sprout-forms 3.0.0-beta.57 -> satisfiable by barrelstrength/sprout-forms[3.0.0-beta.57]. - barrelstrength/sprout-forms 3.0.0-beta.57 requires barrelstrength/sprout-base ^5.0.0 -> satisfiable by barrelstrength/sprout-base[5.0.0] but these conflict with your requirements or minimum-stability.  
> **username_0**: If I try to require sprout-base 5.0.0 from composer I get an error:      - barrelstrength/sprout-email 4.0.0-beta.15 requires barrelstrength/sprout-base ^4.0.8 -> satisfiable by barrelstrength/sprout-base[4.0.8, v4.x-dev] but these conflict with your requirements or minimum-stability.  

---

