Files
httrack/CONTRIBUTING.md
Xavier Roche 18bdc24d15 Document that PRs are squash-merged, not merged (#609)
Both files still describe the pre-July policy and tell contributors to polish
each commit message because the branch lands on master as-is. Under squash only
the PR title and description survive, so the advice pointed at the wrong thing.

Signed-off-by: Xavier Roche <roche@httrack.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-16 18:42:06 +02:00

1.9 KiB

Contributing to HTTrack

HTTrack is small and old. Keep changes easy to review and safe to merge. Working with an AI assistant? The operational checklist is AGENTS.md.

Pull requests

  • One change per PR. Small diffs merge fast.
  • PRs are squash-merged: one commit per PR goes onto master, built from the PR title and description, so those are the history. Explain why there.
  • Be terse in the PR title and description: name the problem, not the fix, don't restate the diff, and calibrate length to the change.
  • Add or update tests for engine changes (tests/), and keep CI green.

Style

  • C, matching nearby code. Format only the lines you change (git clang-format against the repo .clang-format). Never reformat untouched code.
  • Comment the why, in English.
  • HTTrack parses hostile input off the network. Check bounds, avoid unchecked copies, and never let an attacker-controlled length drive arithmetic unchecked.

Sign your work

Every commit needs a Signed-off-by line, the DCO: git commit -s. CI rejects unsigned commits; fix a branch with git rebase --signoff master.

AI assistants

Welcome, and nothing to disclose. Two rules:

  • Own every line as if you wrote it. Can't explain it in review? Not ready.
  • Don't push your work onto reviewers. A raw generated patch a maintainer has to vet from scratch will be closed.
  • Attribution is mandatory. AI-assisted commits must carry a Co-Authored-By: trailer naming the assistant, not a footer in the PR description.

The sign-off covers AI-assisted code too.

Translations

Interface strings live in lang/. See lang/README.md for the file format and how to add or update a language.

Bugs

Open an issue with the version, OS, command used, and expected vs actual result. For security issues see SECURITY.md, not a public issue.