# Upgrading \`com.datomic/client-cloud\` to "0.8.105"

**URL:** <https://forum.datomic.com/t/upgrading-com-datomic-client-cloud-to-0-8-105/1888>\
**Category:** Datomic Cloud\
**Created:** [July 1, 2021, 10:46pm UTC](https://forum.datomic.com/t/upgrading-com-datomic-client-cloud-to-0-8-105/1888 "2021-07-01T22:46:14Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![jmshelby](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.datomic.com/jmshelby/32/437_2.png) [@jmshelby](https://forum.datomic.com/u/jmshelby)\
**Post date:** [July 1, 2021, 10:46pm UTC](https://forum.datomic.com/t/upgrading-com-datomic-client-cloud-to-0-8-105/1888/1 "2021-07-01T22:46:14Z")

</div>

Recently I’ve been trying to update `com.datomic/client-cloud` to the latest version, from “0.8.102” → “0.8.105”, but when I do the ion-dev `:push` it’s telling me that datomic cloud is still running the older “0.8.102”. Both of my systems (for the app I am pushing) are running the most recent version of datomic, so I assumed it would include that latest version of client-cloud as well. Are both of the systems actually including an older client-cloud lib version? Which system is the :push operation using to determine the dependency versions  
that we should be locked down to?

```auto
▶ datomic cloud list-systems
[{"name":"core-dev", "storage-cft-version":"781", "topology":"solo"},
 {"name":"core-prod",
  "storage-cft-version":"781",
  "topology":"production"}]
▶ datomic system list-instances core-prod
[{"group-name":"core-prod-primary",
  "group-cft-version":"781",
  "group-cloud-version":"9041",
  "instance-id":"i-0d756ac8c5550b52a",
  "status":"running"},
 {"group-name":"access-gateway",
  "group-cft-version":"781",
  "group-cloud-version":"9041",
  "instance-id":"i-0d61e8e615eb810b1",
  "status":"running"},
 {"group-name":"core-prod-primary",
  "group-cft-version":"781",
  "group-cloud-version":"9041",
  "instance-id":"i-0ca68de7b8c434ffe",
  "status":"running"}]
▶ datomic system list-instances core-dev
[{"group-name":"access-gateway",
  "group-cft-version":"781",
  "group-cloud-version":"9041",
  "instance-id":"i-02a34f78ef6d3b9c9",
  "status":"running"},
 {"group-name":"core-dev-primary",
  "group-cft-version":"781",
  "group-cloud-version":"9041",
  "instance-id":"i-002f8cd7bbf197124",
  "status":"running"}]
▶ clojure -M:ion-dev '{:op :push :uname "checking-deps"}'
(cognitect.s3-libs.s3/upload "datomic-code-...96" [{:local-zip ".datomi...ng-deps.zip", :s3-zip "datom...zip"}] {:op :push, :uname "checking-deps"})
{:uname "checking-deps",
 :deploy-groups (core-dev-primary core-prod-primary),
 :dependency-conflicts
 {:deps
  #:com.datomic{client-api #:mvn{:version "0.8.54"},
                client #:mvn{:version "0.8.111"},
                client-impl-shared #:mvn{:version "0.8.80"},
                client-cloud #:mvn{:version "0.8.102"}},
  :doc
  "The :push operation overrode these dependencies to match versions already running in Datomic Cloud. To test locally, add these explicit deps to your deps.edn."},
 :deploy-command
 "clojure -A:ion-dev '{:op :deploy, :group <group>, :uname \"checking-deps\"}'",
 :doc
 "To deploy, issue the :deploy-command, replacing <group> with a group from :deploy-groups"}

```

---

<div class="post-metadata">

**Author:** ![jaret](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.datomic.com/jaret/32/45_2.png) [@jaret](https://forum.datomic.com/u/jaret)\
**Post date:** [July 6, 2021, 6:08pm UTC](https://forum.datomic.com/t/upgrading-com-datomic-client-cloud-to-0-8-105/1888/2 "2021-07-06T18:08:27Z")

</div>

@jmshelby Thanks for catching this! You’re findings are correct, we have not released the latest client-cloud with the latest template. It’s coming on the next release! There should be no issues with this in terms of functionality.

---

<div class="post-metadata">

**Author:** ![jmshelby](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.datomic.com/jmshelby/32/437_2.png) [@jmshelby](https://forum.datomic.com/u/jmshelby)\
**Post date:** [July 6, 2021, 6:24pm UTC](https://forum.datomic.com/t/upgrading-com-datomic-client-cloud-to-0-8-105/1888/3 "2021-07-06T18:24:11Z")

</div>

Thanks @jaret. So when I run the `:push` op, if I have two or more stacks running different versions, which system does it use to calculate the dependency conflicts? Is it going to look at the oldest one?

---

<div class="post-metadata">

**Author:** ![jaret](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.datomic.com/jaret/32/45_2.png) [@jaret](https://forum.datomic.com/u/jaret)\
**Post date:** [July 6, 2021, 6:51pm UTC](https://forum.datomic.com/t/upgrading-com-datomic-client-cloud-to-0-8-105/1888/4 "2021-07-06T18:51:43Z")

</div>

@jmshelby I think you are possibly conflating push and deploy. Push moves the files to s3.  
The CLI tool is the tool catching the deps conflicts, it does not connect to a machine to know the deps conflict. In the event you are running two stacks you will only push once to s3 and deploy twice, once for each system.

Push and deploy are system scoped so to answer your question directly it will resolve version deps conflicts per system. Because each system has it’s own s3 bucket.

---

<div class="post-metadata">

**Author:** ![jmshelby](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.datomic.com/jmshelby/32/437_2.png) [@jmshelby](https://forum.datomic.com/u/jmshelby)\
**Post date:** [July 6, 2021, 7:09pm UTC](https://forum.datomic.com/t/upgrading-com-datomic-client-cloud-to-0-8-105/1888/5 "2021-07-06T19:09:21Z")

</div>

Thanks @jaret , I understand the distinction between the two operations, and that :push is about building and pushing the code to the S3 location (I only run push once). Because I only need to run :push once, and there is no param to provide a system name, then it makes sense to me that the :push operation is actually “app” scoped (based on what’s specified in the ion-config.edn), and it pushes to an S3 bucket at the “app” level.

So because the :push operation is not at the system level (because I can’t provide a system name or deploy group for that operation), how does the :push operation know what the dependency conflicts are? I imagine, you’d _need_ to know what version a system is running to know what dependencies _it’s_ using. So in a multi-system environment (for the same app), when I run :push, (which doesn’t allow me to specify a certain system/group), which set of dependencies is it assuming is running in datomic? (since each version of a system/group could be running with different dependencies).

---

<div class="post-metadata">

**Author:** ![jaret](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.datomic.com/jaret/32/45_2.png) [@jaret](https://forum.datomic.com/u/jaret)\
**Post date:** [July 6, 2021, 7:28pm UTC](https://forum.datomic.com/t/upgrading-com-datomic-client-cloud-to-0-8-105/1888/6 "2021-07-06T19:28:47Z")

</div>

@jmshelby Let me discuss with the team. I think I understand exactly what you are encountering here. We have a few people out on vacation who I would like to verify my understanding with before commenting. I will update you as soon as I’ve had a chance to discuss with them. Thank you for bringing this multi-system, same application scenario to my attention.

---

<div class="post-metadata">

**Author:** ![jmshelby](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.datomic.com/jmshelby/32/437_2.png) [@jmshelby](https://forum.datomic.com/u/jmshelby)\
**Post date:** [June 16, 2022, 5:05pm UTC](https://forum.datomic.com/t/upgrading-com-datomic-client-cloud-to-0-8-105/1888/7 "2022-06-16T17:05:56Z")

</div>

@jaret it’s been almost a year, any update on this question about dependency conflicts here?

---

<div class="post-metadata">

**Author:** ![Robert-Randolph](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.datomic.com/robert-randolph/32/545_2.png) [@Robert-Randolph](https://forum.datomic.com/u/Robert-Randolph)\
**Post date:** [June 16, 2022, 5:34pm UTC](https://forum.datomic.com/t/upgrading-com-datomic-client-cloud-to-0-8-105/1888/8 "2022-06-16T17:34:06Z")

</div>

@jmshelby I’m sorry for the delay in getting an answer to you.

The push operation uses the dependencies which are current as of the release of that ion-dev version. For this reason I would currently suggest using an ion-dev version which was released near to the time of the cloud version that you’re using.

I have looked through support cases and we do not have record of anyone running into issues with mismatches between what ion-dev reports/enforces and the dependencies in Cloud.

We have an internal ticket regarding changing this behaviour.

-Robert Randolph
