├── .gitignore ├── .github ├── assets │ └── .gitkeep ├── milestone_template.md ├── release-drafter.yml ├── workflows │ └── release-drafter.yml ├── pull_request_template.md ├── ISSUE_TEMPLATE │ ├── feature_request.yml │ └── bug_report.yml └── getting-started.md ├── README.md ├── CONTRIBUTING.md └── LICENSE /.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/milestone_template.md: -------------------------------------------------------------------------------- 1 | ## Overall 2 | 3 | ### Objective 4 | 5 | [Explain here the objective of the milestone] 6 | 7 | ### Checklist 8 | 9 | - [ ] Clear objective 10 | - [ ] Consistent objective 11 | - [ ] Achievable in the given time 12 | - [ ] Issues created, with the rights labels and linked to this milestone 13 | - [ ] Issues assigned 14 | 15 | ## Final Report 16 | 17 | ### Checklist 18 | 19 | - [ ] Objective fulfilled 20 | - [ ] README.md and other relevant documents (guide, ...) updated 21 | - [ ] Documentation updated 22 | - [ ] Pull requests merged 23 | - [ ] Issues closed 24 | - [ ] Release created 25 | - [ ] Tasks archived 26 | - [ ] Branches cleared 27 | -------------------------------------------------------------------------------- /.github/release-drafter.yml: -------------------------------------------------------------------------------- 1 | name-template: 'v$RESOLVED_VERSION 🌈' 2 | tag-template: 'v$RESOLVED_VERSION' 3 | categories: 4 | - title: '🚀 Features' 5 | collapse-after: 5 6 | labels: 7 | - 'feature' 8 | - 'enhancement' 9 | - title: '🐛 Bug Fixes' 10 | collapse-after: 5 11 | labels: 12 | - 'fix' 13 | - 'bugfix' 14 | - 'bug' 15 | - title: '🧰 Maintenance' 16 | collapse-after: 5 17 | labels: 18 | - 'chore' 19 | - 'dependencies' 20 | - title: '📄 Documentation' 21 | collapse-after: 5 22 | label: 'documentation' 23 | change-template: '- $TITLE @$AUTHOR (#$NUMBER)' 24 | change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks. 25 | version-resolver: 26 | major: 27 | labels: 28 | - 'major' 29 | minor: 30 | labels: 31 | - 'minor' 32 | patch: 33 | labels: 34 | - 'patch' 35 | default: patch 36 | template: | 37 | ## Changes 38 | 39 | [Describe this new release here] 40 | 41 | $CHANGES 42 | -------------------------------------------------------------------------------- /.github/workflows/release-drafter.yml: -------------------------------------------------------------------------------- 1 | name: Release Drafter 2 | 3 | on: 4 | push: 5 | # branches to consider in the event; optional, defaults to all 6 | branches: 7 | - main 8 | # pull_request event is required only for autolabeler 9 | pull_request: 10 | # Only following types are handled by the action, but one can default to all as well 11 | types: [opened, reopened, synchronize] 12 | # pull_request_target event is required for autolabeler to support PRs from forks 13 | # pull_request_target: 14 | # types: [opened, reopened, synchronize] 15 | 16 | jobs: 17 | update_release_draft: 18 | runs-on: ubuntu-latest 19 | steps: 20 | # Drafts your next Release notes as Pull Requests are merged into "main" 21 | - uses: release-drafter/release-drafter@v5 22 | # (Optional) specify config name to use, relative to .github/. Default: release-drafter.yml 23 | # with: 24 | # config-name: my-config.yml 25 | # disable-autolabeler: true 26 | env: 27 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | Please provide a detailed description of what was done in this PR. 4 | Precise the issue that you are resolving. 5 | 6 | # Changes include 7 | 8 | - [ ] Bugfix (non-breaking change that solves an issue) 9 | - [ ] New feature (non-breaking change that adds functionality) 10 | - [ ] Breaking change (change that is not backwards-compatible and/or changes current functionality) 11 | 12 | # Breaking changes 13 | 14 | Please complete this section if any breaking changes have been made, otherwise delete it. 15 | 16 | # Checklist 17 | 18 | - [ ] I have assigned this PR to myself 19 | - [ ] I have added at least 1 reviewer 20 | - [ ] I have added the needed labels 21 | - [ ] I have linked this PR to an issue 22 | - [ ] I have linked this PR to a milestone 23 | - [ ] I have linked this PR to a project 24 | - [ ] I have tested this code 25 | - [ ] I have added / updated tests (unit / functional / end-to-end / ...) 26 | - [ ] I have updated the README and other relevant documents (guides...) 27 | - [ ] I have added sufficient documentation both in code, as well as in the READMEs 28 | 29 | # Additional comments 30 | 31 | Please post additional comments in this section if you have them, otherwise delete it. -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.yml: -------------------------------------------------------------------------------- 1 | name: Feature Request 2 | description: File a feature request 3 | title: "[Feature]: " 4 | labels: ["feature", "triage"] 5 | assignees: 6 | - adrienfort # Update it 7 | body: 8 | - type: markdown 9 | attributes: 10 | value: | 11 | Thanks for taking the time to fill out this feature request! 12 | - type: textarea 13 | id: description 14 | attributes: 15 | label: Description 16 | description: Describe your feature shortly. 17 | placeholder: Tell us what you want to see! 18 | value: "A new feature!" 19 | validations: 20 | required: true 21 | - type: textarea 22 | id: expected-behaviour 23 | attributes: 24 | label: Expected behaviour 25 | description: Describe what you want to happen with as much details as possible. 26 | placeholder: Tell us what you want to happen! 27 | value: "This should happened!" 28 | validations: 29 | required: true 30 | - type: textarea 31 | id: environment 32 | attributes: 33 | label: Environment 34 | description: Describe your environment with as much details as possible. 35 | placeholder: Tell us what is your environment! 36 | value: "- OS and version" 37 | validations: 38 | required: true 39 | - type: textarea 40 | id: proposed-solution 41 | attributes: 42 | label: Proposed solution 43 | description: If you have an idea of how to realise this feature, please write it down here, so we can begin discussing it. 44 | validations: 45 | required: false 46 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.yml: -------------------------------------------------------------------------------- 1 | name: Bug Report 2 | description: File a bug report 3 | title: "[Bug]: " 4 | labels: ["bug", "triage"] 5 | assignees: 6 | - adrienfort # Update it 7 | body: 8 | - type: markdown 9 | attributes: 10 | value: | 11 | Thanks for taking the time to fill out this bug report! 12 | - type: textarea 13 | id: description 14 | attributes: 15 | label: Description 16 | description: Describe your bug shortly. 17 | placeholder: Tell us what you see! 18 | value: "A bug happened!" 19 | validations: 20 | required: true 21 | - type: textarea 22 | id: what-happened 23 | attributes: 24 | label: What happened? 25 | description: Describe your bug with as much details as possible. 26 | placeholder: Tell us what you see! 27 | value: "A bug happened!" 28 | validations: 29 | required: true 30 | - type: textarea 31 | id: expected-behaviour 32 | attributes: 33 | label: Expected behaviour 34 | description: Describe what should happened with as much details as possible. 35 | placeholder: Tell us what should happened! 36 | value: "This should happened!" 37 | validations: 38 | required: true 39 | - type: textarea 40 | id: environment 41 | attributes: 42 | label: Environment 43 | description: Describe your environment with as much details as possible. 44 | placeholder: Tell us what is your environment! 45 | value: "- OS and version\n- Branch that causes this bug" 46 | validations: 47 | required: true 48 | - type: textarea 49 | id: steps-to-reproduce 50 | attributes: 51 | label: Steps to reproduce 52 | description: List the steps to reproduce with as much details as possible. 53 | placeholder: Tell us how to reproduce this bug! 54 | value: "- You have to do this!\n- Then this!" 55 | validations: 56 | required: true 57 | - type: textarea 58 | id: logs 59 | attributes: 60 | label: Relevant log output 61 | description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. 62 | render: C++ 63 | validations: 64 | required: false 65 | - type: textarea 66 | id: proposed-solution 67 | attributes: 68 | label: Proposed solution 69 | description: If you have an idea of how to fix this issue, please write it down here, so we can begin discussing it. 70 | validations: 71 | required: false 72 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | > If you see this section, you've just created a repository using [PoC Innovation's Open-Source project template](https://github.com/PoCInnovation/open-source-project-template). Check the [getting started guide](./.github/getting-started.md). 2 | 3 | # [PROJECT'S NAME] 4 | 5 | [Project's description] 6 | 7 | ## How does it work? 8 | 9 | [Explain how this project is working] 10 | 11 | ## Getting Started 12 | 13 | ### Installation 14 | 15 | [Explain how to install all of the project's dependencies] 16 | 17 | ### Quickstart 18 | 19 | [Explain how to run this project] 20 | 21 | ### Usage 22 | 23 | [Explain how to use this project] 24 | 25 | ## Get involved 26 | 27 | You're invited to join this project ! Check out the [contributing guide](./CONTRIBUTING.md). 28 | 29 | If you're interested in how the project is organized at a higher level, please contact the current project manager. 30 | 31 | ## Our PoC team ❤️ 32 | 33 | Developers 34 | | [
[Developer's name]](https://github.com/MrZalTy) | [
[Developer's name]](https://github.com/MrZalTy) | [
[Developer's name]](https://github.com/MrZalTy) 35 | | :---: | :---: | :---: | 36 | 37 | Manager 38 | | [
[Manager's name]](https://github.com/adrienfort) 39 | | :---: | 40 | 41 |

42 | Organization 43 |

44 | 45 |

46 | 47 | LinkedIn logo 48 | 49 | 50 | Instagram logo 52 | 53 | 54 | Twitter logo 55 | 56 | 57 | Discord logo 58 | 59 |

60 |

61 | 62 | Website logo 63 | 64 |

65 | 66 | > 🚀 Don't hesitate to follow us on our different networks, and put a star 🌟 on `PoC's` repositories 67 | 68 | > Made with ❤️ by PoC -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to [PROJECT'S NAME] 2 | 3 | ## Create an issue 4 | 5 | - If you've encountered a bug, open a [Bug Report](https://github.com/PoCInnovation/$REPOSITORY/issues/new?assignees=&labels=&template=bug_report.md&title=). 6 | - If you want [PROJECT'S NAME] to have a new functionality, open a [Feature Request](https://github.com/PoCInnovation/$REPOSITORY/issues/new?assignees=&labels=&template=feature_request.md&title=). 7 | 8 | ## Resolve an issue 9 | 10 | Select an [issue](https://github.com/PoCInnovation/$REPOSITORY/issues) that you want to resolve. 11 | 12 | The recommended workflow is to fork this repository and open pull requests from your fork. 13 | 14 | ### 1. Fork, clone & configure [PROJECT'S NAME] upstream 15 | 16 | - Click on the _Fork_ button on GitHub 17 | - Clone the original repository 18 | - Add your repository as a new remote 19 | 20 | ```sh 21 | # Clone original repository 22 | git clone git@github.com:PoCInnovation/$REPOSITORY.git 23 | 24 | # Add your fork as a remote 25 | git remote add https://github.com/$YOUR_GITHUB_USER/$REPOSITORY.git 26 | ``` 27 | 28 | ### 2. Create a pull request 29 | 30 | ```sh 31 | # Create a new branch 32 | git switch -c my_branch 33 | 34 | # Make changes to your branch 35 | # ... 36 | 37 | # Commit changes - remember to sign! 38 | git commit -s 39 | 40 | # Push your new branch 41 | git push 42 | 43 | # Create a new pull request from https://github.com/PoCInnovation/$REPOSITORY/pulls 44 | ``` 45 | 46 | ### 3. Update your pull request with latest changes 47 | 48 | ```sh 49 | # Switch to the main branch 50 | git switch main 51 | 52 | # Pull origin's change 53 | git pull 54 | 55 | # Switch to your branch 56 | git switch my_branch 57 | 58 | # Rebase your branch changes on top of the updated main branch 59 | git rebase main 60 | 61 | # Update your pull request with latest changes 62 | git push -f 63 | ``` 64 | 65 | ## Commits 66 | 67 | ### DCO 68 | 69 | Contributions to this project must be accompanied by a Developer Certificate of 70 | Origin (DCO). 71 | 72 | All commit messages must contain the Signed-off-by line with an email address that matches the commit author. When committing, use the `--signoff` flag: 73 | 74 | ```sh 75 | git commit -s 76 | ``` 77 | 78 | The Signed-off-by line must match the **author's real name**, otherwise the PR will be rejected. 79 | 80 | ### Commit messages 81 | 82 | Please read first this article : [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/). 83 | 84 | Then, follow these guidelines: 85 | 86 | - **Group Commits:** Each commit should represent a meaningful change. Instead, these commits should be squashed together into a single "Add Feature" commit. 87 | > For instance, a PR should not look like : 88 | > 1) Add Feature X 89 | > 2) Fix Typo 90 | > 3) Changes to features X 91 | > 5) Bugfix for feature X 92 | > 6) Fix Linter 7) 93 | > 7) ... 94 | 95 | - Each commit should **work on its own**: it must compile, pass the linter and so on. 96 | > This makes life much easier when using `git log`, `git blame`, `git bisect`, etc...\ 97 | > For instance, when doing a `git blame` on a file to figure out why a change was introduced, it's pretty meaningless to see a _Fix linter_ commit message. "Add Feature X" is much more meaningful. 98 | 99 | - Use `git rebase -i main` to group commits together and rewrite their commit message 100 | 101 | - To add changes to the previous commit, use `git commit --amend -s`. This will change the last commit (amend) instead of creating a new commit. 102 | 103 | - Format: Use the imperative mood in the subject line: "If applied, this commit 104 | will _your subject line here_" 105 | 106 | - Add the following prefixes to your commit message to help trigger [automated processes](https://www.conventionalcommits.org): 107 | - `docs:` for documentation changes only (e.g., `docs: Fix typo in X`); 108 | - `test:` for changes to tests only (e.g., `test: Check if X does Y`); 109 | - `chore:` general things that should be excluded (e.g., `chore: Clean up X`); 110 | - `ci:` for internal CI specific changes (e.g., `ci: Enable X for tests`); 111 | 112 | > Made with ❤️ by PoC 113 | -------------------------------------------------------------------------------- /.github/getting-started.md: -------------------------------------------------------------------------------- 1 | # Getting Started 2 | 3 | > [PoC Innovation's Open-Source project template](https://github.com/PoCInnovation/open-source-project-template) 4 | 5 | Please read carefully this guide. 6 | 7 | ## Setup 8 | 9 | In this part, you will configure your project. 10 | 11 | ### Branches 12 | 13 | Branch protection is really important. It helps you to have control on your code. 14 | 15 | For each of the following branches, add the required protections. 16 | 17 | #### `main` 18 | 19 | ```markdown 20 | - [x] Require a pull request before merging 21 | - [x] Require approvals 22 | Required number of approvals before merging: 1 23 | 24 | - [x] Require status checks to pass before merging 25 | - [x] Require branches to be up to date before merging 26 | 27 | - [x] Require conversation resolution before merging 28 | ``` 29 | 30 | ### Documents 31 | 32 | This template provides the must-have documents. 33 | 34 | #### README.md 35 | 36 | The README.md is the showcase of your project. It always must be clean and consistent. Otherwise, no one will care of your project. 37 | 38 | Fill every sections of the [README.md](/README.md). 39 | > If you add pictures, put them in the [assets](./assets/) folder. 40 | 41 | #### CONTRIBUTING.md 42 | 43 | The CONTRIBUTING.md is the guide to contribute to your project. It always must be clean and consistent. Otherwise, no one will contribute to your project. 44 | 45 | Fill every sections of the [CONTRIBUTING.md](/CONTRIBUTING.md). 46 | 47 | #### LICENSE 48 | 49 | The LICENSE protects your code and contributors. 50 | 51 | This template provides an [Apache Licence 2.0](https://www.apache.org/licenses/LICENSE-2.0). 52 | > If you want another one, check this [guide](https://choosealicense.com). 53 | 54 | If your project doesn't belong to [PoC Innovation](https://github.com/PoCInnovation), make sure to update the copyrights of the [LICENCE](/LICENSE). 55 | 56 | ### About 57 | 58 | Update the `About` section by adding a description, a website, and topics. 59 | 60 | ### Templates 61 | 62 | This template provides the must-have templates. 63 | 64 | #### Issues 65 | 66 | An issue is a tool to track and focus tasks. 67 | 68 | This template provides two issues templates : 69 | - `Bug Report` 70 | - `Feature Request` 71 | 72 | Change the default assignee of the [bug_report](./ISSUE_TEMPLATE/bug_report.yml) template. 73 | 74 | Change the default assignee of the [feature_request](./ISSUE_TEMPLATE/feature_request.yml) template. 75 | 76 | #### Pull Requests 77 | 78 | A pull request is an event where a contributor asks a maintainer to review code. 79 | 80 | This template provides a [pull request template](./pull_request_template.md). You don't need to update it. 81 | 82 | #### Milestones 83 | 84 | A milestone helps to track progress on groups of issues or pull requests. 85 | 86 | This template provides a [milestone template](./milestone_template.md). You don't need to update it. 87 | 88 | ### Labels 89 | 90 | A label helps to categorize issues and pull requests. 91 | 92 | Make sure to have the following labels : 93 | 94 | - `bug`: Something isn't working 95 | - `bugfix`: Resolve a bug 96 | - `chore`: Global maintenance 97 | - `documentation`: Improvements or additions to documentation 98 | - `duplicate`: This issue or pull request already exists 99 | - `enhancement`: New feature or request 100 | - `help wanted`: Extra attention is needed 101 | - `invalid`: This doesn't seem right 102 | - `major`: Major update (for release) 103 | - `minor`: Minor update (for release) 104 | - `patch`: Patch update (for release) 105 | - `question`: Further information is requested 106 | - `triage`: Need to be tagged 107 | - `wontfix`: This will not be worked on 108 | 109 | ### GitHub project 110 | 111 | Create a GitHub project to manage your milestones, issues and pull requests. 112 | 113 | ### Actions 114 | 115 | This template provides some GitHub actions. 116 | 117 | #### Release Drafter 118 | 119 | A release is tool with changelogs that present a full history of a project. 120 | 121 | This template provides an [action](./workflows/release-drafter.yml) that drafts [next releases notes](./release-drafter.yml) as pull requests are merged into the main branch. You don't need to update it. 122 | > Check this [action's documentation](https://github.com/release-drafter/release-drafter) to understand how it works 123 | 124 | ### Settings 125 | 126 | #### Visibility 127 | 128 | Make your repository public. 129 | 130 | ## Sprints 131 | 132 | In this part, you will learn how to manage sprints. 133 | 134 | A sprint is associated as a milestone.\ 135 | A task is associated as an issue. 136 | 137 | ### Workflow 138 | 139 | The workflow to follow is: 140 | 141 | 1) Create a milestone 142 | 2) Create all the needed issues linked to this milestone 143 | 3) Manage the pull requests linked with these issues using the GitHib project 144 | 4) Resolve these issues 145 | 5) Publish a release 146 | 6) Close the milestone 147 | 148 | ### Milestones 149 | 150 | Each milestones must use the [milestone template](./milestone_template.md). 151 | 152 | There are two parts : 153 | - Overall 154 | > **⚠️ It's checklist must be completed before starting this sprint ⚠️** 155 | - Final Report 156 | > **⚠️ It's checklist must be completed before starting a new sprint ⚠️** 157 | 158 | Additional information is written in the milestones's checklists. Read them carefully! 159 | 160 | ### Issues 161 | 162 | Create all the required issues of a sprint before starting it. Once the sprint started, no issue linked to it should be create. 163 | 164 | **Each issue must be linked to a milestone and a GitHub project, have the right labels and be assigned to someone.** 165 | 166 | You can discuss in a issue, do it as much as you can! 167 | 168 | ### Pull Requests 169 | 170 | **Each pull request must be linked to an issue and a GitHub project, have the right labels, be assigned to someone and have a reviewer.** 171 | 172 | You can discuss in a pull request, do it as much as you can! 173 | 174 | ### GitHub project 175 | 176 | **No tasks (issue) must be created directly from the GitHub project. Create an issue using a template, it will automatically appears on the GitHub project. Don't forget to archive the tasks once the milestone is closed.** 177 | 178 | It is a powerful tool, use it well! 179 | 180 | ### Releases 181 | 182 | **Each update on the main branch must be linked to a release.** 183 | 184 | Tag pull requests with the `patch`, `minor` or `major` labels. 185 | 186 | ## Notes 187 | 188 | ### Discord Webhook 189 | 190 | We strongly advice you to have a discord channel on which you will receive GitHub updates on your project. 191 | 192 | Follow this [tutorial](https://gist.github.com/SGTGunner/50d6a3cc0d489cf779f77695ba3e22ea). 193 | 194 | ### Security dependabot 195 | 196 | We strongly advice you to have a security dependabot to fix vulnerable dependencies. 197 | 198 | Follow this [tutorial](https://docs.github.com/en/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates#managing-dependabot-security-updates-for-your-repositories). 199 | 200 | ### Help 201 | 202 | If you have any questions, please contact [Reza Rahemtola](https://github.com/RezaRahemtola). 203 | 204 | > Made with ❤️ by PoC 205 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [2023] [PoC Innovation] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | --------------------------------------------------------------------------------