Skip to content

Commit

Permalink
chore(boilerplate): add project boilerplate files
Browse files Browse the repository at this point in the history
  • Loading branch information
jgeluk committed Nov 29, 2024
1 parent fc5f9dd commit e4a0890
Show file tree
Hide file tree
Showing 20 changed files with 717 additions and 3 deletions.
108 changes: 108 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
root = true

[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
max_line_length = 120
tab_width = 2
trim_trailing_whitespace = true
ij_continuation_indent_size = 8
ij_formatter_off_tag = @formatter:off
ij_formatter_on_tag = @formatter:on
ij_formatter_tags_enabled = false
ij_smart_tabs = false
ij_visual_guides = none
ij_wrap_on_typing = false

[*.rs]
indent_size = 4
max_line_length = 100
ij_continuation_indent_size = 4
ij_rust_align_multiline_chained_methods = false
ij_rust_align_multiline_parameters = true
ij_rust_align_multiline_parameters_in_calls = true
ij_rust_align_ret_type = true
ij_rust_align_type_params = false
ij_rust_align_where_bounds = true
ij_rust_align_where_clause = false
ij_rust_allow_one_line_match = false
ij_rust_block_comment_at_first_column = false
ij_rust_indent_where_clause = true
ij_rust_keep_blank_lines_in_code = 2
ij_rust_keep_blank_lines_in_declarations = 2
ij_rust_keep_indents_on_empty_lines = false
ij_rust_keep_line_breaks = true
ij_rust_line_comment_add_space = true
ij_rust_line_comment_at_first_column = false
ij_rust_min_number_of_blanks_between_items = 1
ij_rust_preserve_punctuation = false
ij_rust_spaces_around_assoc_type_binding = false

[.editorconfig]
ij_editorconfig_align_group_field_declarations = false
ij_editorconfig_space_after_colon = false
ij_editorconfig_space_after_comma = true
ij_editorconfig_space_before_colon = false
ij_editorconfig_space_before_comma = false
ij_editorconfig_spaces_around_assignment_operators = true

[{*.har,*.json}]
ij_json_keep_blank_lines_in_code = 0
ij_json_keep_indents_on_empty_lines = false
ij_json_keep_line_breaks = true
ij_json_space_after_colon = true
ij_json_space_after_comma = true
ij_json_space_before_colon = true
ij_json_space_before_comma = false
ij_json_spaces_within_braces = false
ij_json_spaces_within_brackets = false
ij_json_wrap_long_lines = false

[{*.htm,*.html,*.sht,*.shtm,*.shtml}]
indent_size = 4
ij_html_add_new_line_before_tags = body,div,p,form,h1,h2,h3
ij_html_align_attributes = true
ij_html_align_text = false
ij_html_attribute_wrap = normal
ij_html_block_comment_at_first_column = true
ij_html_do_not_align_children_of_min_lines = 0
ij_html_do_not_break_if_inline_tags = title,h1,h2,h3,h4,h5,h6,p
ij_html_do_not_indent_children_of_tags = html,body,thead,tbody,tfoot
ij_html_enforce_quotes = false
ij_html_inline_tags = a,abbr,acronym,b,basefont,bdo,big,br,cite,cite,code,dfn,em,font,i,img,input,kbd,label,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var
ij_html_keep_blank_lines = 2
ij_html_keep_indents_on_empty_lines = false
ij_html_keep_line_breaks = true
ij_html_keep_line_breaks_in_text = true
ij_html_keep_whitespaces = false
ij_html_keep_whitespaces_inside = span,pre,textarea
ij_html_line_comment_at_first_column = true
ij_html_new_line_after_last_attribute = never
ij_html_new_line_before_first_attribute = never
ij_html_quote_style = double
ij_html_remove_new_line_before_tags = br
ij_html_space_after_tag_name = false
ij_html_space_around_equality_in_attribute = false
ij_html_space_inside_empty_tag = false
ij_html_text_wrap = normal

[{*.toml,Cargo.lock,Gopkg.lock,Pipfile}]
ij_toml_keep_indents_on_empty_lines = false

[*.md]
trim_trailing_whitespace = true

[{Makefile,*.mk}]
indent_size = 4
tab_width = 4

[*.sparql]
indent_size = 4

[{*.yml,*.yaml}]
indent_size = 2
trim_trailing_whitespace = true

2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
* @jgeluk

13 changes: 13 additions & 0 deletions .github/workflows/check-commits.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
on: [push]

jobs:
cog_check_job:
runs-on: ubuntu-latest
name: check conventional commit compliance
steps:
- uses: actions/checkout@main
with:
fetch-depth: 0

- name: Conventional commits check
uses: cocogitto/cocogitto-action@v3
28 changes: 28 additions & 0 deletions .github/workflows/release-changelog.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
on:
workflow_dispatch:

jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Perform release
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Cocogitto release
id: release
uses: cocogitto/cocogitto-action@v3
with:
release: true
git-user: 'Release Bot'
git-user-email: 'jacobus.geluk@ekgf.org'

- name: Generate Changelog
run: cog changelog --at ${{ steps.release.outputs.version }} -t full_hash > GITHUB_CHANGELOG.md

- name: Upload github release
uses: softprops/action-gh-release@v1
with:
body_path: GITHUB_CHANGELOG.md
tag_name: ${{ steps.release.outputs.version }}
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,8 @@ Cargo.lock
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
#.idea/

# Added by cargo

/target
5 changes: 5 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"editor.trimAutoWhitespace": true,
"files.autoSaveWorkspaceFilesOnly": true,
"files.trimTrailingWhitespace": true
}
197 changes: 197 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
# Contributing to GraphArch

Thank you for considering contributing to **GraphArch**!

We appreciate your interest in improving this
project, and we're excited to work with you.
This document provides guidelines to help you
get started with contributing to GraphArch.

## How Can You Contribute?

There are several ways you can contribute to GraphArch:

1. **Report Bugs**:

If you come across a bug, please create an
issue describing the problem and how to
reproduce it.

2. **Suggest New Features**:

If you have an idea for a new feature or an
enhancement, feel free to open an issue to
discuss it.

3. **Code Contributions**:

You can contribute to the development of
GraphArch by fixing bugs,
adding new features,
or improving the documentation.

4. **Improve Documentation**:

Documentation is key to making GraphArch
accessible.
You can help by improving existing
documentation or writing new guides.

## Contributor License Agreement (CLA)

To contribute to this project, you must sign
the Contributor License Agreement (CLA).
We use [CLA assistant](https://cla-assistant.io/) to streamline this process.
You will be prompted to sign the CLA when you
make your first contribution.

## Getting Started (as a developer)

### Create an Issue

Before creating a branch, please create an
issue describing your intent.
This helps the community understand the
purpose of your work and allows for
discussion and feedback before you
begin implementation.

### Fork the Repository

Start by forking the repository to your
GitHub account.

### Clone the Repository

Clone the forked repository to your
local machine.

```shell
git clone https://github.com/ekgf/grapharg.git
cd grapharch
```

### Create a Branch

Once your issue has been approved, create a new branch for your feature or bug fix.

```shell
git switch -c feature/your-feature-name
```

### Make Your Changes

Implement your changes, make sure they are
well-tested, and follow the coding standards
of the project.

### Commit Your Changes

Write a meaningful commit message —
compliant with the "conventional commits" standard,
see below — that explains
what your changes do.

```shell
git add .
git commit -m "feat: add new feature"

# In the commit body or footer, reference the issue:
Closes #<issue-number>
```

#### More detail

We enforce the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) standard.
Please use clear and descriptive commit messages that follow this convention.
Additionally, every commit should reference the issue it addresses in the message body or footer,
using `Closes #<issue-number>` or `Fixes #<issue-number>`.

Examples of valid commit messages:

```text
feat(sparql): add support for SPARQL endpoint
Closes #12
```

```text
fix(docs): correct typo
Fixes #34
```

```text
chore: update dependencies to latest versions
Related to #56
```

- See more examples: https://gist.github.com/qoomon/5dfcdf8eec66a051ecd85625518cfd13


### Push Your Branch

Push your branch to your forked repository.

```shell
git push origin feature/your-feature-name
```

### Create a Pull Request

Go to the original repository on GitHub and
open a pull request from your forked repository.
Describe your changes thoroughly in the pull
request description.

## Why Use Conventional Commits

- Automatically generating CHANGELOGs.
- Automatically determining a semantic version
bump (based on the types of commits landed).
- Communicating the nature of changes to
teammates, the public, and other stakeholders.
- Triggering build and publish processes.
- Making it easier for people to contribute to
your projects, by allowing them to explore a
more structured commit history.

## Guidelines

### Coding Standards

Please ensure your code follows best practices
and is formatted correctly.
`rustfmt` must be used before committing,
and this will be verified by a
[GitHub Actions workflow](.github/workflows/check-formatting.yml),
just like the Conventional Commits check.

### Testing

Ensure that you write tests for new features
or bug fixes.
Use `cargo test` to run all tests and verify
that everything works as expected.

## Code of Conduct

We follow the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md).
By participating, you are expected to uphold this code.
Please report any behavior that violates this code to
[info@ekgf.org](mailto:info@ekgf.org).

## Issues and Feature Requests

If you encounter any issues, have questions
&mdash; or have feature requests &mdash; please open an issue on the
[GitHub issues page](https://github.com/ekgf/grapharg/issues).

## Contact

If you have any questions, feel free to reach out at [info@ekgf.org](mailto:info@ekgf.org).

---

Thank you for helping us make GraphArch a great tool for the community!
7 changes: 7 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[package]
name = "grapharch"
version = "0.0.1"
edition = "2024"
rust-version = "1.85"

[dependencies]
Loading

0 comments on commit e4a0890

Please sign in to comment.