If you haven’t already studied Alonzo-testnet/README.md at main · input-output-hk/Alonzo-testnet · GitHub, you might find some answers there.
Regarding cabal.project, the Cardano and Plutus package dependencies are rather complex, so it is best to start with a copy of that file that is known to have compatible dependencies for generating Plutus that runs on cardano-node-1.29.0. If the additional packages that you’re using are all on Hackage, then you probably won’t need to edit cabal.project further, since the Hackage packages will resolve during cabal configure or cabal build. If the additional packages aren’t in Hackage, then you’ll need to add entries to cabal.project.
An idealized version of my typical workflow for a new Plutus project is:
- Run
cabal initand edit the.cabalfile for the project if needed. - Grab
cabal.projectfor the appropriate tag on thecardano-noderepository, and then add an entry to that forcardano-nodeitself. - Write the Haskell code.
- Add dependencies for any new
importstatements to the.cabalfiles. If those dependencies aren’t in Hackage, then also add them tocabal.project. - Build with
cabal build. - Run the executable directly or use
cabal runto compile and serialize the Plutus script. - Use
cardano-clito use the script ontestnet. - Iterate steps 3-7.
I say “idealized” because I’ll typically add the dependencies before writing any code so then my IDE (VIM+HLS+hlint+…) assists. Also, I generally use haskell.nix and nix-shell to create a releases and/or a development environment. I’ll also use off-chain Haskell instead of cardano-cli.