Skip to content

Add open-source project scaffolding: contributor docs, issue/PR templates, and lint CI - #269

Open
Kantosaurus wants to merge 5 commits into
dusklinux:mainfrom
Kantosaurus:oss-scaffolding
Open

Add open-source project scaffolding: contributor docs, issue/PR templates, and lint CI#269
Kantosaurus wants to merge 5 commits into
dusklinux:mainfrom
Kantosaurus:oss-scaffolding

Conversation

@Kantosaurus

Copy link
Copy Markdown
Contributor

Summary

Dusky ships MIT + README + .gitignore and nothing else in the way of project infrastructure. This PR adds the standard open-source scaffolding a project of this size benefits from — contributor docs, issue/PR templates, CI, and line-ending enforcement — plus a small script bugfix found along the way. No behavioural changes to the desktop; this is repository health only.

What this adds

Community health (.github/)

  • CONTRIBUTING.md — development setup for the bare-repo deployment model (how to edit safely without scattering files into $HOME), shell and Python conventions matched to the existing tree, and how to add a setup subscript.
  • CODE_OF_CONDUCT.md — Contributor Covenant 2.1.
  • SECURITY.md — a vulnerability-reporting policy, plus the things a user should understand before installing (privileged install scripts, networking helpers, the wireless tooling).
  • SUPPORT.md — routes questions to Discord and the included docs.

Issue / PR flow

  • Structured bug-report and feature-request forms that capture the fields most issues hinge on: GPU vendor, filesystem, install method, machine type.
  • A PR template with a "tested on" section, and an issue-template chooser linking to Discord, the video walkthrough, and the in-repo Obsidian docs.
  • A Dependabot config for the GitHub Actions used by CI.

CI + consistency

  • lint.yml — checks shell syntax (bash -n), Python syntax (py_compile), and CRLF line endings on every push and pull request.
  • .gitattributes — pins all text files to LF. This is load-bearing: Dusky deploys with git checkout -f into $HOME, and a script that lands with CRLF fails at exec time on Arch with /usr/bin/env: 'bash\r': No such file or directory. Two tracked text files that had CRLF endings are renormalized (the large line counts in those two files are line-ending-only changes).
  • .editorconfig — matches the existing 4-space convention.

Docs

  • README restructured with a table of contents, badges, clearer install steps, a grouped feature overview, and a contributing section — all existing content preserved. A few stale script paths and the keybind for the cheatsheet are corrected to match the actual scripts.
  • CHANGELOG.md seeded from the recent history.

Bugfix

  • dusky_tui_4.3.0.sh had a conditional block closed with } instead of fi, so the script failed to parse and could not run. Corrected.

Verification

The lint workflow passes on this branch: bash -n is clean across all shell scripts (the dusky_tui fix is what makes it 0 failures), py_compile is clean across all Python, no tracked file has CRLF, and all added YAML validates.

Notes

SECURITY.md here is the standard "how to report a vulnerability" policy; it is generic and does not describe any specific issue.

…pport docs

Add the standard community-health files under .github/: CONTRIBUTING.md (development
setup for the bare-repo workflow, shell/Python conventions, how to add a setup subscript),
CODE_OF_CONDUCT.md (Contributor Covenant 2.1), SECURITY.md (vulnerability reporting policy),
and SUPPORT.md (where to get help).
Structured bug-report and feature-request forms that capture GPU vendor, filesystem, and
install method (the fields most issues hinge on), a PR template, an issue-template chooser
pointing at Discord and the included docs, and a Dependabot config for GitHub Actions.
- .github/workflows/lint.yml: check shell syntax (bash -n), Python syntax (py_compile),
  and CRLF line endings on every push and pull request
- .gitattributes: pin all text files to LF so a contributor with core.autocrlf=true cannot
  commit a script that fails on Arch with /usr/bin/env: 'bash\r'
- .editorconfig: match the existing 4-space convention
- .gitignore: ignore the graphify-out/ tooling output
- renormalize two tracked text files that had CRLF endings
Rewrite the README with a structured landing (badges, table of contents, clearer install
steps, grouped feature overview, contributing section) while preserving all existing content,
and correct a few stale script paths and the cheatsheet keybind. Add CHANGELOG.md.
A conditional block was closed with } instead of fi, so the script failed to parse and
could not run. Replace the } with fi.
@dusklinux

Copy link
Copy Markdown
Owner

What model was used for all this?

@Kantosaurus

Copy link
Copy Markdown
Contributor Author

Claude opus 5.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants