Skip to content

Commit 1fe83f7

Browse files
authored
Merge pull request hummingbot#7974 from hummingbot/staging
sync / Client staging -> master for Hummingbot version 2.12.0
2 parents 30e284c + 831c2c3 commit 1fe83f7

File tree

223 files changed

+12516
-1016
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

223 files changed

+12516
-1016
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
* @hummingbot/*
1+
* @hummingbot/*

.github/FUNDING.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
github: hummingbot
1+
github: hummingbot

.github/ISSUE_TEMPLATE/bounty_request.yml

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,11 @@ body:
2121
required: true
2222
- type: textarea
2323
id: bounty-info
24-
attributes:
24+
attributes:
2525
label: Bounty
2626
value: |
27-
- Sponsor:
28-
- Bounty amount:
29-
- Developer portion:
30-
validations:
27+
- Sponsor:
28+
- Bounty amount:
29+
- Developer portion:
30+
validations:
3131
required: true
32-
33-
34-

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ body:
77
attributes:
88
value: |
99
## **Before Submitting:**
10-
10+
1111
* Please edit the "Bug Report" to the title of the bug or issue
1212
* Please make sure to look on our GitHub issues to avoid duplicate tickets
1313
* You can add additional `Labels` to support this ticket (connectors, strategies, etc)
@@ -26,9 +26,9 @@ body:
2626
label: Steps to reproduce
2727
description: A concise description of the steps to reproduce the buggy behavior
2828
value: |
29-
1.
30-
2.
31-
3.
29+
1.
30+
2.
31+
3.
3232
validations:
3333
required: true
3434
- type: input
@@ -44,14 +44,14 @@ body:
4444
label: Type of installation
4545
description: What type of installation did you use?
4646
options:
47-
- Source
47+
- Source
4848
- Docker
4949
validations:
5050
required: true
5151
- type: textarea
5252
id: attachment
5353
attributes:
5454
label: Attach required files
55-
description: Please attach your config file and log file located on the "../hummingbot/logs/" folder. It would be difficult for us to help you without those!
55+
description: Please attach your config file and log file located on the "../hummingbot/logs/" folder. It would be difficult for us to help you without those!
5656
validations:
5757
required: false

.github/pull_request_template.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,3 @@
1313

1414

1515
**Tips for QA testing**:
16-

.github/workflows/docker_buildx_workflow.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
uses: docker/setup-buildx-action@v3.1.0
2525

2626
- name: Login to DockerHub
27-
uses: docker/login-action@v3
27+
uses: docker/login-action@v3
2828
with:
2929
username: ${{ secrets.DOCKERHUB_USERNAME }}
3030
password: ${{ secrets.DOCKERHUB_TOKEN }}
@@ -69,7 +69,7 @@ jobs:
6969

7070
- name: Extract tag name
7171
id: get_tag
72-
run: echo ::set-output name=VERSION::version-${GITHUB_REF#refs/tags/v}
72+
run: echo ::set-output name=VERSION::version-${GITHUB_REF#refs/tags/v}
7373

7474
- name: Build and push
7575
uses: docker/build-push-action@v5

MANIFEST.in

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
include pyproject.toml
2+
include setup.py
3+
include README.md
4+
include LICENSE
5+
6+
# Recursively include all Cython and C++ source files
7+
recursive-include hummingbot *.pyx *.pxd *.h *.cpp *.c
8+
9+
# Include any other data files you might need
10+
recursive-include hummingbot *.json *.yml

Makefile

Lines changed: 51 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
.ONESHELL:
2-
.PHONY: test
3-
.PHONY: run_coverage
4-
.PHONY: report_coverage
5-
.PHONY: development-diff-cover
6-
.PHONY: docker
7-
.PHONY: install
8-
.PHONY: uninstall
9-
.PHONY: clean
10-
.PHONY: build
11-
.PHONY: run-v2
2+
.PHONY: test run run_coverage report_coverage development-diff-cover uninstall build install setup deploy down
3+
4+
ifeq (, $(shell which conda))
5+
$(error "Conda is not found in PATH. Please install Conda or add it to your PATH.")
6+
endif
7+
8+
DYDX ?= 0
9+
ENV_FILE := setup/environment.yml
10+
ifeq ($(DYDX),1)
11+
ENV_FILE := setup/environment_dydx.yml
12+
endif
1213

1314
test:
1415
coverage run -m pytest \
@@ -32,23 +33,51 @@ development-diff-cover:
3233
coverage xml
3334
diff-cover --compare-branch=origin/development coverage.xml
3435

35-
docker:
36+
build:
3637
git clean -xdf && make clean && docker build -t hummingbot/hummingbot${TAG} -f Dockerfile .
3738

38-
clean:
39-
./clean
39+
40+
uninstall:
41+
conda env remove -n hummingbot -y
4042

4143
install:
42-
./install
44+
@mkdir -p logs
45+
@echo "Using env file: $(ENV_FILE)"
46+
@if conda env list | awk '{print $$1}' | grep -qx hummingbot; then \
47+
conda env update -n hummingbot -f "$(ENV_FILE)"; \
48+
else \
49+
conda env create -n hummingbot -f "$(ENV_FILE)"; \
50+
fi
51+
@if [ "$$(uname)" = "Darwin" ]; then \
52+
conda install -n hummingbot -y appnope; \
53+
fi
54+
@conda run -n hummingbot conda develop .
55+
@conda run -n hummingbot python -m pip install --no-deps -r setup/pip_packages.txt > logs/pip_install.log 2>&1
56+
@conda run -n hummingbot pre-commit install
57+
@if [ "$$(uname)" = "Linux" ] && command -v dpkg >/dev/null 2>&1; then \
58+
if ! dpkg -s build-essential >/dev/null 2>&1; then \
59+
echo "build-essential not found, installing..."; \
60+
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install -y build-essential; \
61+
fi; \
62+
fi
63+
@conda run -n hummingbot --no-capture-output python setup.py build_ext --inplace
4364

44-
uninstall:
45-
./uninstall
65+
run:
66+
conda run -n hummingbot --no-capture-output ./bin/hummingbot_quickstart.py $(ARGS)
4667

47-
build:
48-
./compile
68+
setup:
69+
@read -r -p "Include Gateway? [y/N] " ans; \
70+
if [ "$$ans" = "y" ] || [ "$$ans" = "Y" ]; then \
71+
echo "COMPOSE_PROFILES=gateway" > .compose.env; \
72+
echo "Gateway will be included."; \
73+
else \
74+
echo "COMPOSE_PROFILES=" > .compose.env; \
75+
echo "Gateway will NOT be included."; \
76+
fi
4977

50-
run-v2:
51-
./bin/hummingbot_quickstart.py -p a -f v2_with_controllers.py -c $(filter-out $@,$(MAKECMDGOALS))
78+
deploy:
79+
@set -a; . ./.compose.env 2>/dev/null || true; set +a; \
80+
docker compose up -d
5281

53-
%:
54-
@:
82+
down:
83+
docker compose --profile gateway down

README.md

Lines changed: 17 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ The Hummingbot codebase is free and publicly available under the Apache 2.0 open
2424

2525
The easiest way to get started with Hummingbot is using Docker:
2626

27-
* To install the web-based [Dashboard](https://github.com/hummingbot/dashboard), follow the instructions in the [Deploy](https://github.com/hummingbot/deploy) repo.
27+
* To install the Telegram Bot [Condor](https://github.com/hummingbot/condor), follow the instructions in the [Hummingbot Docs](https://hummingbot.org/condor/installation/) site.
2828

2929
* To install the CLI-based Hummingbot client, follow the instructions below.
3030

31-
Alternatively, if you are building new connectors/strategies or adding custom code, see the [Install from Source](https://hummingbot.org/installation/source/) section in the documentation.
31+
Alternatively, if you are building new connectors/strategies or adding custom code, see the [Install from Source](https://hummingbot.org/client/installation/#source-installation) section in the documentation.
3232

3333
### Install Hummingbot with Docker
3434

@@ -41,8 +41,9 @@ Clone the repo and use the provided `docker-compose.yml` file:
4141
git clone https://github.com/hummingbot/hummingbot.git
4242
cd hummingbot
4343

44-
# Launch Hummingbot
45-
docker compose up -d
44+
# Run Setup & Deploy
45+
make setup
46+
make deploy
4647

4748
# Attach to the running instance
4849
docker attach hummingbot
@@ -52,33 +53,23 @@ docker attach hummingbot
5253

5354
Gateway provides standardized connectors for interacting with automatic market maker (AMM) decentralized exchanges (DEXs) across different blockchain networks.
5455

55-
To run Hummingbot with Gateway, clone the repo and uncomment the Gateway service lines in `docker-compose.yml`:
56+
To run Hummingbot with Gateway, clone the repo and answer `y` when prompted after running `make setup`
5657

5758
```yaml
5859
# Clone the repository
5960
git clone https://github.com/hummingbot/hummingbot.git
6061
cd hummingbot
62+
```
63+
```bash
64+
make setup
6165

62-
# Uncomment the following lines in docker-compose.yml:
63-
gateway:
64-
restart: always
65-
container_name: gateway
66-
image: hummingbot/gateway:latest
67-
ports:
68-
- "15888:15888"
69-
volumes:
70-
- "./gateway-files/conf:/home/gateway/conf"
71-
- "./gateway-files/logs:/home/gateway/logs"
72-
- "./certs:/home/gateway/certs"
73-
environment:
74-
- GATEWAY_PASSPHRASE=admin
75-
- DEV=true
66+
# Answer `y` when prompted
67+
Include Gateway? [y/N]
7668
```
7769

7870
Then run:
7971
```bash
80-
# Launch Hummingbot
81-
docker compose up -d
72+
make deploy
8273

8374
# Attach to the running instance
8475
docker attach hummingbot
@@ -129,6 +120,7 @@ We are grateful for the following exchanges that support the development and mai
129120
|------|------|------|-------|----------|
130121
| [Binance](https://hummingbot.org/exchanges/binance/) | CLOB CEX | Spot, Perpetual | `binance`, `binance_perpetual` | [![Sign up for Binance using Hummingbot's referral link for a 10% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d10%25&color=orange)](https://accounts.binance.com/register?ref=CBWO4LU6) |
131122
| [BitMart](https://hummingbot.org/exchanges/bitmart/) | CLOB CEX | Spot, Perpetual | `bitmart`, `bitmart_perpetual` | [![Sign up for BitMart using Hummingbot's referral link!](https://img.shields.io/static/v1?label=Sponsor&message=Link&color=orange)](https://www.bitmart.com/invite/Hummingbot/en) |
123+
| [Bitget](https://hummingbot.org/exchanges/bitget/) | CLOB CEX | Spot, Perpetual | `bitget`, `bitget_perpetual` | [![Sign up for Bitget using Hummingbot's referral link!](https://img.shields.io/static/v1?label=Sponsor&message=Link&color=orange)](https://www.bitget.com/expressly?channelCode=v9cb&vipCode=26rr&languageType=0) |
132124
| [Derive](https://hummingbot.org/exchanges/derive/) | CLOB DEX | Spot, Perpetual | `derive`, `derive_perpetual` | [![Sign up for Derive using Hummingbot's referral link!](https://img.shields.io/static/v1?label=Sponsor&message=Link&color=orange)](https://www.derive.xyz/invite/7SA0V) |
133125
| [dYdX](https://hummingbot.org/exchanges/dydx/) | CLOB DEX | Perpetual | `dydx_v4_perpetual` | - |
134126
| [Gate.io](https://hummingbot.org/exchanges/gate-io/) | CLOB CEX | Spot, Perpetual | `gate_io`, `gate_io_perpetual` | [![Sign up for Gate.io using Hummingbot's referral link for a 20% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d20%25&color=orange)](https://www.gate.io/referral/invite/HBOTGATE_0_103) |
@@ -148,7 +140,6 @@ Currently, the master branch of Hummingbot also includes the following exchange
148140
| [AscendEx](https://hummingbot.org/exchanges/ascendex/) | CLOB CEX | Spot | `ascend_ex` | - |
149141
| [Balancer](https://hummingbot.org/exchanges/gateway/balancer/) | AMM DEX | AMM | `balancer` | - |
150142
| [BingX](https://hummingbot.org/exchanges/bing_x/) | CLOB CEX | Spot | `bing_x` | - |
151-
| [Bitget](https://hummingbot.org/exchanges/bitget-perpetual/) | CLOB CEX | Perpetual | `bitget_perpetual` | - |
152143
| [Bitrue](https://hummingbot.org/exchanges/bitrue/) | CLOB CEX | Spot | `bitrue` | - |
153144
| [Bitstamp](https://hummingbot.org/exchanges/bitstamp/) | CLOB CEX | Spot | `bitstamp` | - |
154145
| [BTC Markets](https://hummingbot.org/exchanges/btc-markets/) | CLOB CEX | Spot | `btc_markets` | - |
@@ -172,8 +163,9 @@ Currently, the master branch of Hummingbot also includes the following exchange
172163

173164
## Other Hummingbot Repos
174165

175-
* [Deploy](https://github.com/hummingbot/deploy): Deploy Hummingbot in various configurations with Docker
176-
* [Dashboard](https://github.com/hummingbot/dashboard): Web app that helps you create, backtest, deploy, and manage Hummingbot instances
166+
* [Condor](https://github.com/hummingbot/condor): Telegram Interface for Hummingbot
167+
* [Hummingbot API](https://github.com/hummingbot/hummingbot-api): The central hub for running Hummingbot trading bots
168+
* [Hummingbot MCP](https://github.com/hummingbot/mcp): Enables AI assistants like Claude and Gemini to interact with Hummingbot for automated cryptocurrency trading across multiple exchanges.
177169
* [Quants Lab](https://github.com/hummingbot/quants-lab): Jupyter notebooks that enable you to fetch data and perform research using Hummingbot
178170
* [Gateway](https://github.com/hummingbot/gateway): Typescript based API client for DEX connectors
179171
* [Hummingbot Site](https://github.com/hummingbot/hummingbot-site): Official documentation for Hummingbot - we welcome contributions here too!
@@ -184,7 +176,7 @@ The Hummingbot architecture features modular components that can be maintained a
184176

185177
We welcome contributions from the community! Please review these [guidelines](./CONTRIBUTING.md) before submitting a pull request.
186178

187-
To have your exchange connector or other pull request merged into the codebase, please submit a New Connector Proposal or Pull Request Proposal, following these [guidelines](https://hummingbot.org/governance/proposals/). Note that you will need some amount of [HBOT tokens](https://etherscan.io/token/0xe5097d9baeafb89f9bcb78c9290d545db5f9e9cb) in your Ethereum wallet to submit a proposal.
179+
To have your exchange connector or other pull request merged into the codebase, please submit a New Connector Proposal or Pull Request Proposal, following these [guidelines](https://hummingbot.org/about/proposals/). Note that you will need some amount of [HBOT tokens](https://etherscan.io/token/0xe5097d9baeafb89f9bcb78c9290d545db5f9e9cb) in your Ethereum wallet to submit a proposal.
188180

189181
## Legal
190182

bin/.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
dev.py
1+
dev.py

0 commit comments

Comments
 (0)