Package: samosa
Samosa (समोसा)Enforce a triangular Git workflow. If this is not possible, explain why.UsageUsage: samosa [OPTIONS] COMMAND [ARGS]...

  Enforce a triangular Git workflow. If this is not possible, explain why.

Options:
  --help  Show this message and exit.

Commands:
  add       Add URL as remote repository named REMOTE.
  checkout  Check out a new or existing BRANCH.
  clone     Clone remote URL as a local repository.
  commit    Commit changes with a signed MESSAGE.
  diff      Compare with upstream.
  fetch     Fetch all remote updates without changing local files.
  force     Force-push changes to remote branch.
  graph     Show detailed commit graph.
  init      Initialise an empty local repository.
  log       Show streamlined commit log.
  pull      Pull changes from remote.
  push      Push changes to remote branch.
  status    Inspect and repair local repository.Samosa will always prepare a repository before attempting a command. If all
checks pass, the command is executed. Otherwise, Samosa will make a suggestion
and terminate with exit code 1 (error).Samosa standardThe following checks should be true:In a Git repositoryThere is a remote named "origin"There is a remote named "upstream"Author name and email are set, and are not invalidThe default push target is "origin:current"The pre-commit hook exists and is executableThere is a local branch named "main"The main branch tracks "upstream/main"See WORKFLOW.md for a detailed workflow that results in a samosa standard
repository.SuggestionsIf you aren't forking, make origin and upstream equalForking a project may not be feasible or possible. In this case, set upstream
and origin to the same URL.(Forks may be disallowed for confidential projects. Forking may not be useful
for solo maintainers.)Out of scopeDetecting/supporting other workflows.Oh sh*, git!Non-Python packaging. Requiresgitandlibgit2.AcknowledgementsWORKFLOW.md and the associated pre-commit bash script are derived from Aaron
Bull Schaefer's excellentGit Triangular Workflow.
License details are included in the relevant files.Additional referencesGit 2.5, including multiple worktrees and triangular workflowsTriangle workflowsForking workflowIntegration-manager workflowGit forking workflow, what names for the remotes?AlternativesTig: text-mode interface for Gitgitoxide(specifically,ein)Development environmentInstall prerequisitesPython 3.10pdmmakepipx (optional, required formake install-source)InstructionsFork the upstream repository.git clone [fork-url]cd [project-folder]Runmake developto initialise your development environment.You can use any text editor or IDE that supports virtualenv / pdm. See the
Makefile for toolchain details.Pleasemake testandmake lintbefore submitting changes.Make targetsUSAGE: make [target]

help    : Show this message.
develop : Set up Python development environment.
run     : Run from source.
clean   : Remove all build artefacts.
test    : Run tests and generate coverage report.
lint    : Fix or warn about linting errors.
build   : Clean, test, lint, then generate new build artefacts.
publish : Upload build artefacts to PyPI.
install-source : Install source as a local Python application.Sharing and contributionsSamosa (समोसा)
https://lofidevops.neocities.org
Copyright 2022 David Seaward and contributors
SPDX-License-Identifier: AGPL-3.0-or-laterShared under AGPL-3.0-or-later. We adhere to the Contributor Covenant 2.1, and
certify origin per DCO 1.1 with a signed-off-by line. Contributions under the
same terms are welcome.Submit security and conduct issues as private tickets. Sign commits withgit commit --signoff. For a software bill of materials runreuse spdx. For
more details see CONDUCT, COPYING and CONTRIBUTING.