Are the instructions for building the standalone distribution officially documented somewhere? Do I understand correctly that this can't be done from the tarballs on Hackage, and requires checking out the full source tree? Can stack
still be used, or does this only work with cabal
?
Related thread: standalone tarballs for specific versions.
I've added some docs to the page about how to build it.
BUILDER=stack will build it with stack.
Right, the hackage tarball is only useful for cabal, it would not be practical to include everything else in it. Arguably there's small enough value in publishing it there that I ought to just drop it.
I don't release other tarballs, but it is possible to get a stable tarball from git, eg https://git.joeyh.name/index.cgi/git-annex.git/snapshot/git-annex-8.20200720.1.tar.gz
I had no idea git-annex was on a conda channel even though it is clearly stated on the install page.
I just installed it with
conda install git-annex -c conda-forge
and, to my amazement, instead ofv8.20200226
(which was available on my focal fossa standard apt repos) being installed,v8.20200810-g693f2093a
was installed.It was so easy to install and it is a version that was built just yesterday. I loved it.
Please keep the plumbing that made this possible alive.
@cardoso-neto "v8.20200810-g693f2093a was installed" -- for the purpose of checking that the conda-forge installation worked correctly, can you tell me which exact package got installed, i.e. what is output by running
conda list --explicit | grep git-annex
? Thanks!
This was the tarball conda used:
https://conda.anaconda.org/conda-forge/linux-64/git-annex-8.20200810-nodep_h1234567_0.tar.bz2
I noticed you updated the (/install/conda)[https://git-annex.branchable.com/install/conda/] with possible package conflict tips.
The only dependency that was installed when I conda-installed git-annex was this:
python_abi conda-forge/linux-64::python_abi-3.8-1_cp38
Which struck me as odd, because I'm running python 3.8.5, not 3.8.1. Maybe they just have perfectly compatible ABIs, or maybe it's related to the problem you mentioned. I don't know.
If there's any other test you want me to run, no problem.
What happens if you request the installation of the standard package with
conda install -c conda-forge git-annex=*=alldep*
?
After running the command you request this was the package plan conda came up with:
As a user, there were no noticeable differences.
After running
git annex version
on this env, I noticed I got slightly older dependencies compared to the normal installation (conda install -c conda-forge git-annex
).If the dependencies were as up-to-date as the normal installation, I think I'd actually prefer this method, since it keeps things more contained and independent.
I am always inclined to "contain" my dependencies inside separate environments, so I want to do what you recommended and use
git-annex=*=alldep*
. But when I install it, I get outdated versions of really important programs (although only slightly outdated).I also got some downgrades of stuff that was already inside the env:
Some googling later and I found this github/conda-forge/git-annex-feedstock/.ci_support/linux_64_nodepFalse.yaml, which does have
perl: - 5.26.2
hard-coded. However I also found the README saying that file was auto-generated based on this one feedstock/recipe/meta.yaml, which furthers the mystery as thismeta.yaml
does not have any specified version forperl
and git only has a minimum version (git >=2.22
). So it seemsconda
is grabbing older (than the most recent) versions, because those are the latest it has.git 2.28.0
is available onconda-forge
, though. So I'm using that now. And sinceconda-forge
is overall more up-to-date...This is how I decided to create my env:
conda create --name main --channel conda-forge python=3.8 git=2.28 git-annex=*=alldep*
Still no idea on how to update the outdated dependencies I stated on my previous post, though. They (cryptonite, feed, ghc, and persistent-sqlite) aren't even mentioned in the
git-annex-feedstock
repo.conda list --explicit
in it?) I'd like to better understand whyconda install
prefers the standalone package so often. I'll ask conda gurus, but first need a reproducible case where that happens seemingly unnecessarily.I checked my .bash_history and it was
conda create -n $myname python=3.8
the command used.I just reran that and got the same result when I installed git-annex with
conda install -c conda-forge git-annex
.I also noticed you made the standalone dist warning message much prettier. Thanks for that. However, you forgot the
--channel
argument in your suggested install script. Here is a copypasta of your current message:Thanks for point out the channel omission in the message.
I was able to reproduce the issue, but only with
conda create --override-channels -c defaults -n new-test-env-03 python=3.8
. When I instead create the initial environment with-c conda-forge
, the issue doesn't recur. I guess it makes sense: packages in conda-forge are pinned to be more compatible with each other, but not necessarily with packages indefaults
.