diff --git a/.github/.gitkeep b/.github/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..ab325fcb --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,17 @@ +#cpp code owners +cpp/ @/-cpp-codeowners + +#python code owners +python/ @/-python-codeowners + +#cmake code owners +**/CMakeLists.txt @/-cmake-codeowners +**/cmake/ @/-cmake-codeowners + +#build/ops code owners +.github/ @/ops-codeowners +ci/ @/ops-codeowners +conda/ @/ops-codeowners +**/Dockerfile @/ops-codeowners +**/.dockerignore @/ops-codeowners +docker/ @/ops-codeowners diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..64d1bcea --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,30 @@ +--- +name: Bug report +about: Create a bug report to help us improve DeepStream +title: "[BUG]" +labels: "? - Needs Triage, bug" +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**Steps/Code to reproduce bug** +Follow [this guide](http://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports) to craft a minimal bug report. This helps us reproduce the issue you're having and resolve the issue more quickly. + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Environment details (please complete the following information):** + - Environment location: [Bare-metal, Docker, Cloud(specify cloud provider)] + - Method of DeepStream install: [conda, Docker, pip, or from source] + - If method of install is [Docker], provide `docker pull` & `docker run` commands used + - Run `print_env.sh` from the project root and paste the results here + + +**Additional context** +Add any other context about the problem here. + +----- +By submitting this issue, you agree to follow our [code of conduct](https://docs.rapids.ai/resources/conduct/) and our [contributing guidelines](https://github.com/jarmak-nv/rapids-repo-template/blob/main/CONTRIBUTING.md). diff --git a/.github/ISSUE_TEMPLATE/bug_report_form.yml b/.github/ISSUE_TEMPLATE/bug_report_form.yml new file mode 100644 index 00000000..c6392e72 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report_form.yml @@ -0,0 +1,92 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# 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: Bug Report +description: File a bug report +title: "[BUG]: " +labels: ["bug"] + +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! + + - type: input + id: version + attributes: + label: Version + description: What version of DeepStream are you running? + placeholder: "example: 23.02" + validations: + required: true + + - type: dropdown + id: installation-method + attributes: + label: Which installation method(s) does this occur on? + multiple: true + options: + - Docker + - Conda + - Pip + - Source + + - type: textarea + id: description + attributes: + label: Describe the bug. + description: Also tell us, what did you expect to happen? + placeholder: XYZ occured, I expected QRS results + validations: + required: true + + - type: textarea + id: mvr + attributes: + label: Minimum reproducible example + description: Please supply a [minimum reproducible code example](https://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports) here + render: shell + + - type: textarea + id: logs + attributes: + label: Relevant log output + description: Please paste relevant error and log output here + render: shell + + - type: textarea + id: env-printout + attributes: + label: Full env printout + description: Please run and paste the output of the `print_env.sh` script here, to gather any other relevant environment details + render: shell + + - type: textarea + id: misc + attributes: + label: Other/Misc. + description: Please enter any other helpful information here. + + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: By submitting this issue, you agree to follow our [Code of Conduct](https://docs.rapids.ai/resources/conduct/) + options: + - label: I agree to follow __THIS PROJECT__'s Code of Conduct + required: true + - label: I have searched the [open bugs](https://github.com/jarmak-nv/issues?q=is%3Aopen+is%3Aissue+label%3Abug) and have found no duplicates for this bug report + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..259b6fa3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,11 @@ +# GitHub info on config.yml +# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#configuring-the-template-chooser +# Set to 'false' if you only want the templates to be used. +blank_issues_enabled: true + +# When using discussions instead of Question issue templates, +# link that below to have it show up in the 'Submit Issue' page +contact_links: + - name: Ask a Question + url: https://github.com/jarmak-nv/rapids-repo-template/discussions + about: Please ask any questions here. diff --git a/.github/ISSUE_TEMPLATE/documentation-request.md b/.github/ISSUE_TEMPLATE/documentation-request.md new file mode 100644 index 00000000..069636c0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation-request.md @@ -0,0 +1,42 @@ +--- +name: Documentation request +about: Report incorrect or needed documentation +title: "[DOC]" +labels: "? - Needs Triage, doc" +assignees: '' + +--- + + + + +## Report incorrect documentation + +**Location of incorrect documentation** +Provide links and line numbers if applicable. + +**Describe the problems or issues found in the documentation** +A clear and concise description of what you found to be incorrect. + +**Steps taken to verify documentation is incorrect** +List any steps you have taken: + +**Suggested fix for documentation** +Detail proposed changes to fix the documentation if you have any. + +--- + +## Report needed documentation + +**Report needed documentation** +A clear and concise description of what documentation you believe it is needed and why. + +**Describe the documentation you'd like** +A clear and concise description of what you want to happen. + +**Steps taken to search for needed documentation** +List any steps you have taken: + + +----- +By submitting this issue, you agree to follow our [code of conduct](https://docs.rapids.ai/resources/conduct/) and our [contributing guidelines](https://github.com/jarmak-nv/rapids-repo-template/blob/main/CONTRIBUTING.md). diff --git a/.github/ISSUE_TEMPLATE/documentation_request_correction.yml b/.github/ISSUE_TEMPLATE/documentation_request_correction.yml new file mode 100644 index 00000000..8743a8eb --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation_request_correction.yml @@ -0,0 +1,70 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# 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: Documentation - Correction/Update Request +description: Request corrections or updates to existing documentation +title: "[DOC]: " +labels: ["doc"] + +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to improve our documentation! + + - type: dropdown + id: criticality + attributes: + label: How would you describe the priority of this documentation request + options: + - Critical (currently preventing usage) + - High + - Medium + - Low (would be nice) + validations: + required: true + + - type: input + id: correction_location + attributes: + label: Please provide a link or source to the relevant docs + placeholder: "ex: https://github.com/jarmak-nv/rapids-repo-template/blob/main/README.md" + validations: + required: true + + - type: textarea + id: problem + attributes: + label: Describe the problems in the documentation + placeholder: The documents say to use foo.func(args) however an AttributeError is thrown + validations: + required: true + + - type: textarea + id: correction + attributes: + label: (Optional) Propose a correction + placeholder: foo.func() was deprecated, replace documentation with foo.new_func() + + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/jarmak-nv/rapids-repo-template/blob/main/CODE_OF_CONDUCT.md) + options: + - label: I agree to follow DeepStream's Code of Conduct + required: true + - label: I have searched the [open documentation issues](https://github.com/jarmak-nv/rapids-repo-template/issues?q=is%3Aopen+is%3Aissue+label%3Adoc) and have found no duplicates for this bug report + required: true diff --git a/.github/ISSUE_TEMPLATE/documentation_request_new.yml b/.github/ISSUE_TEMPLATE/documentation_request_new.yml new file mode 100644 index 00000000..84de7db5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation_request_new.yml @@ -0,0 +1,63 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# 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: Documentation - New Documentation Request +description: Request additions to DeepStream documentation +title: "[DOC]: " +labels: ["doc"] + +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to improve our documentation! + + - type: dropdown + id: criticality + attributes: + label: How would you describe the priority of this documentation request + options: + - Critical (currently preventing usage) + - High + - Medium + - Low (would be nice) + validations: + required: true + + - type: textarea + id: problem + attributes: + label: Describe the future/missing documentation + placeholder: A code snippet mentions function foo(args) but I cannot find any documentation on it. + validations: + required: true + + - type: textarea + id: search_locs + attributes: + label: Where have you looked? + placeholder: | + https://github.com/NVIDIA-GitHub-Management/PLC-OSS-Template/blob/main/README.md + + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/NVIDIA-GitHub-Management/PLC-OSS-Template/blob/main/CODE_OF_CONDUCT.md) + options: + - label: I agree to follow DeepStream's Code of Conduct + required: true + - label: I have searched the project's documentation and have found no duplicates for this bug report + required: true diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..1231e114 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,23 @@ +--- +name: Feature request +about: Suggest an idea for DeepStream +title: "[FEA]" +labels: "? - Needs Triage, feature request" +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I wish I could use DeepStream to do [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context, code examples, or references to existing implementations about the feature request here. + +----- +By submitting this issue, you agree to follow our [code of conduct](https://docs.rapids.ai/resources/conduct/) and our [contributing guidelines](https://github.com/jarmak-nv/rapids-repo-template/blob/main/CONTRIBUTING.md). diff --git a/.github/ISSUE_TEMPLATE/feature_request_form.yml b/.github/ISSUE_TEMPLATE/feature_request_form.yml new file mode 100644 index 00000000..45b23228 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request_form.yml @@ -0,0 +1,109 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# 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: Feature Request Form +description: Request new or improved functionality or changes to existing functionality +title: "[FEA]: " +labels: ["feature request"] + +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this feature request! + + - type: dropdown + id: new_or_improvement + attributes: + label: Is this a new feature, an improvement, or a change to existing functionality? + options: + - New Feature + - Improvement + - Change + validations: + required: true + + - type: dropdown + id: criticality + attributes: + label: How would you describe the priority of this feature request + options: + - Critical (currently preventing usage) + - High + - Medium + - Low (would be nice) + validations: + required: true + + - type: textarea + id: problem + attributes: + label: Please provide a clear description of problem this feature solves + description: Real usage examples are especially helpful, non-code. + validations: + required: true + + - type: textarea + id: Feature_Description + attributes: + label: Feature Description + description: Please provide clear description of the feature you request (refer to [User Story format](https://www.atlassian.com/agile/project-management/user-stories#:~:text=User%20story%20template%20and%20examples) and [EARS format](https://ieeexplore.ieee.org/document/5328509)) + placeholder: > + For new feature request, please use one of the following format to describe the feature + 1. From End-user perspective, use the following user story format + As a , I , . + 2. From System perspective, use the following EARS format + shall + For changing or improving existing feature, it's recommended to provide the previoius Feature Request ID. + validations: + required: true + + - type: textarea + id: solution + attributes: + label: Describe your ideal solution + description: Please describe the functionality you would like added. + placeholder: > + A new function that takes in the information in this form, and triages the issue + + def feature_request(form_info): + parse(form_info) + return triage_outcome + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: Describe any alternatives you have considered + description: List any other libraries, or approaches you have looked at or tried. + placeholder: I have looked at library xyz and qrs, but they do not offer GPU accleration + + - type: textarea + id: misc + attributes: + label: Additional context + description: Add any other context, code examples, or references to existing implementations about the feature request here. If applicable, please list the modules affected. + + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/NVIDIA/rapids-repo-template/blob/main/CODE_OF_CONDUCT.md) + options: + - label: I agree to follow DeepStream's Code of Conduct + required: true + - label: I have searched the [open feature requests](https://github.com/NVIDIA/rapids-repo-template/issues?q=is%3Aopen+is%3Aissue+label%3A%22feature+request%22%2Cimprovement%2Cenhancement) and have found no duplicates for this feature request + required: true diff --git a/.github/ISSUE_TEMPLATE/submit-question.md b/.github/ISSUE_TEMPLATE/submit-question.md new file mode 100644 index 00000000..b85c3faa --- /dev/null +++ b/.github/ISSUE_TEMPLATE/submit-question.md @@ -0,0 +1,14 @@ +--- +name: Submit question +about: Ask a general question about DeepStream +title: "[QST]" +labels: "? - Needs Triage, question" +assignees: '' + +--- + +**What is your question?** + + +----- +By submitting this issue, you agree to follow our [code of conduct](https://docs.rapids.ai/resources/conduct/) and our [contributing guidelines](https://github.com/jarmak-nv/rapids-repo-template/blob/main/CONTRIBUTING.md). diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..fa9a792f --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,9 @@ +## Description + + + + +## Checklist +- [ ] I am familiar with the [Contributing Guidelines](https://github.com/NVIDIA/rapids-repo-template/blob/HEAD/CONTRIBUTING.md). +- [ ] New or existing tests cover these changes. +- [ ] The documentation is up to date with these changes. diff --git a/.github/folder_README.md b/.github/folder_README.md new file mode 100644 index 00000000..01a27089 --- /dev/null +++ b/.github/folder_README.md @@ -0,0 +1,39 @@ +### DELETE PRIOR TO GOING LIVE +--- + +### Overview + +The .github folder houses: +- Issue templates +- PR template +- GitHub Actions +- Codeowners + +#### Issue Templates +These are the templates a user sees if they click `New Issue`. This repo has provided two template styles: +1. `.md` templates + - These are the simpler templates, use these as a _starting point_ for lightweight repos +1. `.yml` templates + - These are more complex `form` templates, they are clearer in what we expect from the user and are preferred when possible as we can enforce required fields + +Regardless of the issue template selected, some customization for each library is expected: +- Default assignees +- Default labels +- Do the prompts make sense for your repo? + +> **Warning** +> +> Be sure to delete whichever templates you are not using + + +#### PR Template +This is the default template that users see when they go to open a new PR in the repo. Customize as needed to fit the repo. Currently, there are no form-style PR templates, only plain markdown templates. + +#### GitHub Actions +GitHub Actions are automations that are triggered on specific events. Some commonly used actions: +- Run CI +- Auto-add issues to projects +- Auto-label external contributor issues/PRs + +#### Codeowners +This file defines individuals or teams that are responsible for code in a repository, you'll need to set up your teams first in the org, then add them to the codeowners. We're provided a template CODEOWNERS file here. diff --git a/.github/workflow-templates/add_issue_to_project.yml b/.github/workflow-templates/add_issue_to_project.yml new file mode 100644 index 00000000..cc68edf5 --- /dev/null +++ b/.github/workflow-templates/add_issue_to_project.yml @@ -0,0 +1,25 @@ +name: Add new issue/PR to project +# This action automatically takes all issues and PRs created in the repo and +# adds them to a specific GitHub project + +on: + issues: + types: + - opened + + pull_request_target: + types: + - opened + +jobs: + add-to-project: + name: Add issue or PR to project + runs-on: ubuntu-latest + steps: + - uses: actions/add-to-project@latest + with: + # copy the URL to the project-url field + # you will need a personal access token, or to create a GitHub app to support this action + # https://github.com/actions/add-to-project#creating-a-pat-and-adding-it-to-your-repository + project-url: PROJECT_URL_LINK + github-token: ${{ secrets.__PROJECTSECRET__ }} diff --git a/.github/workflow-templates/add_issue_to_project_raw.yml b/.github/workflow-templates/add_issue_to_project_raw.yml new file mode 100644 index 00000000..837303c5 --- /dev/null +++ b/.github/workflow-templates/add_issue_to_project_raw.yml @@ -0,0 +1,45 @@ +name: Add issue to project +on: + issues: + types: + - opened +jobs: + track_issue: + runs-on: ubuntu-latest + steps: + - name: Get project data + env: + # Need a PAT or GH App to authenticate + # https://docs.github.com/en/issues/planning-and-tracking-with-projects/automating-your-project/automating-projects-using-actions + GH_TOKEN: ${{ secrets.YOUR_SECRET }} + # ex: https://github.com/orgs/NVIDIA/projects/41 + # use ORGANIZATION: NVIDIA, PROJECT_NUMBER 41 + ORGANIZATION: YOUR_ORG + PROJECT_NUMBER: YOUR_PROJECT_NUMBER + run: | + gh api graphql -f query=' + query($user: String!, $number: Int!) { + user(login: $user){ + projectV2(number: $number) { + id + } + } + }' -f user=$USER -F number=$PROJECT_NUMBER > project_data.json + echo 'PROJECT_ID='$(jq '.data.user.projectV2.id' project_data.json) >> $GITHUB_ENV + + - name: Add issue to project + env: + # Replace with your secret here too + GITHUB_TOKEN: ${{ secrets.YOUR_SECRET }} + ISSUE_ID: ${{ github.event.issue.node_id }} + run: | + item_id="$( gh api graphql -f query=' + mutation($project:ID!, $issue:ID!) { + addProjectV2ItemById(input: {projectId: $project, contentId: $issue}) { + item { + id + } + } + }' -f project=$PROJECT_ID -f issue=$ISSUE_ID --jq '.data.addProjectV2ItemById.item.id')" + + echo 'ITEM_ID='$item_id >> $GITHUB_ENV diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..2f2a48a6 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,13 @@ +# DeepStream 0.0.0 (DD Mon YYYY) + +## New Features + +- ... + +## Improvements + +- ... + +## Bug Fixes + +- ... diff --git a/CITATION.md b/CITATION.md new file mode 100644 index 00000000..7e0ca57d --- /dev/null +++ b/CITATION.md @@ -0,0 +1,43 @@ +# Citation Guide + +## To Cite the Project +If you use the Project in a publication, please use citations in the following format (BibTeX entry for LaTeX): +```tex +@Manual{, + title = {Project_Name: Collection of Libraries for End to End GPU Data Science}, + author = {Project_Name Development Team}, + year = {2018}, + url = {Project_url}, +} +``` + + +## Sample Citations: + +### Bringing UMAP Closer to the Speed of Light
with GPU Acceleration +```tex +@misc{ + nolet2020bringing, + title={Bringing UMAP Closer to the Speed of Light with GPU Acceleration}, + author={Corey J. Nolet, Victor Lafargue, Edward Raff, Thejaswi Nanditale, Tim Oates, John Zedlewski, and Joshua Patterson}, + year={2020}, + eprint={2008.00325}, + archivePrefix={arXiv}, + primaryClass={cs.LG} +} +``` + +### Machine Learning in Python:
Main developments and technology trends in data science, machine learning, and artificial intelligence +```tex +@article{ + raschka2020machine, + title={Machine Learning in Python: Main developments and technology trends in data science, machine learning, and artificial intelligence}, + author={Raschka, Sebastian and Patterson, Joshua and Nolet, Corey}, + journal={Information}, + volume={11}, + number={4}, + pages={193}, + year={2020}, + publisher={Multidisciplinary Digital Publishing Institute} +} +``` diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..ef263611 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,84 @@ +# Contributor Covenant Code of Conduct + +## Overview + +Define the code of conduct followed and enforced for DeepStream. + +### Intended audience + +Community | Developers | Project Leads + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting GitHub_Conduct@nvidia.com. All complaints will be reviewed and +investigated and will result in a response that is deemed necessary and appropriate +to the circumstances. The project team is obligated to maintain confidentiality with +regard to the reporter of an incident. Further details of specific enforcement policies +may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..1a89b905 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2020 NVIDIA Corporation + + 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. diff --git a/README.md b/README.md index 56b69ecf..16a1dcea 100644 --- a/README.md +++ b/README.md @@ -1,88 +1,4 @@ -# __NVIDIA_OSS__ Standard Repo Template - -This README file is from the NVIDIA_OSS standard repo template of [PLC-OSS-Template](https://github.com/NVIDIA-GitHub-Management/PLC-OSS-Template?tab=readme-ov-file). It provides a list of files in the PLC-OSS-Template and guidelines on how to use (clone and customize) them. - -**Upon completing the customization for the project repo, the repo admin should replace this README template with the project specific README file.** - -- Files (org-wide templates in the NVIDIA .github org repo; per-repo overrides allowed) in [PLC-OSS-Template](https://github.com/NVIDIA-GitHub-Management/PLC-OSS-Template?tab=readme-ov-file) - - - Root - - README.md skeleton (CTA + Quickstart + Support/Security/Governance links) - - LICENSE (Apache 2.0 by default) - - For other licenses, see the [Confluence page](https://confluence.nvidia.com/pages/viewpage.action?pageId=788418816) for other licenses - - CLA.md file (delete if not using MIT or BSD licenses) - - CODE_OF_CONDUCT.md - - SECURITY.md (vuln reporting path) - - CONTRIBUTING.md (base; repo can add specifics) - - SUPPORT.md (Support levels/channels) - - GOVERNANCE.md (baseline; repo may extend) - - CITATION.md (for projects that need citation) - - - .github/ - - ISSUE_TEMPLATE/ () - - bug.yml, feature.yml, task.yml, config.yml - - PULL_REQUEST_TEMPLATE.md () - - workflows/ - - Note: workflow-templates/ for starter workflows should live in the org-level .github repo, not per-repo - - - Repo-specific (not org-template, maintained by the team) - - CODEOWNERS (place at .github/CODEOWNERS or repo root) - - CHANGELOG.md (or RELEASE.md) - - ROADMAP.md - - MAINTAINERS.md - - NOTICE or THIRD_PARTY_NOTICES / THIRD_PARTY_LICENSES (dependency specific) - - Build/package files (CMake, pyproject, Dockerfile, etc.) - - - Recommended structure and hygiene - - docs/ - - examples/ - - tests/ - - scripts/ - - Container/dev env: Dockerfile, docker/, .devcontainer/ (optional) - - Build/package (language-specific): - - Python: pyproject.toml, setup.cfg/setup.py, requirements.txt, environment.yml - - C++: CMakeLists.txt, cmake/, vcpkg.json - - Repo hygiene: .gitignore, .gitattributes, .editorconfig, .pre-commit-config.yaml, .clang-format - - -## Usage of [PLC-OSS-Template](https://github.com/NVIDIA-GitHub-Management/PLC-OSS-Template?tab=readme-ov-file) for NEW NVIDIA OSS repos - -1. Clone the [PLC-OSS-Template](https://github.com/NVIDIA-GitHub-Management/PLC-OSS-Template?tab=readme-ov-file) -2. Find/replace all in the clone of `___PROJECT___` and `__PROJECT_NAME__` with the name of the specific project. -3. Inspect all files to make sure all replacements work and update text as needed - - -**What you can reuse immediately** -- CODE_OF_CONDUCT.md -- SECURITY.md -- CONTRIBUTING.md (base) -- .github/ISSUE_TEMPLATE/.yml (bug/feature/task + config.yml) -- .github/PULL_REQUEST_TEMPLATE.md -- Reusable workflows - -**What you must customize per repo** -- README.md: copy the skeleton and fill in product-specific details (Quickstart, Requirements, Usage, Support level, links) -- LICENSE: check file is correct, update year, consult Confluence for alternatives https://confluence.nvidia.com/pages/viewpage.action?pageId=788418816, add CLA.md only if your license/process requires it -- CODEOWNERS: replace with your GitHub team handle(s). Place at .github/CODEOWNERS (or repo root) -- MAINTAINERS.md: list maintainers names/roles, escalation path -- CHANGELOG.md (or RELEASE.md): track releases/changes -- SUPPORT.md: Update for your project -- ROADMAP.md (optional): upcoming milestones -- NOTICE / THIRD_PARTY_NOTICES (if you ship third‑party content) -- Build/package files (CMake/pyproject/Dockerfile/etc.), tests/, docs/, examples/, scripts/ as appropriate -- Workflows: Edit if you need custom behavior - - -4. Change git origin to point to new repo and push -5. Remove the line break below and everything above it - -## Usage for existing NVIDIA OSS repos - -1. Follow the steps above, but add the files to your existing repo and merge - - ------------------------------------------ -# [Project Title] +# DeepStream One-sentence value proposition for users. Who is it for, and why it matters. # Overview @@ -123,12 +39,8 @@ Summary of benchmarks; link to detailed results and hardware used. - (Optional) Next milestones or link to `ROADMAP.md`. # Contribution Guidelines -- Start here: `CONTRIBUTING.md` -- Code of Conduct: `CODE_OF_CONDUCT.md` -- Development quickstart (build/test): -```bash - && && -``` +This project is currently not accepting contributions. + ## Governance & Maintainers - Governance: `GOVERNANCE.md` - Maintainers: @@ -150,5 +62,5 @@ Provide the channel for community communications. Provide a list of related references # License -This project is licensed under the [NAME HERE] License - see the LICENSE.md file for details -- License: +This project is licensed under the Apache 2.0 License - see the LICENSE file for details +- SPDX-License-Identifier: Apache-2.0 diff --git a/print_env.sh b/print_env.sh new file mode 100755 index 00000000..cdd9cf00 --- /dev/null +++ b/print_env.sh @@ -0,0 +1,88 @@ +#!/usr/bin/env bash +# Copyright (c) 2023, NVIDIA CORPORATION. +# Reports relevant environment information useful for diagnosing and +# debugging DeepStream issues. +# Usage: +# "./print_env.sh" - prints to stdout +# "./print_env.sh > env.txt" - prints to file "env.txt" + +print_env() { +echo "**git***" +if [ "$(git rev-parse --is-inside-work-tree 2>/dev/null)" == "true" ]; then +git log --decorate -n 1 +echo "**git submodules***" +git submodule status --recursive +else +echo "Not inside a git repository" +fi +echo + +echo "***OS Information***" +cat /etc/*-release +uname -a +echo + +echo "***GPU Information***" +nvidia-smi +echo + +echo "***CPU***" +lscpu +echo + +echo "***CMake***" +which cmake && cmake --version +echo + +echo "***g++***" +which g++ && g++ --version +echo + +echo "***nvcc***" +which nvcc && nvcc --version +echo + +echo "***Python***" +which python && python -c "import sys; print('Python {0}.{1}.{2}'.format(sys.version_info[0], sys.version_info[1], sys.version_info[2]))" +echo + +echo "***Environment Variables***" + +printf '%-32s: %s\n' PATH $PATH + +printf '%-32s: %s\n' LD_LIBRARY_PATH $LD_LIBRARY_PATH + +printf '%-32s: %s\n' NUMBAPRO_NVVM $NUMBAPRO_NVVM + +printf '%-32s: %s\n' NUMBAPRO_LIBDEVICE $NUMBAPRO_LIBDEVICE + +printf '%-32s: %s\n' CONDA_PREFIX $CONDA_PREFIX + +printf '%-32s: %s\n' PYTHON_PATH $PYTHON_PATH + +echo + + +# Print conda packages if conda exists +if type "conda" &> /dev/null; then +echo '***conda packages***' +which conda && conda list +echo +# Print pip packages if pip exists +elif type "pip" &> /dev/null; then +echo "conda not found" +echo "***pip packages***" +which pip && pip list +echo +else +echo "conda not found" +echo "pip not found" +fi +} + +echo "
Click here to see environment details
"
+echo "     "
+print_env | while read -r line; do
+    echo "     $line"
+done
+echo "
" diff --git a/skills/.gitkeep b/skills/.gitkeep deleted file mode 100644 index e69de29b..00000000