sapio-lang / sapio

A Bitcoin Programming Language
Mozilla Public License 2.0
244 stars 43 forks source link

Failed to install rust_miniscript #31

Closed pyskell closed 4 years ago

pyskell commented 4 years ago

make test fails after installing:

(sapio) ✔ ~/sapio [master {origin/master}|…1] 
11:30 $ make test
cd sapio_bitcoinlib && make test
make[1]: Entering directory '/home/me/sapio/sapio_bitcoinlib'
python3 -m unittest

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK
make[1]: Leaving directory '/home/me/sapio/sapio_bitcoinlib'
cd bitcoin_script_compiler && make test
make[1]: Entering directory '/home/me/sapio/bitcoin_script_compiler'
python3 -m unittest

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK
make[1]: Leaving directory '/home/me/sapio/bitcoin_script_compiler'
cd sapio_compiler && make test
make[1]: Entering directory '/home/me/sapio/sapio_compiler'
python3 -m unittest
E.
======================================================================
ERROR: sapio_compiler (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: sapio_compiler
Traceback (most recent call last):
  File "/home/me/.pyenv/versions/3.8.3/lib/python3.8/unittest/loader.py", line 470, in _find_test_path
    package = self._get_module_from_name(name)
  File "/home/me/.pyenv/versions/3.8.3/lib/python3.8/unittest/loader.py", line 377, in _get_module_from_name
    __import__(name)
  File "/home/me/sapio/sapio_compiler/sapio_compiler/__init__.py", line 1, in <module>
    from .exports import *
  File "/home/me/sapio/sapio_compiler/sapio_compiler/exports.py", line 5, in <module>
    from .contract import Contract
  File "/home/me/sapio/sapio_compiler/sapio_compiler/contract.py", line 7, in <module>
    from .core.bindable_contract import BindableContract
  File "/home/me/sapio/sapio_compiler/sapio_compiler/core/bindable_contract.py", line 24, in <module>
    from sapio_compiler.core.initializer import Initializer
  File "/home/me/sapio/sapio_compiler/sapio_compiler/core/initializer.py", line 26, in <module>
    import rust_miniscript
ModuleNotFoundError: No module named 'rust_miniscript'

----------------------------------------------------------------------
Ran 2 tests in 0.000s

FAILED (errors=1)
make[1]: *** [Makefile:6: test] Error 1
make[1]: Leaving directory '/home/me/sapio/sapio_compiler'
make: *** [Makefile:4: test] Error 2
(sapio) ✘-2 ~/sapio [master {origin/master}|…1] 

I believe this is because the install guide is missing rust_miniscript here:

for MODULE in sapio_bitcoinlib bitcoin_script_compiler sapio_compiler sapio_stdlib sapio_zoo sapio_server; do
      echo "Building ${MODULE}"
      cd $MODULE && make && python3 setup.py build && python3 setup.py install && cd ..
      echo
  done

However trying to do this manually for rust_miniscript also fails:

(sapio) ✔ ~/sapio/rust_miniscript [master {origin/master}|…1] 
11:32 $ make && python3 setup.py build && python3 setup.py install
pip3 install -r requirements.txt
Requirement already satisfied: setuptools-rust==0.10.6 in /home/me/.pyenv/versions/3.8.3/envs/sapio/lib/python3.8/site-packages (from -r requirements.txt (line 1)) (0.10.6)
Requirement already satisfied: cffi==1.14.0 in /home/me/.pyenv/versions/3.8.3/envs/sapio/lib/python3.8/site-packages (from -r requirements.txt (line 2)) (1.14.0)
Requirement already satisfied: toml>=0.9.0 in /home/me/.pyenv/versions/3.8.3/envs/sapio/lib/python3.8/site-packages (from setuptools-rust==0.10.6->-r requirements.txt (line 1)) (0.10.1)
Requirement already satisfied: semantic-version>=2.6.0 in /home/me/.pyenv/versions/3.8.3/envs/sapio/lib/python3.8/site-packages (from setuptools-rust==0.10.6->-r requirements.txt (line 1)) (2.8.5)
Requirement already satisfied: pycparser in /home/me/.pyenv/versions/3.8.3/envs/sapio/lib/python3.8/site-packages (from cffi==1.14.0->-r requirements.txt (line 2)) (2.20)
WARNING: You are using pip version 19.2.3, however version 20.2.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
running build
running build_py
running build_ext
running build_rust
error: manifest path `rust_miniscript/rust-miniscript/Cargo.toml` does not exist
Traceback (most recent call last):
  File "setup.py", line 11, in <module>
    setup(
  File "/home/me/.pyenv/versions/sapio/lib/python3.8/site-packages/setuptools/__init__.py", line 145, in setup
    return distutils.core.setup(**attrs)
  File "/home/me/.pyenv/versions/3.8.3/lib/python3.8/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/home/me/.pyenv/versions/3.8.3/lib/python3.8/distutils/dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "/home/me/.pyenv/versions/3.8.3/lib/python3.8/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "/home/me/.pyenv/versions/3.8.3/lib/python3.8/distutils/command/build.py", line 135, in run
    self.run_command(cmd_name)
  File "/home/me/.pyenv/versions/3.8.3/lib/python3.8/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/home/me/.pyenv/versions/3.8.3/lib/python3.8/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "/home/me/.pyenv/versions/sapio/lib/python3.8/site-packages/setuptools_rust/build_ext.py", line 26, in run
    build_rust.run()
  File "/home/me/.pyenv/versions/sapio/lib/python3.8/site-packages/setuptools_rust/build.py", line 313, in run
    self.build_extension(ext)
  File "/home/me/.pyenv/versions/sapio/lib/python3.8/site-packages/setuptools_rust/build.py", line 95, in build_extension
    metadata = json.loads(check_output(metadata_command).decode("utf-8"))
  File "/home/me/.pyenv/versions/3.8.3/lib/python3.8/subprocess.py", line 411, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/home/me/.pyenv/versions/3.8.3/lib/python3.8/subprocess.py", line 512, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['cargo', 'metadata', '--manifest-path', 'rust_miniscript/rust-miniscript/Cargo.toml', '--format-version', '1']' returned non-zero exit status 101.
pyskell commented 4 years ago

Just noticed rust_miniscript is a submodule. Will make a PR for the README.

Tests are now passing after git submodule update --init