Install any alpha, beta, rc version of a package. - composer-php

How can I install alpha, beta, rc channels of a package without bounding to a specific version?
Suppose I have a package which current version is 0.5.4 and there is an ongoing developing version which isn't current. The versions follow as:
1.0.0-alpha1, 1.0.0-alpha.2, 1.0.0-beta.3, 1.0.0-beta.2, 1.0.0-rc.1, 1.0.0-rc.2.
How can I specify versions for these 2 scenraios:
1- Installing any 1.0.0 packages updaing on alpha, beta, rc upgrades.
Am I correct assuming speciying version 1.0.x#dev
2- Installing any 1.x packages while installing intermediate alpha, beta packages.
Would this format suffice ^1.0.0#dev?

Related

How to use a specific older version of Ruby on Azure DevOps Pipeline?

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/

Error NU1107 Version conflict detected for Xamarin.AndroidX.Lifecycle.LiveData

I get the following error:
Error NU1107 Version conflict detected for Xamarin.AndroidX.Lifecycle.LiveData.
Install/reference Xamarin.AndroidX.Lifecycle.LiveData 2.4.1.1 directly to project MyProject.Android to resolve this issue.
MyProject.Android -> Xamarin.GooglePlayServices.Ads 121.2.0 -> Xamarin.GooglePlayServices.Ads.Lite 121.2.0 ->
Xamarin.AndroidX.Work.Runtime 2.7.1.3 ->
Xamarin.AndroidX.Lifecycle.LiveData (>= 2.4.1.1)
MyProject.Android -> Xamarin.Forms 5.0.0.2515 -> Xamarin.AndroidX.Lifecycle.LiveData (>= 2.3.1.1 && < 2.4.0).
Which packages should I upgrade or downgrade in order to achieve compatibility?
I have created a new project to test the packages you mentioned. And I found two solutions:
Just use the following package in your project's android part:
Xamarin.AndroidX.Browser version 1.4.0.1
Xamarin.AndroidX.Lifecycle.LiveData version 2.4.1.1
Xamarin.GooglePlayServices.Ads version 121.2.0
Xamarin.Forms version 5.0.0.2515
This solution just adds the reference to the project's android part according to the error messages. And the project will build successfully even though there are still some warnings about the package.
The second solution:
use the Xamarin.Forms version 5.0.0.2545
and the Xamarin.GooglePlayServices.Ads version 120.4.0
The Xamarin.GooglePlayServices.Ads version 120.4.0 is the newest version which is compatible with the Xamarin.AndroidX.Browser (>= 1.3.0.6 && < 1.4.0). If you use the two packages above, there will not be any warnings or errors about the reference.
If you can, you should upgrade to Xamarin.Forms 5.0.0.2545. It allows for LiveData to be high enough. It's a minor upgrade for XF, so it shouldn't cause you any issues to upgrade.
If for whatever reason you can't upgrade Xamarin Forms, you'll need to downgrade GooglePlayServices.Ads to a version that allows for the lower Work.Runtime version which in turn allows for the lower LiveData version.

Is it possible to do a pre-release a formula for homebrew?

I want to pre-release a formula to homebrew so that even the new version is released as part of pre-release when user installs brew install package we should get the non pre-release package.
For example I have a package test-pre-release and versions are
x.y.z+1-rc -> latest pre-release
x.y.z -> previous
and when user wants to install brew install test-pre-release it should get the non pre-release versio i.e., x.y.z. Is it possible to do that in brew?
Thanks in advance.
Similar to what I answered in here, you can create duplicate your current formula.rb as formula-rc.rb and Then rename class Formula into class FormulaRc, and commit the changes to do the pre-release testing.

Install Julia from Anaconda or as part of JuliaPro

I want to install Julia 1.0.
I have Anaconda installed.
Information found:
In https://anaconda.org/conda-forge/julia, I see at the top of the page conda-forge / packages / julia 1.0.0. Therefore they have the latest version, released on August 8th. Below, one reads: Home: http://julialang.org/. Below the title "Installers", one reads linux-64 and osx-64. (No Windows version is mentioned). To install this package with conda run: conda install -c conda-forge julia. I am a Windows user, so I cannot install Julia 1.0 from Anaconda yet.
JuliaPro can be intalled for free from https://juliacomputing.com/products/juliapro.html.
Question:
For when they become available, what are the relative advantages of the following procedures?: (1) Install JuliaPro independently of Anaconda or (2) Install Julia 1.0 from Anaconda.
At the moment, your best bet is to download the official binary from https://julialang.org/downloads/. As far as I'm aware, the Anaconda version is more or less the same (i.e. it doesn't bundle any packages or IDE). Julia itself doesn't make use of Anaconda (it has its own package manager), so there is no real benefit to installing via Anaconda.
The new JuliaPro should be available in a few weeks, and will include a bundled IDE and pre-installed packages. Until then, you can manually install the Juno IDE yourself to work with the above build.

Composer tilde syntax (Next significant release)

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.

Resources