I'm using Android Studio 0.8.9 and I have a following line in my build.gradle:
compile group: 'com.nostra13.universalimageloader', name: 'universal-image-loader', version: '1.9.+'
What will be the actual version of the library used in this case? 1.9.0 or 1.9.3 (latest)?
I'm asking because I recently got a bug report in BugSense with a crash in UniversalImageLoader but the stacktrace is not relevant to the latest version (1.9.3)
The + means that it will use the latest version of the 1.9.X series, which according to Maven Central as of now: http://search.maven.org/#search%7Cga%7C1%7Ccom.nostra13.universalimageloader is 1.9.3.
With the version set up like this, if 1.10.0 were to be released, you wouldn't pick it up -- that + symbol is only a wildcard for the third part of the version number triplet. If you wanted to get the latest version regardless, you could use:
compile 'com.nostra13.universalimageloader:universalimageloader:+'
Note that we don't really recommend that you use the + syntax in version numbers for dependencies. For one, it will make a network request to see if there's a new version, which is a problem for a lot of developers trying to work offline. I believe it only checks once a day, but it can still be a problem. More importantly, it can cause your build to fail in unpredictable ways -- if a new version is released and it causes a compile error or bug, it can be mysterious why your build worked yesterday but started failing today.
Related
I have a project that needs to use Ruby with the exact version of 2.7.5.
I tired using Azure's UseRubyVersion#0 to install it:
- task: UseRubyVersion#0
inputs:
versionSpec: "2.7.5"
But this resulted in an error:
##[warning]Specifying an exact version is not recommended on Microsoft-Hosted agents. Patch versions of Ruby can be replaced by new ones on Hosted agents without notice, which will cause builds to fail unexpectedly. It is recommended to specify only major or major and minor version (Example: `2` or `2.4`)
##[error]Version spec 2.7.5 for architecture %s did not match any version in Agent.ToolsDirectory.
Available versions: /Users/runner/hostedtoolcache
2.7.7,3.0.5,3.1.3
As you can see, Azure only provides the latest patch of minor versions, so installing a specific version like 2.7.5 is not possible.
Is there an alternative way to install a specific version of Ruby in an Azure DevOps Pipeline?
You must at least bump to the latest patch version of 2.7 that is 2.7.7. 2.7.6 and 2.7.7 are bringing important security fixes, that's exactly why Azure does not allow old patch versions. You should take this seriously, this could cost your company to shutdown his activity.
More details:
https://www.ruby-lang.org/en/news/2022/04/12/ruby-2-7-6-released/
https://www.ruby-lang.org/en/news/2022/11/24/ruby-2-7-7-released/
tldr: Ruby is reporting an illegal instruction when I try to update my pod, maybe because I’m using two different versions of it.
I am not sure what my problem is, and I’ll happily add more information should it be helpful.
I got a new M1 Pro Mac and have been trying to get an XCode project (an iOS app) to work on it. It happily builds for my phone but fails to build for simulators. Based on this answer, I tried to update cocoapods and then the pods I’m using for my project (some of the Google Firebase pods). When I run pod update, I get the following result:
Update all pods
Updating local specs repositories
/Library/Ruby/Gems/2.6.0/gems/ethon-0.15.0/lib/ethon/curls/classes.rb:36: [BUG] Illegal instruction at 0x0000000100224000
ruby 2.6.8p205 (2021-07-07 revision 67951) [universal.arm64e-darwin21]
This is then followed by several hundred lines of reporting (saved here). It also saves a diagnostic report (here). I believe that both of these are red herrings, but I wanted to include them just in case.
My guess for what’s going wrong is that the library is 2.6.0, while ruby itself is version 2.6.8. Both of these are old, and they’re also different versions. I tried to update ruby, gem, and reinstalled cocoapods, but none of these changed these version numbers. Any help getting these versions updated would be appreciated.
My apologies for such an indirect question; if I were more sure what the problem was, I probably would have solved it.
If you are on an M1 chip, uninstall the cocoapods package through gem (sudo gem uninstall cocoapods) and reinstalling it with homebrew (brew install cocoapods), this fixed my problem.
I believe the issue was that my newly updated ruby versions weren’t being copied to my homebrew path. This command (from this answer) ended up solving it!
PATH=/usr/local/opt/ruby/bin:$PATH
GEMSDIR=$(gem environment gemdir)/bin
PATH=$GEMSDIR:$PATH
export PATH
I am using Hudson 3.1.0 version and sonar 3.7.4 version. SInce yesterday I am getting this weird error while doing sonar analysis:
This was working fine until yesterday. sonar-maven-plugin-3.3.0.603 version is used.Can somebody help here?
You are using a version of the SonaQube Scanner for Maven that is too recent (3.3.0.603). You should lock this version (in your POM) to an older version to make sure this keeps on working correctly.
As a side note, please consider upgrading to more recent software:
SonarQube 3.7.4 is 4 years old and no more supported (which means nobody will help you in case of trouble)
Hudson is kind-of dead - the best option for you is to move on Jenkins
I've installed amnah/yii2-user library from packagist via composer into my project. The project's composer.json relevant require section looks like:
"amnah/yii2-user": "~2.0"
To my understanding, this should install the latest version with a major version of "2". When I check the installed package via composer show amnah/yii2-user -v, I see the following version information:
versions : dev-master, 2.1.0-alpha4, 2.1.0-alpha3, 2.1.0-alpha2, 2.1.0alpha,
* 2.0.0-alpha2, 2.0.0-alpha, 1.0.0-beta
So 2.0.0-alpha2 is installed, the 2.1 versions are ignored. Isn't it supposed to work like
Another way of looking at it is that using ~ specifies a minimum
version, but allows the last digit specified to go up.
as the documentation states? I'd need the latest 2.x version installed. What am I missing?
If you need the latest 2.x version installed, you should use ~2.1 if "latest" means that at that time a version 2.1 is the most current version released.
But I wonder why you are getting the alpha version installed. Usually Composer defaults to only install stable versions, no release candidates (rc), beta, alpha nor dev versions. Did you add a setting for minimum-stability and/or preferred-stability?
So if you want alpha versions, you should require ~2.1#alpha.
And a word of caution: The project you are using does require yiisoft/yii2: * and yiisoft/yii2-authclient: * - asterisk meaning that ANY version is sufficient. Yii itself claims that the released 1.1 version is incompatible with the newer 2.0 series (which is not yet released), whatever that means.
Could someone walk me through the setup to run one version of XCode for iPad development - version 3.2.2 prerelease - and another version for iPhone/iPodTouch development - version 3.2.1
The reason I ask is because the pre-release version does not support building < 3.2 iPhone OS. Or if it does I haven't figured out the magic handshake to make that happen. If you know please pass it along. Cheers.
Thanks,
Doug
You can actually change the install location when installing the beta versions... make it something like /DeveloperBeta instead of /Developer, then you can choose which version of the dev tools to run.