Skip to content

Commit ee26183

Browse files
committed
Release v0.3.5
1 parent d0568f8 commit ee26183

157 files changed

Lines changed: 16277 additions & 1 deletion

File tree

Some content is hidden

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

.dockerignore

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
.venv/
2+
.idea/
3+
.ipynb_checkpoints/
4+
__pycache__/
5+
*.pyc
6+
7+
_logs/
8+
9+
10+
.gitlab
11+
12+
___*/
13+
___*
14+
15+
# Include the .gitignore file
16+
!.git

.env_example

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Bare minimum configuration for OpenAI support
2+
OPENAI_API_KEY=sk-proj-qwertya
3+
OPENAI_ORGANIZATION=org-qwertya
4+
5+
6+
# For AWS Bedrock support
7+
# AWS_ACCESS_KEY_ID="QWERTYA"
8+
# AWS_SECRET_ACCESS_KEY="qwertya"
9+
# AWS_DEFAULT_REGION="eu-central-1"
10+
11+
12+
# For langsmith logging support
13+
# LANGSMITH_ENDPOINT="https://api.smith.langchain.com"
14+
# LANGSMITH_PROJECT="deep_next"
15+
# LANGSMITH_API_KEY="lsv2_pt_qwertya_qwertya"
16+
# LANGSMITH_TRACING_V2=true

.flake8

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[flake8]
2+
ignore = E203, W503

.github/workflows/ci.yml

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
6+
jobs:
7+
lint:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@v3
11+
12+
- name: Set up Python
13+
uses: actions/setup-python@v4
14+
with:
15+
python-version: 3.11
16+
17+
- uses: actions/cache@v3
18+
with:
19+
path: .venv
20+
key: shared-venv
21+
22+
- name: Install Poetry
23+
run: |
24+
curl -sSL https://install.python-poetry.org | POETRY_VERSION=1.8.2 python3 -
25+
echo "$HOME/.local/bin" >> $GITHUB_PATH
26+
export PATH="$HOME/.local/bin:$PATH"
27+
poetry --version
28+
29+
- run: make install_venv
30+
- run: make lint
31+
32+
unit-tests:
33+
runs-on: ubuntu-latest
34+
needs: lint
35+
steps:
36+
- uses: actions/checkout@v3
37+
- uses: actions/setup-python@v4
38+
with:
39+
python-version: 3.11
40+
- uses: actions/cache@v3
41+
with:
42+
path: .venv
43+
key: shared-venv
44+
45+
- name: Install Poetry
46+
run: |
47+
curl -sSL https://install.python-poetry.org | POETRY_VERSION=1.8.2 python3 -
48+
echo "$HOME/.local/bin" >> $GITHUB_PATH
49+
export PATH="$HOME/.local/bin:$PATH"
50+
51+
- name: Setup git
52+
run: |
53+
apt-get update && apt-get install -y --no-install-recommends make git
54+
git config --global user.name "DeepNext CI/CD Pipeline"
55+
git config --global user.email "deepnext.cicd.pipeline@example.com"
56+
57+
- run: make install_venv
58+
- run: make test_unit
59+
60+
# - name: Run LLM tests
61+
# if: github.actor == 'stxpatryk'
62+
# run: poetry run pytest libs/core -m llm
63+
# env:
64+
# OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
65+
# OPENAI_ORGANIZATION: ${{ secrets.OPENAI_ORGANIZATION }}

.gitignore

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
.venv/
2+
.idea/
3+
.ipynb_checkpoints/
4+
__pycache__/
5+
*.pyc
6+
*.egg-info
7+
.vscode
8+
.env
9+
10+
# SWE-Bench
11+
logs/
12+
13+
# Custom prefix to ignore
14+
___*
15+
16+
.cache/

.pre-commit-config.yaml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
repos:
2+
- repo: https://github.com/pre-commit/pre-commit-hooks
3+
rev: v2.3.0
4+
hooks:
5+
- id: check-yaml
6+
- id: end-of-file-fixer
7+
- id: trailing-whitespace
8+
9+
- repo: https://github.com/psf/black
10+
rev: 22.10.0
11+
hooks:
12+
- id: black
13+
language_version: python3.11
14+
args: ['--line-length=88']
15+
16+
- repo: https://github.com/PyCQA/isort
17+
rev: 5.13.2
18+
hooks:
19+
- id: isort
20+
args: ["--profile", "black"]
21+
22+
- repo: https://github.com/PyCQA/flake8
23+
rev: 7.0.0
24+
hooks:
25+
- id: flake8
26+
args: ['--max-line-length=88']
27+
28+
- repo: https://github.com/PyCQA/pydocstyle
29+
rev: 6.3.0
30+
hooks:
31+
- id: pydocstyle
32+
args: ['--select=D200,D201,D202,D205,D209,D210,D300,D403']

CODEOWNERS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Reach me out: patryk.laskowski@stxnext.pl
2+
* @stxpatryk

Makefile

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
SHELL := /bin/bash
2+
3+
include apps/app/Makefile
4+
5+
.PHONY: install_venv
6+
install_venv:
7+
python3.11 -m pip install -U pip && \
8+
poetry -V | grep "Poetry (version 1.8.2)" || (echo "Error: Poetry is not version 1.8.2. Aborting!" && exit 1) && \
9+
poetry env use python3.11 && \
10+
poetry install --all-extras && \
11+
poetry run pre-commit install
12+
13+
.PHONY: lint
14+
lint:
15+
poetry run pre-commit run --all-files
16+
17+
.PHONY: test_app
18+
test_app:
19+
poetry run pytest apps/app
20+
21+
.PHONY: test_core_llm
22+
test_core_llm:
23+
poetry run pytest libs/core -m "llm"
24+
25+
.PHONY: test_core_unit
26+
test_core_unit:
27+
poetry run pytest libs/core -m "not llm"
28+
29+
.PHONY: test_core
30+
test_core: test_core_unit test_core_llm
31+
32+
.PHONY: test_connectors
33+
test_connectors:
34+
poetry run pytest libs/connectors
35+
36+
.PHONY: test_common
37+
test_common:
38+
poetry run pytest libs/common
39+
40+
.PHONY: test_unit
41+
test_unit: \
42+
test_core_unit \
43+
test_connectors \
44+
test_common \
45+
test_app
46+
47+
clean:
48+
find . -type d -name "__pycache__" -exec rm -rf {} +
49+
find . -type d -name ".pytest_cache" -exec rm -rf {} +
50+
find . -type f -name "*.pyc" -delete

README.md

Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,67 @@
1-
# deep-next
1+
# DeepNext
2+
3+
Your AI-powered junior software engineering assistant that takes an issue description and converts it into a pull request.
4+
5+
DeepNext is an advanced AI system that automatically analyzes a code repository, prepares a solution plan, and implements the necessary code for software engineering tasks using Large Language Models, saving developers hours of repetitive work.
6+
7+
See [documentation](stxnext.github.io/deep-next) for more information.
8+
9+
## Quick start
10+
11+
### Installation
12+
13+
```bash
14+
# Clone the repository
15+
git clone git@github.com:stxnext/deep-next.git
16+
cd deep-next
17+
18+
# Install dependencies
19+
make install_venv
20+
21+
# Test the installation
22+
make test_unit
23+
```
24+
25+
### Example usage
26+
27+
```bash
28+
# Process a single issue
29+
poetry run python -m deep_next.core.entrypoint \
30+
--problem-statement "Add type hints in file.py" \
31+
--hints "The error occurs in file.py" \
32+
--root-dir /path/to/repository
33+
```
34+
35+
## GitHub/GitLab integration
36+
37+
Running as a service to automatically process issues:
38+
39+
[See integration details](https://stxnext.github.io/deep-next/integration.html)
40+
41+
## Configuration
42+
43+
DeepNext supports multiple LLM providers:
44+
- OpenAI
45+
- AWS Bedrock (Claude, Mistral, and others)
46+
47+
Create an `llm-config.yaml` file based on the example provided to configure model preferences for each pipeline stage.
48+
49+
For tracking and metrics, DeepNext integrates with LangSmith. Set up your credentials in the `.env` file.
50+
51+
[See configuration details](https://stxnext.github.io/deep-next/configuration.html)
52+
53+
## Roadmap
54+
55+
- **May 2025**: First public release
56+
- Future enhancements:
57+
- Improved code generation accuracy
58+
- Support for more programming languages
59+
60+
## Why choose DeepNext?
61+
62+
- **End-to-End Automation**: Complete pipeline from issue to merge request
63+
- **Multiple LLM Support**: Works with various models to fit your needs
64+
- **Flexible Integration**: Compatible with GitHub, GitLab and AWS
65+
- **Customizable**: Configure different models for different pipeline stages
66+
- **Modular**: Easy to modify, test, and improve by swapping small pieces of code
67+
- **Open Source**: MIT-licensed and community-driven

apps/app/Dockerfile

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
FROM python:3.11-slim
2+
3+
RUN \
4+
apt-get update && \
5+
apt-get install -y --no-install-recommends \
6+
make \
7+
curl \
8+
openssh-client \
9+
git \
10+
ca-certificates
11+
12+
RUN \
13+
git config --global user.email "deepnext@stxnext.pl" && \
14+
git config --global user.name "DeepNext"
15+
16+
WORKDIR /deep-next
17+
18+
# Add local bin to PATH for poetry use
19+
RUN curl -sSL https://install.python-poetry.org | POETRY_VERSION=1.8.2 python3 -
20+
ENV PATH="/root/.local/bin:$PATH"
21+
22+
ARG DOT_ENV_CONTENT
23+
RUN echo "$DOT_ENV_CONTENT" > /deep-next/.env
24+
25+
COPY ../.. /deep-next
26+
27+
RUN make install_venv
28+
29+
CMD ["make", "app_run"]

0 commit comments

Comments
 (0)