Coder Social home page Coder Social logo

Comments (4)

lacostej avatar lacostej commented on April 29, 2024

Isn't that expected?

gem cleanup will uninstall all old versions of gems, and in this case it removes the older versions of google-cloud-env which are required for fastlane to work.

If you run gem cleanup again, it will probably fail again, unless you have also removed the newer version of google-cloud-env.

Personally I recommend using bundler and a local cache of your dependencies so that you do not depend on globally installed gems.

from fastlane.

Break4ever avatar Break4ever commented on April 29, 2024

Same issue !

In my opinions, "gem cleanup" is a routine executed command for period time because stack a lot of versions package would effect fastlane performance

And now we can't clean up old version packages, it doesn't make sense

from fastlane.

harrimaatta avatar harrimaatta commented on April 29, 2024

Yep. I have noticed that if I run fastlane env, it prints out the basic set

[✔] 🚀 
[15:42:56]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile
[15:42:57]: Generating fastlane environment output, this might take a few seconds...
✅ fastlane environment ✅

Stack

Key Value
OS 14.3.1
Ruby 3.3.0
Bundler? false
Git git version 2.39.3 (Apple Git-145)
Installation Source /opt/homebrew/opt/ruby/bin/fastlane
Host macOS 14.3.1 (23D60)
Ruby Lib Dir /opt/homebrew/Cellar/ruby/3.3.0/lib
OpenSSL Version OpenSSL 3.2.0 23 Nov 2023
Is contained false
Is homebrew false
Is installed via Fabric.app false
Xcode Path /Applications/Xcode15.2.app/Contents/Developer/
Xcode Version 15.2
Swift Version 5.9.2

System Locale

Variable Value
LANG en_US.UTF-8
LC_ALL en_US.UTF-8
LANGUAGE en_US.UTF-8

fastlane files:

No Fastfile found

No Appfile found

fastlane gems

Gem Version Update-Status
fastlane 2.219.0 ✅ Up-To-Date

Loaded fastlane plugins:

No plugins Loaded

Loaded gems
Gem Version
error_highlight 0.6.0
did_you_mean 1.6.3
syntax_suggest 2.0.0
addressable 2.8.6
artifactory 3.0.15
jmespath 1.6.2
aws-partitions 1.887.0
aws-eventstream 1.3.0
aws-sigv4 1.8.0
aws-sdk-core 3.191.0
aws-sdk-kms 1.77.0
aws-sdk-s3 1.143.0
babosa 1.0.4
bundler 2.5.6
rexml 3.2.6
CFPropertyList 3.0.6
colored 1.2
highline 2.0.3
commander 4.6.0
dotenv 2.8.1
emoji_regex 3.2.3
excon 0.109.0
faraday-em_http 1.0.0
faraday-em_synchrony 1.0.0
faraday-excon 1.1.0
faraday-httpclient 1.0.1
multipart-post 2.3.0
faraday-multipart 1.0.4
faraday-net_http 1.0.1
faraday-net_http_persistent 1.2.0
faraday-patron 1.0.0
faraday-rack 1.0.0
faraday-retry 1.0.3
ruby2_keywords 0.0.5
faraday 1.10.3
faraday_middleware 1.2.0
domain_name 0.6.20240107
http-cookie 1.0.5
faraday-cookie_jar 0.0.7
fastimage 2.3.0
gh_inspector 1.1.3
google-cloud-env 1.6.0
json 2.7.1
jwt 2.7.1
mini_magick 4.12.0
naturally 2.2.1
optparse 0.4.0
plist 3.7.1
rubyzip 2.3.2
security 0.1.3
simctl 1.6.10
terminal-notifier 2.0.0
unicode-display_width 2.5.0
terminal-table 3.0.2
tty-screen 0.8.2
tty-cursor 0.7.1
tty-spinner 0.9.3
word_wrap 1.0.0
atomos 0.1.3
claide 1.1.0
colored2 3.1.2
nanaimo 0.3.0
xcodeproj 1.24.0
rouge 2.0.7
xcpretty 0.3.0
xcpretty-travis-formatter 1.0.1
set 1.1.0
public_suffix 5.0.4
httpclient 2.8.3
multi_json 1.15.0
signet 0.18.0
os 1.1.4
googleauth 1.8.1
mini_mime 1.1.5
retriable 3.1.2
trailblazer-option 0.1.2
declarative 0.0.20
uber 0.1.0
representable 3.2.0
google-apis-core 0.11.3
google-apis-androidpublisher_v3 0.54.0
google-apis-playcustomapp_v1 0.13.0
rake 13.1.0
digest-crc 0.6.5
google-apis-storage_v1 0.31.0
google-apis-iamcredentials_v1 0.17.0
google-cloud-errors 1.3.1
google-cloud-core 1.6.1
google-cloud-storage 1.47.0
forwardable 1.3.3
logger 1.6.0
pathname 0.3.0
shellwords 0.2.0
cgi 0.4.1
date 3.3.4
timeout 0.4.1
securerandom 0.3.1
uri 0.13.0
openssl 3.2.0
digest 3.1.1
ipaddr 1.2.6
resolv 0.3.0
time 0.3.0
stringio 3.1.0
open-uri 0.4.1
mutex_m 0.2.0
net-http 0.4.1
net-protocol 0.2.2
connection_pool 2.4.1
net-http-persistent 4.0.2
patron 0.13.3
ostruct 0.6.0
english 0.8.0
erb 4.0.4
abbrev 0.1.2
tempfile 0.2.1
delegate 0.3.1
fileutils 1.7.2
tmpdir 0.2.0
base64 0.2.0
singleton 0.2.0
open3 0.2.1
nkf 0.2.0
prettyprint 0.2.0
pp 0.5.0
find 0.2.0
yaml 0.3.0
psych 5.1.2

generated on: 2024-02-16

Then gem list googleauth lists versions

*** LOCAL GEMS ***
googleauth (1.11.0, 1.8.1)

Now, if I run a command gem cleanup, it removes some related packages:

Attempting to uninstall google-cloud-storage-1.47.0
Successfully uninstalled google-cloud-storage-1.47.0
Attempting to uninstall google-apis-playcustomapp_v1-0.13.0
Successfully uninstalled google-apis-playcustomapp_v1-0.13.0
Attempting to uninstall google-apis-iamcredentials_v1-0.17.0
Successfully uninstalled google-apis-iamcredentials_v1-0.17.0
Attempting to uninstall google-apis-androidpublisher_v3-0.54.0
Successfully uninstalled google-apis-androidpublisher_v3-0.54.0
Attempting to uninstall google-apis-core-0.11.3
Successfully uninstalled google-apis-core-0.11.3
Attempting to uninstall googleauth-1.8.1
Successfully uninstalled googleauth-1.8.1
Attempting to uninstall google-apis-storage_v1-0.31.0
Successfully uninstalled google-apis-storage_v1-0.31.0
Clean up complete

And gem list googleauth prints

*** LOCAL GEMS ***
googleauth (1.11.0)

So, it has removed previous version(s), as expected.

And now fastlane env gives

/opt/homebrew/lib/ruby/site_ruby/3.3.0/rubygems/specification.rb:1474:in `block in activate_dependencies': can't satisfy 'google-cloud-env (>= 1.6.0, < 2.0.0)', already activated 'google-cloud-env-2.1.1' (Gem::LoadError)
	from /opt/homebrew/lib/ruby/site_ruby/3.3.0/rubygems/specification.rb:1466:in `each'
	from /opt/homebrew/lib/ruby/site_ruby/3.3.0/rubygems/specification.rb:1466:in `activate_dependencies'
	from /opt/homebrew/lib/ruby/site_ruby/3.3.0/rubygems/specification.rb:1448:in `activate'
	from /opt/homebrew/lib/ruby/site_ruby/3.3.0/rubygems.rb:280:in `block in activate_bin_path'
	from /opt/homebrew/lib/ruby/site_ruby/3.3.0/rubygems.rb:279:in `synchronize'
	from /opt/homebrew/lib/ruby/site_ruby/3.3.0/rubygems.rb:279:in `activate_bin_path'
	from /opt/homebrew/opt/ruby/bin/fastlane:25:in `<main>'

Now, a command gem uninstall fastlane && gem install fastlane fixes this. We can see that fastlane env prints out same set (not gonna paste it again), but a command gem list googleauth gives updated list, with addition 1.8.1:

*** LOCAL GEMS ***
googleauth (1.11.0, 1.8.1)

I am not that expert level that I could proposal fixes, but maybe either lock the gem package googleauth 1.8.1 so cleanup wouldn't remove it as a needed package or then upgrade fastlane to support the latest version of googleauth?

from fastlane.

lacostej avatar lacostej commented on April 29, 2024

google-cloud-env is locked to a version pre-2.0 to support ruby 2.6. We are not able to drop support for ruby 2.6 now due to Apple being stuck with it on its ecosystem. See #21685

This isn't really an issue in itself. The issue is that you are doing things in a way that isn't compatible with keeping different set of dependencies for different project on your machine.

You should really stop managing all your dependencies in one place. Using cleanup in combination to your setup will keep causing issues.

I recommend that you

  • use bundler to manage your dependencies per project. Maintain a Gemfile.
  • consider installing your dependencies in a folder local to your project. bundle config set --local path '.bundle' or bundle config set --local path 'vendor/bundle. Cleanup is thus local to your project.
  • always run bundle install before running bundle exec fastlane to make sure your dependencies are up to date.

I'll close this for now, as this isn't really an issue on fastlane side. Hope that helped. Feel free to reopen if you have more question on the topic.

from fastlane.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.