Closed johnkim-det closed 4 months ago
This was caused by an issue with browser-tools orb which is a dependency of the cypress orb. It was fixed here: https://github.com/CircleCI-Public/browser-tools-orb/pull/105
We set browser-tools: 1 as the version, so my expectation is that this would update to latest underneath. I'm not completely sure how the versioning works for the orbs with interdependent orbs.
@jennifer-shehane
This is impacting https://github.com/cypress-io/cypress-example-kitchensink again. (See https://github.com/cypress-io/cypress-example-kitchensink/pull/797).
@jennifer-shehane
This was caused by an issue with browser-tools orb which is a dependency of the cypress orb. It was fixed here: CircleCI-Public/browser-tools-orb#105
We set browser-tools: 1 as the version, so my expectation is that this would update to latest underneath. I'm not completely sure how the versioning works for the orbs with interdependent orbs.
CircleCI documentation states that published orbs are immutable which ties in with the observation that the old version circleci/browser-tools@1.4.6
is being used by cypress-io/cypress@3.3.0
. This was the current version of circleci/browser-tools
at the time that cypress-io/cypress@3.3.0
was published.
Bump the version of circleci/browser-tools
to circleci/browser-tools@1.4.8
in
replacing the semver @1
with an explicit version @1.4.8
and republish the orb.
It seems that the version of circleci/browser-tools
is only re-evaluated when the cypress-io/cypress
orb is republished and not at run-time when the orb is used. Listing @1
is confusing since in that case neither GitHub nor CircleCI apparently documents exactly which version of circleci/browser-tools
has been pulled in.
In comparison to GitHub workflows this is counter-intuitive. Nested workflows of JavaScript actions calling other JavaScript actions evaluate versions to be used at run-time.
cc: @DaleGardner
That makes sense, great explanation Mike!
@jennifer-shehane
https://discuss.circleci.com/t/orb-to-orb-dependency-resolution/29012 from 2019 says
"In short—orbs are designed to be immutable, so when you import one orb in another orb, you import that orb at a specific version, which will never change unless you manually change it."
however that does not seem to be particularly clear reading the documentation
PR opened to fix this issue. @jennifer-shehane If you can review, it would be much appreciated! Then hopefully could get a new version published and resolve the error! Thank you @MikeMcC399 for pointing this out and all the research!!
@DaleGardner
@MikeMcC399 Annoying. Thanks for diving into this and assessing the true state of how it works. I was confused by the semver allowance also, yet it doesn't abide by it.
Please update to cypress' 3.3.1 orb to get this fix: https://github.com/cypress-io/circleci-orb/releases/tag/v3.3.1
The orb does not work as expected
circle.yml
file if possible or at least the relevant portionorbs: cypress: cypress-io/cypress@3.3.0
workflows: main: jobs:
Tried multiple versions (3.3.0, 3.2.1, 3.2.0, 3.1.4, 3.1.3), all with the same error.