Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
50 changes: 50 additions & 0 deletions .github/ISSUE_TEMPLATE/data_issue_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: πŸ“Š Report Data Issue
description: Report faulty or missing data
title: '[DATE]: [TITLE]'
labels: [data issue]
body:
- type: markdown
attributes:
value: A clear and concise description of the data issue. Use this template to report problems with data files, datasets, or data quality.
- type: input
id: dataset
attributes:
label: 'Dataset Information'
description: 'Specify the file path or dataset name'
placeholder: 'e.g., data/users.csv or API endpoint /api/v1/data'
validations:
required: true
- type: textarea
id: expected_data
attributes:
label: 'Expected Data'
description: 'A clear and concise description of what the expected data should be.'
placeholder: 'Describe the expected data structure, values, or behavior.'
validations:
required: true
- type: textarea
id: actual_data
attributes:
label: 'Actual Data'
description: 'A clear and concise description of what the actual data is, including any discrepancies or errors.'
placeholder: 'Describe the actual data found, including specific errors, missing values, or incorrect formats.'
validations:
required: true
- type: input
id: screenshot
attributes:
label: 'Screenshot/Example (if applicable)'
description: 'Provide a link to a screenshot or example file demonstrating the issue'
placeholder: 'https://... or attach files below'
- type: textarea
id: impact
attributes:
label: 'Impact'
description: 'Describe the impact of this data issue on your work or the project'
placeholder: 'e.g., Cannot proceed with analysis, incorrect results generated, etc.'
- type: textarea
id: additional_context
attributes:
label: 'Additional Context'
description: 'Add any other context about the issue here.'
placeholder: 'Include steps to reproduce, when the issue was first noticed, or any potential causes.'
2 changes: 1 addition & 1 deletion .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1 +1 @@
pnpm check
npm run check
21 changes: 21 additions & 0 deletions .zenodo.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"title": "REPO_NAME",
"description": "SHORT_DESCRIPTION",
"license": "AGPL-3.0",
"upload_type": "software",
"creators": [
{
"name": "FULLNAME",
"affiliation": "Your Institution"
}
],
"keywords": ["github", "template"],
"related_identifiers": [
{
"scheme": "url",
"identifier": "https://github.com/USERNAME/REPO_NAME",
"relation": "isSupplementTo"
}
],
"contributors": []
}
18 changes: 18 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Go to https://citation-file-format.github.io/ to learn more about the Citation File Format.
cff-version: 1.2.0
title: REPO_NAME
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- family-names: FULLNAME
email: '[INSERT CONTACT METHOD]'
repository-code: 'https://github.com/USERNAME/REPO_NAME'
url: 'https://github.com/USERNAME/REPO_NAME'
abstract: SHORT_DESCRIPTION
keywords:
- github
- template
license: AGPL-3.0
version: 0.0.1
15 changes: 12 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ This is a GitHub template designed for small projects that is independent of the
[![GitHub forks](https://img.shields.io/github/forks/maehr/github-template.svg)](https://github.com/maehr/github-template/network)
[![GitHub stars](https://img.shields.io/github/stars/maehr/github-template.svg)](https://github.com/maehr/github-template/stargazers)
[![GitHub license](https://img.shields.io/github/license/maehr/github-template.svg)](https://github.com/maehr/github-template/blob/main/LICENSE.md)
[![DOI](https://zenodo.org/badge/DOI/YOUR_DOI_HERE.svg)](https://doi.org/YOUR_DOI_HERE)

## Why use a template (even for small projects)

Expand All @@ -14,6 +15,7 @@ This is a GitHub template designed for small projects that is independent of the
- Increase [security](#security)
- Follow recognized [ethical principles](#ethics)
- Promote [Free and Open-source software](#foss)
- Enable proper [academic citation](#citation) and archiving

## How this template helps you

Expand All @@ -24,14 +26,15 @@ This is a GitHub template designed for small projects that is independent of the
- Automated [CHANGELOG.md](CHANGELOG.md) via [git-cliff](https://github.com/orhun/git-cliff)
- [package.json](package.json) according to [npm docs](https://docs.npmjs.com/cli/v7/configuring-npm/package-json)
- Accessible documentation via [gh-pages](https://help.github.com/en/articles/configuring-a-publishing-source-for-github-pages)
- [TODO.md](TODO.md) checklist for project setup and customization

### Consistency

- Consistent formatting via [Prettier](https://prettier.io/)
- Consistent commit messages according to [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) via [husky](https://github.com/typicode/husky)
- Consistent versioning via [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
- Consistent [fork and pull](https://gist.github.com/Chaser324/ce0505fbed06b947d962) workflow via [GitHub branch protection](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule)
- Consistent issues via [issue templates](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository)
- Consistent issues via [issue templates](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository) including specialized templates for bugs, features, documentation, and data issues

### Security

Expand All @@ -48,6 +51,12 @@ This is a GitHub template designed for small projects that is independent of the

- [LICENSE.md](LICENSE.md) according to [choosealicense.com](https://choosealicense.com/)

### Citation

- [CITATION.cff](CITATION.cff) according to [Citation File Format](https://citation-file-format.github.io/)
- Automatic archiving with [Zenodo](https://zenodo.org/) via [.zenodo.json](.zenodo.json) for DOI generation
- GitHub citation widget support for proper academic attribution

## Installation

To initialize the template, [generate](https://github.com/maehr/github-template/generate) or [clone](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository) the repository to your local machine and follow this guide.
Expand All @@ -59,11 +68,11 @@ npm install
npm run prepare
```

2. Complete the following checklist of tasks to customize the template for your project:
2. Complete the comprehensive setup checklist in [TODO.md](TODO.md) to customize the template for your project. This includes:

- [ ] enable [GitHub security alerts](https://github.blog/2017-11-16-introducing-security-alerts-on-github/)
- [ ] [protect](https://help.github.com/en/articles/configuring-protected-branches) the main branch to enforce a [fork and pull](https://gist.github.com/Chaser324/ce0505fbed06b947d962) workflow
- [ ] search and replace `FULLNAME`, `USERNAME`, `REPO_NAME`, `SHORT_DESCRIPTION` `[INSERT CONTACT METHOD]` in [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md), [package.json](package.json), [README.md](README.md), [SECURITY.md](SECURITY.md), [config.yml](.github/ISSUE_TEMPLATE/config.yml)
- [ ] search and replace `FULLNAME`, `USERNAME`, `REPO_NAME`, `SHORT_DESCRIPTION`, `[INSERT CONTACT METHOD]` in [CITATION.cff](CITATION.cff), [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md), [package.json](package.json), [README.md](README.md), [SECURITY.md](SECURITY.md), [config.yml](.github/ISSUE_TEMPLATE/config.yml), and [.zenodo.json](.zenodo.json)
- [ ] add favicons to `./`, e.g. via [favicon.io](https://favicon.io/)
- [ ] search for `TODO` in the project (mostly documentation) and fix it
- [ ] delete [README.md](README.md)
Expand Down
2 changes: 2 additions & 0 deletions README.template.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ SHORT_DESCRIPTION
[![GitHub forks](https://img.shields.io/github/forks/USERNAME/REPO_NAME.svg)](https://github.com/USERNAME/REPO_NAME/network)
[![GitHub stars](https://img.shields.io/github/stars/USERNAME/REPO_NAME.svg)](https://github.com/USERNAME/REPO_NAME/stargazers)
[![GitHub license](https://img.shields.io/github/license/USERNAME/REPO_NAME.svg)](https://github.com/USERNAME/REPO_NAME/blob/main/LICENSE.md)
[![DOI](https://zenodo.org/badge/DOI/YOUR_DOI_HERE.svg)](https://doi.org/YOUR_DOI_HERE)

## Installation

Expand All @@ -29,6 +30,7 @@ This project is maintained by [@USERNAME](https://github.com/USERNAME). Please u
| Type | Platforms |
| -------------------------------------- | ----------------------------------------------------------------------- |
| 🚨 **Bug Reports** | [GitHub Issue Tracker](https://github.com/USERNAME/REPO_NAME/issues) |
| πŸ“Š **Data Issues** | [GitHub Issue Tracker](https://github.com/USERNAME/REPO_NAME/issues) |
| πŸ“š **Docs Issue** | [GitHub Issue Tracker](https://github.com/USERNAME/REPO_NAME/issues) |
| 🎁 **Feature Requests** | [GitHub Issue Tracker](https://github.com/USERNAME/REPO_NAME/issues) |
| πŸ›‘ **Report a security vulnerability** | See [SECURITY.md](SECURITY.md) |
Expand Down
41 changes: 41 additions & 0 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Project Setup Checklist

Complete the following steps after creating your project from this template to customize and finalize your project.

## Essential Setup Tasks

- [ ] **Enable GitHub Security Alerts**: Navigate to your repository's "Security" tab on GitHub and enable Dependabot alerts and security updates to monitor vulnerabilities in dependencies.
- [ ] **Protect the Main Branch**: In repository settings under "Branches", add a branch protection rule for `main` to require pull request reviews before merging and prevent force pushes.
- [ ] **Update Project Details**: Replace all placeholder values in the following files with your actual project information:
- `FULLNAME` β†’ Your full name (e.g., "Jane Doe")
- `USERNAME` β†’ Your GitHub username (e.g., "janedoe")
- `REPO_NAME` β†’ Your repository name (e.g., "my-awesome-project")
- `SHORT_DESCRIPTION` β†’ Brief description of your project (e.g., "A template for small GitHub projects")
- `[INSERT CONTACT METHOD]` β†’ Your contact email or preferred method
- Files to update: `.github/ISSUE_TEMPLATE/config.yml`, `CITATION.cff`, `CODE_OF_CONDUCT.md`, `package.json`, `README.template.md`, and `SECURITY.md`
- [ ] **Add Favicons**: Generate and add favicon files to the root directory using [favicon.io](https://favicon.io/) or a similar service. Include `favicon.ico`, `favicon-16x16.png`, `favicon-32x32.png`, `apple-touch-icon.png`, and Android icons.
- [ ] **Address TODO Comments**: Search for `TODO` comments throughout all project files using `grep -r "TODO" .` and complete or remove each task as appropriate for your project.
- [ ] **Finalize README**: Once all customization is complete, delete the template README.md and rename `README.template.md` to `README.md` to make it your project's main README.
- [ ] **Format Files**: Run `npm run format` to apply consistent formatting to all files using Prettier before committing changes.
- [ ] **Commit Changes**: Use `npm run commit` to create a properly formatted commit message following Conventional Commits standards (e.g., "chore: initial project setup").
- [ ] **Generate Changelog**: Run `npm run changelog` to generate changelog entries from your commit history, then copy the output into `CHANGELOG.md`.
- [ ] **Enable GitHub Pages**: In repository settings under "Pages", set the source to "Deploy from a branch" and select the `gh-pages` branch and `/ (root)` folder (if using GitHub Pages for your project documentation).

## Optional Enhancements

- [ ] **Update Citation File**: Customize `CITATION.cff` with complete citation metadata including authors, version, DOI (after first release), and keywords relevant to your project.
- [ ] **Add Zenodo Integration**: Follow the [GitHub guide for Zenodo integration](https://docs.github.com/en/repositories/archiving-a-github-repository/referencing-and-citing-content) to enable automatic archiving and obtain a DOI for your repository. Update `.zenodo.json` with custom metadata if needed.
- [ ] **Customize Issue Templates**: Modify the existing issue templates or add new ones in `.github/ISSUE_TEMPLATE/` to match your project's specific needs.
- [ ] **Add GitHub Actions**: Consider adding custom workflows for automated testing, linting, or deployment specific to your project's technology stack.
- [ ] **Setup Project Board**: Create a GitHub project board to track issues and pull requests for better project management.

## Verification Steps

After completing the checklist:

1. Run `npm run check` to verify all files are properly formatted
2. Review your GitHub Pages site to confirm it displays as expected (if applicable)
3. Test that all links in your README work correctly
4. Verify that security alerts and branch protection are active
5. Create a test issue and pull request to ensure templates work correctly
6. Check that commit hooks are working by making a test commit