Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a mechanism to verify cli tools versions compatibility #774

Open
Tracked by #4235
rotemmiz opened this issue Jun 5, 2018 · 9 comments
Open
Tracked by #4235

Add a mechanism to verify cli tools versions compatibility #774

rotemmiz opened this issue Jun 5, 2018 · 9 comments

Comments

@rotemmiz
Copy link
Member

rotemmiz commented Jun 5, 2018

applesimutils is an example for a cli tool that is tightly coupled with Detox, and needs to be synchronized with Detox versions.

We need a way to verify that those cli tools versions are compatible with Detox.

@jgreen210
Copy link

jgreen210 commented Sep 18, 2018

Distributing applesimutils with homebrew makes it hard/impossible to set up a test server or development environment in a controlled way. I.e. I'd like to be able to just specify a detox version in my package.json etc., and have the right version of applesimutils installed/used automatically. With homebrew, you generally just get the latest version of applesimutils installed, and it's installed globally, so you can't have multiple copies. Putting Cellar-only executables on the PATH when running detox might work, but it's not easy/possible to convince homebrew to install specific versions, and I'd have to maintain my own detox -> applesimutils version-compatibility map.

If applesimutils were built with npm and there was an npm dependency from the detox npm package to an applesimutils package, this wouldn't be a problem. The detox npm package already invokes xcodebuild, so building applesimutils with npm too should be possible.

Is there a reason why homebrew is used, not npm?

The homebrew recipe doesn't list any dependencies:

https://github.com/wix/homebrew-brew/blob/master/applesimutils.rb

...so it's not that.

@jgreen210
Copy link

Is moving applesimutils code into detox repo an option? Could then use the detox npm package's postinstall build script to build applesimutils too. If do that:

  • applesimutils is no longer available on its own.
  • It's one less npm package (and maintainer).
  • Would have to merge the two repos' LICENCE files.

@noomorph
Copy link
Collaborator

Hmm... @d4vidi, I wonder if we indeed can ship AppleSimUtils as a package, maybe?

@d4vidi
Copy link
Collaborator

d4vidi commented Aug 31, 2021

Technically, applesimutils should at all times be backwards compatible (i.e. to older Detox version). Should it not?

@d4vidi d4vidi added this to the Q4/2021 Bugathon milestone Oct 3, 2021
@noomorph
Copy link
Collaborator

@d4vidi except for the cases when Detox relies on a new feature of AppleSimUtils, but the latter is not updated on the user's machine

@d4vidi
Copy link
Collaborator

d4vidi commented Nov 19, 2021

But in those cases we assert its version, don't we?

@noomorph
Copy link
Collaborator

@d4vidi, no. That's the whole point of this issue.

@d4vidi d4vidi removed this from the Q4/2021 Bugathon milestone May 17, 2022
@noomorph noomorph self-assigned this Mar 13, 2023
@noomorph
Copy link
Collaborator

We need to consider this as a part of the open-source Detox Doctor epic.

@d4vidi
Copy link
Collaborator

d4vidi commented May 28, 2023

We need to consider this as a part of the open-source Detox Doctor epic.

@noomorph I like the idea. We'll have to automate it somehow, such that each Detox version could declare the minimally required applesimutils version. On that note, could we make the assertion inside Detox itself, then?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants