Update and detailed answer Feb 4, 2022.
For the purposes of the Plutus Pioneer Program, the checkout information can be found in the weekly cabal.project file, located (for Week04, as an example, and on my system) at
I have developed a system using aliases that load when I enter my shell (using a text file sourced from within .zshrc) and my nix-shell (same file, but sourced from .bashrc which is what nix uses). Among those aliases are:~/plutus/plutus-pioneer-program/code/week04/cabal.project
alias pp='cd ~/plutus/plutus; ls -laFh; pwd' alias ppa='cd ~/plutus/plutus-apps; ls -laFh; pwd' alias ppp='cd ~/plutus/plutus-pioneer-program; ls -laFh; pwd' alias pppw4='cd ~/plutus/plutus-pioneer-program/code/week04; ls -laFh; pwd'
So now my sequence is
pp git pull ppp git pull ppa git pull pppw4 cat cabal.project
The "git pull" following the "ppp" is what brings in the weekly lesson/project files.
I then look within cabal.project for the following section (the key portion is directly under "plutus-apps.git") Be careful because there are numerous other tags in that file.
package cardano-wallet-core-integration optimization: False source-repository-package type: git location: https://github.com/input-output-hk/plutus-apps.git tag:ea1bfc6a49ee731c67ada3bfb326ee798001701a subdir: freer-extras playground-common plutus-chain-index-core plutus-contract plutus-ledger plutus-ledger-constraints quickcheck-dynamic -- Direct dependency. -- Are you thinking of updating this tag to some other commit?
I then use this info to add an alias to my aliases file.
That way I can easily do the git checkout in the future withalias pppcheckoutw4='cd ~/plutus/plutus-apps; git checkout ea1bfc6a49ee731c67ada3bfb326ee798001701a'
and then enter the nix shell (always from within the Plutus-apps directory!) Once in the nix shell I do "$ pppw4" (or whichever week it is) and then "$ cabal update" and then "$ cabal repl" and I am ready to work.pppcheckoutw4
So now I have an efficient and organized system for doing my "git pull"s and "git checkout" before diving into my nix shell and then my cabal repl. May you find your way as pleasant.
=========== Original Question ===========
When setting up plutus-playground, I have seen comments and at least one other source that advised running
git checkout 3746610e53654a1167aeb4c6294c6096d16b0502inside the plutus-apps directory, prior to running
git checkout 7f53f18dfc788bf6aa929f47d840efa1247e11fd
[$] nix-build -A plutus-playground.clientThis seemed to be the key for me to successfully build and run the playground, yet it is not in the canonical instructions and I have no idea how I could have deduced this on my own. Where does that line(code) come from (I assume github, but where?) and should it be included in the canonical instructions? How is it different from "git commit"? Does it have anything to do with the similar codes in the cabal.project files in plutus and plutus-apps? Still learning, explanation appreciated!
[$] nix-build -A plutus-playground.server