Skip to content
Merged
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
3 changes: 2 additions & 1 deletion .cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"language": "en",
"words": [
"scatter",
"span"
"span",
"libhal"
]
}
21 changes: 21 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
## Summary

<!-- Briefly describe what this PR does and why. -->

## Related Issue

<!-- Link the issue this PR addresses: Closes #123 -->

## Changes

<!-- List the key changes made in this PR. -->

-

## Test Plan

<!-- How were these changes tested? -->

- [ ] Pre-commit checks pass
- [ ] New/updated tests cover the changes
- [ ] Tested locally with `conan create .`
32 changes: 32 additions & 0 deletions .github/workflows/api.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Copyright 2024 - 2025 Khalil Estell and the libhal contributors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: 📚 Deploy APIs

on:
release:
types:
- published
push:
branches:
- main
workflow_dispatch:

permissions:
contents: write

jobs:
api:
uses: libhal/ci/.github/workflows/api_docs_gen.yml@5.x.y
secrets: inherit
51 changes: 51 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Copyright 2024 - 2025 Khalil Estell and the libhal contributors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: ✅ CI

on:
workflow_dispatch:
pull_request:
push:
branches:
- main

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
pre-commit:
name: 🧹 Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: sudo apt-get install -y doxygen
- uses: pre-commit/action@v3.0.1

package_and_upload_all_check:
name: 🔎 Package Validation
uses: libhal/ci/.github/workflows/package_and_upload_all.yml@5.x.y
with:
modules_support_needed: true
coroutine_support_needed: true
secrets: inherit

tests:
name: ✅ Testing w/ Clang-Tidy enabled
uses: libhal/ci/.github/workflows/tests.yml@5.x.y
secrets: inherit
33 changes: 33 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Copyright 2024 - 2025 Khalil Estell and the libhal contributors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: 🚀 Deploy

on:
workflow_dispatch:
release:
types: [published]

jobs:
deploy:
if: startsWith(github.ref, 'refs/tags/')
uses: libhal/ci/.github/workflows/package_and_upload_all.yml@5.x.y
with:
version: ${{ github.ref_name }}
remote_url: https://libhal.jfrog.io/artifactory/api/conan/trunk-conan
modules_support_needed: true
coroutine_support_needed: true
secrets:
conan_remote_password: ${{ secrets.JFROG_LIBHAL_TRUNK_ID_TOKEN }}
conan_remote_user: ${{ secrets.JFROG_LIBHAL_TRUNK_ID_TOKEN_USER }}
46 changes: 46 additions & 0 deletions .github/workflows/semantic-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Copyright 2024 - 2025 Khalil Estell and the libhal contributors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: 🏷️ Semantic Release
on:
push:
branches: [main]

permissions:
contents: write

jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Version
id: version
uses: paulhatch/semantic-version@v5.4.0
with:
bump_each_commit: true
major_pattern: "(major)"
minor_pattern: "(minor)"
bump_each_commit_patch_pattern: "(patch)"
tag_prefix: ""
debug: true
- name: Release
if: steps.version.outputs.version_type != 'none'
run: |
gh release create ${{ steps.version.outputs.version_tag }} \
--generate-notes
env:
GITHUB_TOKEN: ${{ secrets.SEMANTIC_RELEASE }}
30 changes: 30 additions & 0 deletions .github/workflows/take.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Copyright 2024 - 2025 Khalil Estell and the libhal contributors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# .github/workflows/take.yml
name: 📛 assign issue to contributor
on:
issue_comment:

jobs:
assign:
name: Take an issue
runs-on: ubuntu-latest
steps:
- name: take the issue
uses: bdougie/take-action@main
env:
GITHUB_TOKEN: ${{ github.token }}
with:
message: Thanks for taking this issue! Let us know if you have any questions!
35 changes: 35 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
repos:
# General file fixes
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
- id: end-of-file-fixer
- id: trailing-whitespace
- id: mixed-line-ending
args: [--fix=lf]

# Spell checking
- repo: https://github.com/streetsidesoftware/cspell-cli
rev: v8.6.0
hooks:
- id: cspell
files: \.(cpp|cppm|hpp|h|md)$

# C++ formatting with clang-format
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v21.1.8
hooks:
- id: clang-format
types_or: [c, c++]
files: \.(cpp|cppm|hpp|h|c)$

# Doxygen documentation checker
- repo: local
hooks:
- id: doxygen-check
name: doxygen-check
entry: doxygen
args: [docs/doxygen.conf]
language: system
pass_filenames: false
files: \.(cpp|cppm|hpp|h)$
2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"clangd.path": "./compile_commands_clangd_resolver.py"
}
}
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# scatter_span

A safe, easy to use, and non-dynamic datastructure that allows groups non-contiguous data to be treated as if it was a block of contiguous data like an array. It is an unowning datastructure similiar to `std::span` however the elements do not need to be in one block in memory.
A safe, easy to use, and non-dynamic data structure that allows groups non-contiguous data to be treated as if it was a block of contiguous data like an array. It is a non-owning data structure similar to `std::span` however the elements do not need to be in one block in memory.

> [!CAUTION]
>
Expand All @@ -12,4 +12,4 @@ A safe, easy to use, and non-dynamic datastructure that allows groups non-contig
> [!TIP]
> **[View the full API documentation](https://libhal.github.io/api/scatter_span/main/)**
>
> Use the version dropdown in the top-left corner of the docs page to switch between versions.
> Use the version dropdown in the top-left corner of the docs page to switch between versions.
1 change: 0 additions & 1 deletion conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ def validate(self):
def build_requirements(self):
self.tool_requires("cmake/[^4.0.0]")
self.tool_requires("ninja/[^1.3.0]")
self.tool_requires("llvm-toolchain/[^19.0]")
self.test_requires("boost-ext-ut/2.3.1")
self.tool_requires("libhal-cmake-util/[^5.0.5]")

Expand Down
Loading
Loading