Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable nightly uploads to PyPI #1757

Merged
merged 13 commits into from
Jun 30, 2020
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 21 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,5 +75,25 @@ jobs:
file: ./coverage.xml
yml: ./codecov.yml
# Disabled this line because Codecov has been extra flaky lately, and having to re-run the entire
# test suite until every coverage upload step succeeds is more of a hassle than it's worth.
# test suite until every coverage upload step succeeds is more of a hassle than it's worth.
# fail_ci_if_error: true
upload:
runs-on: ubuntu-latest
if: github.event_name == 'schedule'
needs: tests
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.6
uses: actions/setup-python@v1
with:
python-version: 3.6
- name: Build Dist
run: |
python3 -m pip install wheel
python3 setup.py --dev_release sdist bdist_wheel
- name: Upload to PyPI
uses: pypa/gh-action-pypi-publish@v1
ekilmer marked this conversation as resolved.
Show resolved Hide resolved
with:
password: ${{ secrets.PYPI_UPLOAD }}


18 changes: 12 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Manticore
<p align="center">
<img src="docs/images/manticore.png?raw=true" width="256" title="Manticore">
<img src="https://raw.githubusercontent.com/trailofbits/manticore/master/docs/images/manticore.png" width="256" title="Manticore">
</p>
<br />

Expand Down Expand Up @@ -46,15 +46,21 @@ Option 2: Installing from PyPI, with extra dependencies needed to execute native
pip install "manticore[native]"
```

Option 3: Installing from the `master` branch:
Option 3: Installing a nightly development build (fill in the latest version from [the PyPI history](https://pypi.org/project/manticore/#history)):

```bash
pip install "manticore[native]==0.x.x.devYYMMDD"
```

Option 4: Installing from the `master` branch:

```bash
git clone https://github.com/trailofbits/manticore.git
cd manticore
pip install -e ".[native]"
```

Option 4: Install via Docker:
Option 5: Install via Docker:

```bash
docker pull trailofbits/manticore
Expand Down Expand Up @@ -216,9 +222,9 @@ for idx, val_list in enumerate(m.collect_returns()):
* We're still in the process of implementing full support for the EVM Istanbul instruction semantics, so certain opcodes may not be supported.
In a pinch, you can try compiling with Solidity 0.4.x to avoid generating those instructions.

## Using a different solverr (Z3, Yices, CVC4)
Manticore relies on an external solver supporting smtlib2. Curently Z3, Yices and CVC4 are supported and can be selected via commandline or configuration settings.
By default Manticore will use Z3. Once you installed a different solver you can choose a different solver like this:
## Using a different solver (Z3, Yices, CVC4)
Manticore relies on an external solver supporting smtlib2. Currently Z3, Yices and CVC4 are supported and can be selected via commandline or configuration settings.
By default Manticore will use Z3. Once you've installed a different solver, you can choose which one to use like this:
```manticore --smt.solver yices```
### Installing CVC4
For more details go to https://cvc4.github.io/. Otherwise just get the binary and use it.
Expand Down
13 changes: 11 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import os
import sys
from setuptools import setup, find_packages
from datetime import date

on_rtd = os.environ.get("READTHEDOCS") == "True"

Expand Down Expand Up @@ -41,14 +43,21 @@ def rtd_dependent_deps():
with open(os.path.join(this_directory, "README.md"), encoding="utf-8") as f:
long_description = f.read()


# https://stackoverflow.com/a/4792601 grumble grumble
dev_extension = ""
if "--dev_release" in sys.argv:
dev_extension = ".dev" + date.today().strftime("%y%m%d")
sys.argv.remove("--dev_release")

setup(
name="manticore",
description="Manticore is a symbolic execution tool for analysis of binaries and smart contracts.",
long_description=long_description,
long_description_content_type="text/markdown",
long_description=long_description,
url="https://github.com/trailofbits/manticore",
author="Trail of Bits",
version="0.3.4",
version="0.3.4" + dev_extension,
packages=find_packages(exclude=["tests", "tests.*"]),
python_requires=">=3.6",
install_requires=[
Expand Down