Skip to content

Commit d60c7b0

Browse files
committed
docs: add detailed release guide (RELEASE.md)
1 parent 56490fb commit d60c7b0

1 file changed

Lines changed: 292 additions & 0 deletions

File tree

RELEASE.md

Lines changed: 292 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,292 @@
1+
# HackBot — Release Guide
2+
3+
Step-by-step instructions for creating a GitHub release for HackBot.
4+
5+
---
6+
7+
## Prerequisites
8+
9+
- **GitHub CLI** (`gh`) installed and authenticated
10+
- Push access to `yashab-cyber/hackbot`
11+
- All changes committed and pushed to `main`
12+
13+
```bash
14+
# Verify gh is authenticated
15+
gh auth status
16+
17+
# Verify you're on main with no uncommitted changes
18+
git status
19+
```
20+
21+
---
22+
23+
## Step 1: Update the Version Number
24+
25+
Edit the version in **two files**:
26+
27+
| File | Field |
28+
|------|-------|
29+
| `hackbot/__init__.py` | `__version__ = "X.Y.Z"` |
30+
| `pyproject.toml` | `version = "X.Y.Z"` |
31+
32+
**Versioning convention:** `MAJOR.MINOR.PATCH`
33+
- **MAJOR** — breaking changes (2.0.0)
34+
- **MINOR** — new features (1.1.0)
35+
- **PATCH** — bug fixes (1.0.1)
36+
37+
```bash
38+
# Example: bump to 1.1.0
39+
sed -i 's/__version__ = ".*"/__version__ = "1.1.0"/' hackbot/__init__.py
40+
sed -i 's/^version = ".*"/version = "1.1.0"/' pyproject.toml
41+
```
42+
43+
Commit the version bump:
44+
45+
```bash
46+
git add hackbot/__init__.py pyproject.toml
47+
git commit -m "chore: bump version to 1.1.0"
48+
git push origin main
49+
```
50+
51+
---
52+
53+
## Step 2: Create a Git Tag
54+
55+
```bash
56+
# Create an annotated tag
57+
git tag -a v1.1.0 -m "Release v1.1.0"
58+
59+
# Push the tag to GitHub
60+
git push origin v1.1.0
61+
```
62+
63+
---
64+
65+
## Step 3: Create the GitHub Release
66+
67+
### Option A: Using GitHub CLI (Recommended)
68+
69+
```bash
70+
gh release create v1.1.0 \
71+
--title "HackBot v1.1.0" \
72+
--notes "## What's New
73+
74+
- Feature 1 description
75+
- Feature 2 description
76+
77+
## Bug Fixes
78+
79+
- Fix 1 description
80+
81+
## Full Changelog
82+
https://github.com/yashab-cyber/hackbot/compare/v1.0.0...v1.1.0"
83+
```
84+
85+
### Option B: With Release Notes from a File
86+
87+
Create a temporary release notes file:
88+
89+
```bash
90+
cat > /tmp/release-notes.md << 'EOF'
91+
## What's New
92+
93+
- Added TinyLlama support for low-end PCs
94+
- Added xploiter/pentester cybersecurity model
95+
- Added Ollama & Local model usage guides
96+
- Added screenshots to README
97+
98+
## Bug Fixes
99+
100+
- Fixed screenshot labels in README
101+
102+
## Full Changelog
103+
https://github.com/yashab-cyber/hackbot/compare/v1.0.0...v1.1.0
104+
EOF
105+
106+
gh release create v1.1.0 \
107+
--title "HackBot v1.1.0" \
108+
--notes-file /tmp/release-notes.md
109+
```
110+
111+
### Option C: Auto-Generate Notes from Commits
112+
113+
```bash
114+
gh release create v1.1.0 \
115+
--title "HackBot v1.1.0" \
116+
--generate-notes
117+
```
118+
119+
This automatically generates release notes from commit messages and pull requests since the last release.
120+
121+
### Option D: Upload Artifacts with the Release
122+
123+
If you have build artifacts (wheels, archives, etc.):
124+
125+
```bash
126+
# Build the package first
127+
pip install build
128+
python -m build # creates dist/hackbot-1.1.0.tar.gz and .whl
129+
130+
# Create release with attachments
131+
gh release create v1.1.0 \
132+
--title "HackBot v1.1.0" \
133+
--generate-notes \
134+
dist/hackbot-1.1.0.tar.gz \
135+
dist/hackbot-1.1.0-py3-none-any.whl
136+
```
137+
138+
---
139+
140+
## Step 4: Verify the Release
141+
142+
```bash
143+
# List releases
144+
gh release list
145+
146+
# View the release
147+
gh release view v1.1.0
148+
149+
# Open in browser
150+
gh release view v1.1.0 --web
151+
```
152+
153+
---
154+
155+
## Quick One-Liner (All Steps Combined)
156+
157+
For a fast release after everything is committed and pushed:
158+
159+
```bash
160+
VERSION="1.1.0" && \
161+
sed -i "s/__version__ = \".*\"/__version__ = \"$VERSION\"/" hackbot/__init__.py && \
162+
sed -i "s/^version = \".*\"/version = \"$VERSION\"/" pyproject.toml && \
163+
git add -A && \
164+
git commit -m "chore: bump version to $VERSION" && \
165+
git push origin main && \
166+
git tag -a "v$VERSION" -m "Release v$VERSION" && \
167+
git push origin "v$VERSION" && \
168+
gh release create "v$VERSION" --title "HackBot v$VERSION" --generate-notes
169+
```
170+
171+
---
172+
173+
## Deleting a Release (If Needed)
174+
175+
```bash
176+
# Delete the release (keeps the tag)
177+
gh release delete v1.1.0 --yes
178+
179+
# Delete the tag too
180+
git tag -d v1.1.0
181+
git push --delete origin v1.1.0
182+
```
183+
184+
---
185+
186+
## Draft Releases (Review Before Publishing)
187+
188+
Create as draft, review on GitHub, then publish:
189+
190+
```bash
191+
gh release create v1.1.0 \
192+
--title "HackBot v1.1.0" \
193+
--generate-notes \
194+
--draft
195+
```
196+
197+
Then go to **GitHub → Releases → Edit → Publish**.
198+
199+
---
200+
201+
## Pre-release (Beta / RC)
202+
203+
```bash
204+
gh release create v2.0.0-beta.1 \
205+
--title "HackBot v2.0.0 Beta 1" \
206+
--generate-notes \
207+
--prerelease
208+
```
209+
210+
---
211+
212+
## Release Notes Template
213+
214+
Use this template when writing manual release notes:
215+
216+
```markdown
217+
## 🚀 What's New
218+
- **Feature Name** — Brief description (#PR)
219+
220+
## 🐛 Bug Fixes
221+
- Fixed description (#PR)
222+
223+
## 📖 Documentation
224+
- Updated docs for X
225+
226+
## ⚠️ Breaking Changes
227+
- Description of breaking change (if any)
228+
229+
## 📦 Installation
230+
\```bash
231+
pip install "hackbot @ git+https://github.com/yashab-cyber/hackbot.git"
232+
\```
233+
234+
## Full Changelog
235+
https://github.com/yashab-cyber/hackbot/compare/vOLD...vNEW
236+
```
237+
238+
---
239+
240+
## Creating Your First Release (v1.0.0)
241+
242+
Since HackBot doesn't have any releases yet, run this to create the initial release:
243+
244+
```bash
245+
cd /path/to/hackbot
246+
247+
# Tag the current state as v1.0.0
248+
git tag -a v1.0.0 -m "Release v1.0.0 — Initial production release"
249+
git push origin v1.0.0
250+
251+
# Create the GitHub release
252+
gh release create v1.0.0 \
253+
--title "HackBot v1.0.0 — Initial Release" \
254+
--notes "## 🎉 HackBot v1.0.0 — Initial Production Release
255+
256+
### Features
257+
- 🤖 **Agent Mode** — Autonomous penetration testing with real tools
258+
- 💬 **Chat Mode** — Interactive cybersecurity Q&A with memory
259+
- 📋 **Plan Mode** — 8 structured pentest plan templates
260+
- 🖥️ **Native Desktop GUI** — pywebview-powered dark theme interface
261+
- 🛡️ **CVE/Exploit Lookup** — Real-time NVD search + GitHub PoC discovery
262+
- 🌐 **OSINT Module** — Subdomains, DNS, WHOIS, tech stack, emails
263+
- 🗺️ **Network Topology** — Interactive D3.js network visualization
264+
- 📋 **Compliance Mapping** — PCI DSS, NIST 800-53, OWASP Top 10, ISO 27001
265+
- 🔀 **Diff Reports** — Compare assessments (new/fixed/persistent findings)
266+
- 🎯 **Multi-Target Campaigns** — Coordinated multi-host assessments
267+
- 🧩 **Custom Plugins** — Python plugin system for custom tools
268+
- 🔧 **AI Remediation** — Auto-generate fix commands and config patches
269+
- 🔌 **HTTP Proxy** — Intercepting proxy with traffic capture and replay
270+
- 🧠 **Memory & Sessions** — Auto-save, session history, conversation summarization
271+
- 🌍 **10 AI Providers** — OpenAI, Anthropic, Gemini, Groq, Mistral, DeepSeek, Together, OpenRouter, Ollama, Local
272+
- 🔧 **30+ Tool Integrations** — nmap, nikto, sqlmap, nuclei, ffuf, hydra, and more
273+
- 📊 **Reports** — HTML, Markdown, JSON, and professional PDF reports
274+
- 💻 **Cross-Platform** — Linux, macOS, Windows
275+
276+
### Installation
277+
\`\`\`bash
278+
pip install \"hackbot @ git+https://github.com/yashab-cyber/hackbot.git\"
279+
\`\`\`
280+
281+
### Local Models (No API Key)
282+
\`\`\`bash
283+
ollama pull xploiter/pentester
284+
hackbot --provider ollama --model xploiter/pentester
285+
\`\`\`
286+
"
287+
```
288+
289+
---
290+
291+
**Author:** Yashab Alam
292+
**Repository:** [github.com/yashab-cyber/hackbot](https://github.com/yashab-cyber/hackbot)

0 commit comments

Comments
 (0)