Skip to content

Commit 965d5df

Browse files
authored
Initial commit
0 parents  commit 965d5df

27 files changed

+1775
-0
lines changed

.editorconfig

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# EditorConfig is awesome: https://EditorConfig.org
2+
3+
# Top-most EditorConfig file
4+
root = true
5+
6+
# Global settings (applicable to all files unless overridden)
7+
[*]
8+
charset = utf-8 # Default character encoding
9+
end_of_line = lf # Use LF for line endings (Unix-style)
10+
indent_style = space # Use spaces for indentation
11+
indent_size = 4 # Default indentation size
12+
insert_final_newline = true # Make sure files end with a newline
13+
trim_trailing_whitespace = true # Remove trailing whitespace
14+
15+
# Zig files
16+
[*.zig]
17+
max_line_length = 100
18+
19+
# Markdown files
20+
[*.md]
21+
max_line_length = 120
22+
trim_trailing_whitespace = false # Don't remove trailing whitespace in Markdown files
23+
24+
# Bash scripts
25+
[*.sh]
26+
indent_size = 2
27+
28+
# YAML files
29+
[*.{yml,yaml}]
30+
indent_size = 2
31+
32+

.github/workflows/codecov.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Codecov
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
tags:
7+
- 'v*'
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-22.04
15+
16+
steps:
17+
- name: Checkout Repository
18+
uses: actions/checkout@v4
19+
20+
- name: Install Dependencies
21+
run: |
22+
sudo apt-get update
23+
sudo apt-get install -y make kcov
24+
make install-deps
25+
26+
- name: Run Tests and Generate Coverage Report
27+
run: make coverage
28+
29+
- name: Upload Coverage Reports to Codecov
30+
uses: codecov/codecov-action@v5
31+
with:
32+
token: ${{ secrets.CODECOV_TOKEN }}
33+
continue-on-error: false

.github/workflows/lints.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Run Linters
2+
3+
on:
4+
workflow_dispatch:
5+
pull_request:
6+
branches:
7+
- main
8+
tags:
9+
- 'v*'
10+
11+
permissions:
12+
contents: read
13+
14+
jobs:
15+
lint:
16+
runs-on: ubuntu-latest
17+
18+
steps:
19+
- name: Checkout Code
20+
uses: actions/checkout@v4
21+
22+
- name: Install Dependencies
23+
run: |
24+
sudo apt-get update
25+
sudo apt-get install -y make
26+
make install-deps
27+
28+
- name: Run Linters
29+
run: make lint

.github/workflows/tests.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Run Test
2+
3+
on:
4+
workflow_dispatch:
5+
pull_request:
6+
branches:
7+
- main
8+
tags:
9+
- 'v*'
10+
11+
permissions:
12+
contents: read
13+
14+
jobs:
15+
build:
16+
runs-on: ubuntu-latest
17+
18+
steps:
19+
- name: Checkout Repository
20+
uses: actions/checkout@v4
21+
22+
- name: Install Dependencies
23+
run: |
24+
sudo apt-get update
25+
sudo apt-get install -y make
26+
make install-deps
27+
28+
- name: Run the Tests
29+
run: make test

.gitignore

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
########################
2+
# Python Specific
3+
########################
4+
__pycache__/
5+
*.py[cod]
6+
*$py.class
7+
8+
# Virtual environments
9+
.env/
10+
.venv/
11+
env/
12+
venv/
13+
14+
# Packaging
15+
.Python
16+
*.egg
17+
*.egg-info/
18+
dist/
19+
build/
20+
MANIFEST
21+
22+
# Python Dependency tools
23+
develop-eggs/
24+
downloads/
25+
eggs/
26+
.eggs/
27+
lib/
28+
lib64/
29+
parts/
30+
sdist/
31+
var/
32+
wheels/
33+
.installed.cfg
34+
35+
# Python Test & Coverage
36+
.tox/
37+
.coverage
38+
.coverage.*
39+
.cache
40+
nosetests.xml
41+
coverage.xml
42+
*.cover
43+
.hypothesis/
44+
.pytest_cache/
45+
htmlcov/
46+
47+
# Jupyter
48+
.ipynb_checkpoints
49+
50+
########################
51+
# Zig Specific
52+
########################
53+
zig-cache/
54+
.zig-cache/
55+
zig-out/
56+
57+
########################
58+
# IDE / Editor Junk
59+
########################
60+
.idea/
61+
*.iml
62+
.vscode/
63+
*.swp
64+
*~
65+
*.bak
66+
*.tmp
67+
*.log
68+
tags
69+
70+
########################
71+
# Miscellaneous
72+
########################
73+
74+
# Distribution
75+
bin/
76+
obj/
77+
tmp/
78+
temp/
79+
80+
# System / misc
81+
.DS_Store
82+
*.patch
83+
*.orig
84+
*.dump
85+
86+
# Local databases
87+
*.db
88+
*.sqlite
89+
*.wal
90+
*.duckdb
91+
92+
# Dependency lock files (optional)
93+
poetry.lock
94+
95+
# Additional files and directories to ignore (put below)
96+
docs/api/
97+
*_output.txt
98+

CODE_OF_CONDUCT.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Code of Conduct
2+
3+
We adhere to the [Contributor Covenant](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) version 2.1.

CONTRIBUTING.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Contribution Guidelines
2+
3+
Thank you for considering contributing to this project!
4+
Contributions are always welcome and appreciated.
5+
6+
## How to Contribute
7+
8+
Please check the [issue tracker](https://github.com/habedi/template-zig-project/issues) to see if there is an issue you
9+
would like to work on or if it has already been resolved.
10+
11+
### Reporting Bugs
12+
13+
1. Open an issue on the [issue tracker](https://github.com/habedi/template-zig-project/issues).
14+
2. Include information such as steps to reproduce the observed behavior and relevant logs or screenshots.
15+
16+
### Suggesting Features
17+
18+
1. Open an issue on the [issue tracker](https://github.com/habedi/template-zig-project/issues).
19+
2. Provide details about the feature, its purpose, and potential implementation ideas.
20+
21+
## Submitting Pull Requests
22+
23+
- Ensure all tests pass before submitting a pull request.
24+
- Write a clear description of the changes you made and the reasons behind them.
25+
26+
> [!IMPORTANT]
27+
> It's assumed that by submitting a pull request, you agree to license your contributions under the project's license.
28+
29+
## Development Workflow
30+
31+
### Prerequisites
32+
33+
Install GNU Make on your system if it's not already installed.
34+
35+
```shell
36+
# For Debian-based systems like Debian, Ubuntu, etc.
37+
sudo apt-get install make
38+
```
39+
40+
- Use the `make install-deps` command to install the development dependencies.
41+
42+
### Code Style
43+
44+
- Use the `make format` command to format the code.
45+
46+
### Running Tests
47+
48+
- Use the `make test` command to run the tests.
49+
50+
### Running Linters
51+
52+
- Use the `make lint` command to run the linters.
53+
54+
### See Available Commands
55+
56+
- Run `make help` to see all available commands for managing different tasks.
57+
58+
## Code of Conduct
59+
60+
We adhere to the [Contributor Covenant](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) version 2.1.

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Hassan Abedi
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)