Introduction
This is a quick introduction to the main concepts of Taqueria. If you are looking to get started with Taqueria right away with a hands on approach, you can jump to the quickstart guide
Taqueria is here to help make developing on Tezos easier. Taqueria supercharges your projects with a powerful and centralized configuration and access to top Tezos development tools through tasks that you run from the command line
Some of the things Taqueria can do for you include:
- Compiling smart contracts using the LIGO, SmartPy, or Archetype plugins
- Running a local sandbox with the Flextesa plugin
- Originating a smart contract to a sandbox and testnet with the Taquito plugin
- Generating TypeScript types from a Michelson contract with the Contract Types plugin
- Typechecking Michelson contracts and simulating contract calls with the Octez Client plugin
- Testing dapps and smart contracts with the Jest plugin
- Publishing metadata and media files to IPFS with the IPFS Pinata plugin
What is Taqueria?
Taqueria is an extensible, open source plugin based framework and task runner for Tezos development
In more practical terms, Taqueria is a task runner that you can use from the command line or via VS Code to quickly accomplish things like starting a sandbox or originating a contract. Taqueria comes with a few basic tasks, but relies on plugins to add tasks that provide complex and domain specific functionality
Taqueria has a few major components:
- A command line interface (CLI) you use in your terminal through a command named
taq
- A library of plugins that add tasks to Taqueria to do cool and useful things like compiling and originating smart contracts, and type generation
- A VS Code Extension which provides the ability to run Taqueria tasks from the command palette or the UI
- A GitHub action so Taqueria can be used in your CI/CD workflows
Basic Components
Taqueria CLI
The CLI is the main user interface for Taqueria which provides a command taq
through which you can initialize a project, install/uninstall plugins, and run tasks
Basic usage of the Taqueria CLI involves running a command following the pattern
taq [taskName] [options]
Taqueria uses the following conventions for displaying command structure:
- Square brackets
[value]
are used to indicate optional arguments - Angle brackets
<value>
are used to indicate required arguments
You can see what tasks are available to run in any given context by running taq
from the command line
Taqueria Project
A Taqueria project is one that has been initialized by Taqueria using the taq init
command. It will have the following directory structure created:
artifacts
: This is where Taqueria will store artifacts that it creates during the course of its executioncontracts
: This is where Taqueria will store smart contracts that it compiles.taq
: This is where Taqueria will store its configuration
Configuration for Taqueria projects including accounts, networks, and sandboxes is done in .taq/config.json
Taqueria Plugins
Taqueria plugins add functionality to Taqueria by adding tasks to Taqueria. Plugins are managed right in Taqueria using the taq install [pluginName]
and taq uninstall [pluginName]
commands
Taqueria plugins are installed on a per-project basis which allows you to customize the combination of technologies used and tasks avalable on a project. This means that the tasks available to run in each project will differ based on the plugins installed
Currently available plugins include:
- LIGO Compiler
- SmartPy Compiler
- Archetype Compiler
- Flextesa Sandbox
- Taquito
- Contract Types Generator
- Octez Client
- Jest Test Runner
- Metadata
- IPFS Pinata
Taqueria SDK
Taqueria has a Node.js SDK which is used by plugins to interact with the Taqueria protocol
Most developers won't ever interact with the SDK directly unless they are developing a plugin