FossilRepo
Add UI tour GIF and live instance links to README
Commit
6c1d3dd9b792a336bc9d60752b46b8834a91c1f44010680213c1cb84f3a21467
Parent
d365053adab86f4…
3 files changed
+4
+2
+4
| --- README.md | ||
| +++ README.md | ||
| @@ -1,10 +1,14 @@ | ||
| 1 | 1 | # Fossilrepo |
| 2 | 2 | |
| 3 | 3 | **Self-hosted Fossil forge with a modern web interface.** |
| 4 | + | |
| 5 | + | |
| 4 | 6 | |
| 5 | 7 | Fossilrepo wraps [Fossil SCM](https://fossil-scm.org) with a Django + HTMX management layer, replacing Fossil's built-in web UI with a GitHub/GitLab-caliber experience while preserving everything that makes Fossil unique: single-file repos, built-in wiki, tickets, forum, and technotes. |
| 8 | + | |
| 9 | +**Live instance:** [fossilrepo.io](https://fossilrepo.io) | **Docs:** [fossilrepo.dev](https://fossilrepo.dev) | **Powered by [BoilerWorks](https://boilerworks.ai)** | |
| 6 | 10 | |
| 7 | 11 | ## Why Fossilrepo? |
| 8 | 12 | |
| 9 | 13 | Fossil is the most underrated version control system. Every repository is a single SQLite file containing your code, wiki, tickets, forum, and technotes. No external services, no complex setup. But its web UI hasn't changed since 1998. |
| 10 | 14 | |
| 11 | 15 | |
| 12 | 16 | ADDED docs/fossilrepo-tour.gif |
| --- README.md | |
| +++ README.md | |
| @@ -1,10 +1,14 @@ | |
| 1 | # Fossilrepo |
| 2 | |
| 3 | **Self-hosted Fossil forge with a modern web interface.** |
| 4 | |
| 5 | Fossilrepo wraps [Fossil SCM](https://fossil-scm.org) with a Django + HTMX management layer, replacing Fossil's built-in web UI with a GitHub/GitLab-caliber experience while preserving everything that makes Fossil unique: single-file repos, built-in wiki, tickets, forum, and technotes. |
| 6 | |
| 7 | ## Why Fossilrepo? |
| 8 | |
| 9 | Fossil is the most underrated version control system. Every repository is a single SQLite file containing your code, wiki, tickets, forum, and technotes. No external services, no complex setup. But its web UI hasn't changed since 1998. |
| 10 | |
| 11 | |
| 12 | DDED docs/fossilrepo-tour.gif |
| --- README.md | |
| +++ README.md | |
| @@ -1,10 +1,14 @@ | |
| 1 | # Fossilrepo |
| 2 | |
| 3 | **Self-hosted Fossil forge with a modern web interface.** |
| 4 | |
| 5 |  |
| 6 | |
| 7 | Fossilrepo wraps [Fossil SCM](https://fossil-scm.org) with a Django + HTMX management layer, replacing Fossil's built-in web UI with a GitHub/GitLab-caliber experience while preserving everything that makes Fossil unique: single-file repos, built-in wiki, tickets, forum, and technotes. |
| 8 | |
| 9 | **Live instance:** [fossilrepo.io](https://fossilrepo.io) | **Docs:** [fossilrepo.dev](https://fossilrepo.dev) | **Powered by [BoilerWorks](https://boilerworks.ai)** |
| 10 | |
| 11 | ## Why Fossilrepo? |
| 12 | |
| 13 | Fossil is the most underrated version control system. Every repository is a single SQLite file containing your code, wiki, tickets, forum, and technotes. No external services, no complex setup. But its web UI hasn't changed since 1998. |
| 14 | |
| 15 | |
| 16 | DDED docs/fossilrepo-tour.gif |
Binary file
| --- tests/test_api_coverage.py | ||
| +++ tests/test_api_coverage.py | ||
| @@ -1334,10 +1334,12 @@ | ||
| 1334 | 1334 | assert response.status_code == 200 |
| 1335 | 1335 | assert response["Content-Type"] == "text/event-stream" |
| 1336 | 1336 | assert response["Cache-Control"] == "no-cache" |
| 1337 | 1337 | assert response["X-Accel-Buffering"] == "no" |
| 1338 | 1338 | assert response.streaming is True |
| 1339 | + # Close the streaming response to release the DB connection | |
| 1340 | + response.close() | |
| 1339 | 1341 | |
| 1340 | 1342 | def test_sse_generator_yields_claim_events(self, sample_project, fossil_repo_obj, admin_user): |
| 1341 | 1343 | """The SSE generator detects new TicketClaims and yields claim events. |
| 1342 | 1344 | |
| 1343 | 1345 | We test the generator directly rather than going through StreamingHttpResponse, |
| 1344 | 1346 |
| --- tests/test_api_coverage.py | |
| +++ tests/test_api_coverage.py | |
| @@ -1334,10 +1334,12 @@ | |
| 1334 | assert response.status_code == 200 |
| 1335 | assert response["Content-Type"] == "text/event-stream" |
| 1336 | assert response["Cache-Control"] == "no-cache" |
| 1337 | assert response["X-Accel-Buffering"] == "no" |
| 1338 | assert response.streaming is True |
| 1339 | |
| 1340 | def test_sse_generator_yields_claim_events(self, sample_project, fossil_repo_obj, admin_user): |
| 1341 | """The SSE generator detects new TicketClaims and yields claim events. |
| 1342 | |
| 1343 | We test the generator directly rather than going through StreamingHttpResponse, |
| 1344 |
| --- tests/test_api_coverage.py | |
| +++ tests/test_api_coverage.py | |
| @@ -1334,10 +1334,12 @@ | |
| 1334 | assert response.status_code == 200 |
| 1335 | assert response["Content-Type"] == "text/event-stream" |
| 1336 | assert response["Cache-Control"] == "no-cache" |
| 1337 | assert response["X-Accel-Buffering"] == "no" |
| 1338 | assert response.streaming is True |
| 1339 | # Close the streaming response to release the DB connection |
| 1340 | response.close() |
| 1341 | |
| 1342 | def test_sse_generator_yields_claim_events(self, sample_project, fossil_repo_obj, admin_user): |
| 1343 | """The SSE generator detects new TicketClaims and yields claim events. |
| 1344 | |
| 1345 | We test the generator directly rather than going through StreamingHttpResponse, |
| 1346 |