Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
5e3124d
wholehistory: fall back to vcsgraph.tsort for breezy dev
jelmer Apr 21, 2026
2184bee
Initial Rust port of loggerhead
jelmer Apr 21, 2026
0fa3a4b
Add parity features: /changes filter_path, /changes/<revno>, /revisio…
jelmer Apr 21, 2026
733efe6
Directory drill-down, search plugin wiring, diff.js contract
jelmer Apr 21, 2026
97d7c02
UX parity: pagination, tag column, merge icon, error page, revision nav
jelmer Apr 21, 2026
24a3d46
JSON variants, sort param, merge-depth indentation
jelmer Apr 21, 2026
323df2b
User-branches layout, /diff context param, files breadcrumbs
jelmer Apr 21, 2026
5a078bb
Cosmetic polish: atom ids, bug links, search box, Last-Modified
jelmer Apr 21, 2026
2eaea57
http_serve gate + foreign-VCS SHAs
jelmer Apr 21, 2026
52fefe8
changelog: emit the `var revids` JS global
jelmer Apr 21, 2026
b8e96ec
filediff: preserve indentation in rendered hunks
jelmer Apr 21, 2026
b9e3ce0
revlog: return an HTML fragment, not JSON
jelmer Apr 21, 2026
fee215f
revision: preserve commit-message formatting
jelmer Apr 21, 2026
92051cf
download, tarball: accept revnos via fix_revid
jelmer Apr 21, 2026
cb1d5ba
close remaining Python→Rust parity gaps
jelmer Apr 21, 2026
ec632f8
drop the Python implementation, port docs to mdbook
jelmer Apr 21, 2026
9afd88f
Add CI
jelmer Apr 21, 2026
89f5f04
Merge branch 'master' of https://github.com/breezy-team/loggerhead in…
jelmer Apr 21, 2026
b6dd9fc
Install breezy in CI
jelmer Apr 21, 2026
cb0a858
Install breezy via pip in CI
jelmer Apr 21, 2026
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
40 changes: 40 additions & 0 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
name: Publish

"on":
push:
tags:
- "v*"
workflow_dispatch:

jobs:
publish:
runs-on: ubuntu-latest
environment: crates-io
permissions:
id-token: write
contents: read

steps:
- uses: actions/checkout@v4

- name: Install Breezy
run: |
pip install 'breezy>=3.3.6'

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable

- uses: Swatinem/rust-cache@v2

- name: Verify package builds
run: cargo package --verbose

- name: Authenticate to crates.io
uses: rust-lang/crates-io-auth-action@v1
id: auth

- name: Publish to crates.io
env:
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}
run: cargo publish
37 changes: 21 additions & 16 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,36 @@ name: Test

"on":
push:
branches: [master]
branches: [master, rust]
pull_request:
branches: [master]
branches: [master, rust]

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']

steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
- name: Install Breezy
run: |
pip install 'breezy>=3.3.6'

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
python-version: ${{ matrix.python-version }}
components: rustfmt, clippy

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install ".[dev]"
- uses: Swatinem/rust-cache@v2

- name: Run unit tests
run: |
export BRZ_PLUGINS_AT=loggerhead@$(pwd)
brz selftest -s bp.loggerhead
- name: Check formatting
run: cargo fmt --all -- --check

- name: Clippy
run: cargo clippy --all-targets --all-features -- -D warnings

- name: Build
run: cargo build --all-targets --verbose

- name: Run tests
run: cargo test --all-features --verbose
16 changes: 2 additions & 14 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,18 +1,6 @@
./dist
./loggerhead.egg-info
./loggerhead.pid
/target
./logs
build
*.log
_trial_temp
loggerhead-memprofile
./docs/_build/
/docs/book/
tags
.project
.pydevproject
.testrepository
MANIFEST
.tox
__pycache__
loggerhead.egg-info/
*~
Loading
Loading