From e10ee11be7a3bd7271a760c96c3ba68eeb275bb0 Mon Sep 17 00:00:00 2001 From: Paul Schmiedmayer Date: Thu, 17 Nov 2022 00:00:15 -0800 Subject: [PATCH] Initial commit --- .github/ISSUE_TEMPLATE/bug_report.yml | 55 +++++++ .github/ISSUE_TEMPLATE/config.yml | 13 ++ .github/ISSUE_TEMPLATE/internal_change.yml | 47 ++++++ .github/ISSUE_TEMPLATE/major_feature.yml | 63 ++++++++ .github/ISSUE_TEMPLATE/minor_feature.yml | 47 ++++++ .github/pull_request_template.md | 40 +++++ .github/release.yml | 23 +++ .github/workflows/build-and-test-spm.yml | 72 +++++++++ .../build-and-test-xcodebuild-spm.yml | 56 +++++++ .../workflows/build-and-test-xcodebuild.yml | 61 ++++++++ .../create-and-upload-coverage-report.yml | 47 ++++++ .github/workflows/docker-build-and-push | 118 +++++++++++++++ .github/workflows/docs.yml | 89 +++++++++++ .github/workflows/reuse.yml | 22 +++ .github/workflows/spm-update.yml | 72 +++++++++ .github/workflows/swiftlint.yml | 26 ++++ .gitignore | 10 ++ CODE_OF_CONDUCT.md | 142 ++++++++++++++++++ CONTRIBUTING.md | 37 +++++ CONTRIBUTORS.md | 14 ++ FUNDING.yml | 9 ++ LICENSES/MIT.txt | 9 ++ README.md | 13 ++ SECURITY.md | 16 ++ SUPPORT.md | 18 +++ assets/biodesign-footer-dark.png | Bin 0 -> 56819 bytes assets/biodesign-footer-dark.png.license | 5 + assets/biodesign-footer-light.png | Bin 0 -> 58797 bytes assets/biodesign-footer-light.png.license | 5 + profile/README.md | 16 ++ 30 files changed, 1145 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/internal_change.yml create mode 100644 .github/ISSUE_TEMPLATE/major_feature.yml create mode 100644 .github/ISSUE_TEMPLATE/minor_feature.yml create mode 100644 .github/pull_request_template.md create mode 100644 .github/release.yml create mode 100644 .github/workflows/build-and-test-spm.yml create mode 100644 .github/workflows/build-and-test-xcodebuild-spm.yml create mode 100644 .github/workflows/build-and-test-xcodebuild.yml create mode 100644 .github/workflows/create-and-upload-coverage-report.yml create mode 100644 .github/workflows/docker-build-and-push create mode 100644 .github/workflows/docs.yml create mode 100644 .github/workflows/reuse.yml create mode 100644 .github/workflows/spm-update.yml create mode 100644 .github/workflows/swiftlint.yml create mode 100644 .gitignore create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 CONTRIBUTORS.md create mode 100644 FUNDING.yml create mode 100644 LICENSES/MIT.txt create mode 100644 README.md create mode 100644 SECURITY.md create mode 100644 SUPPORT.md create mode 100644 assets/biodesign-footer-dark.png create mode 100644 assets/biodesign-footer-dark.png.license create mode 100644 assets/biodesign-footer-light.png create mode 100644 assets/biodesign-footer-light.png.license create mode 100644 profile/README.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..5ee7f48 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,55 @@ +# +# This source file is part of the Stanford Biodesign for Digital Health open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford Biodesign for Digital Health and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +name: 🐛 Bug report +description: File a bug report +title: "🐛 Bug report: Remove this title with a descriptive title." +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! + - type: textarea + id: description + attributes: + label: Description + description: Please provide a description of the bug you encountered. + placeholder: A clear and concise description of the bug. + validations: + required: true + - type: textarea + id: reproduction + attributes: + label: Reproduction + description: Please provide a description of how to reproduce the bug. + placeholder: A description of how to reproduce the bug. + validations: + required: true + - type: textarea + id: expectedbehavior + attributes: + label: Expected behavior + description: Please provide a clear and concise description of what you expected to happen. + placeholder: A clear and concise description of what you expected to happen. + validations: + required: true + - type: textarea + id: additionalcontext + attributes: + label: Additional context + description: Please provide any additional context that might be relevant for your bug report. + placeholder: Any additional context that might be relevant for your bug report. + - 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/StanfordBDHG/.github/blob/main/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/StanfordBDHG/.github/blob/main/CONTRIBUTING.md) + options: + - label: I agree to follow this project's Code of Conduct and Contributing Guidelines + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..802b9b5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,13 @@ +# +# This source file is part of the Stanford Biodesign for Digital Health open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford Biodesign for Digital Health and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +blank_issues_enabled: false +contact_links: + - name: Discussions & Support + url: https://github.com/orgs/StanfordBDHG/discussions + about: We use GitHub Discussions for any discussions and support diff --git a/.github/ISSUE_TEMPLATE/internal_change.yml b/.github/ISSUE_TEMPLATE/internal_change.yml new file mode 100644 index 0000000..d6b37da --- /dev/null +++ b/.github/ISSUE_TEMPLATE/internal_change.yml @@ -0,0 +1,47 @@ +# +# This source file is part of the Stanford Biodesign for Digital Health open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford Biodesign for Digital Health and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +name: 💾 Internal change +description: Suggest an internal improvement for this project +title: "💾 Internal change: Remove this title with a descriptive title." +labels: ["enhancement"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to suggest an internal improvement for this project! + - type: textarea + id: problem + attributes: + label: Problem + description: Please provide a description of the problem the improvement will address. + placeholder: A description of the problem the improvement will address. + validations: + required: true + - type: textarea + id: solution + attributes: + label: Solution + description: Please provide a clear and concise description of the improvement and how it should work. + placeholder: A clear and concise description of the improvement and how it should work. + validations: + required: true + - type: textarea + id: additionalcontext + attributes: + label: Additional context + description: Please provide any additional context that might be relevant for your improvement. + placeholder: Any additional context that might be relevant for your improvement. + - 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/StanfordBDHG/.github/blob/main/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/StanfordBDHG/.github/blob/main/CONTRIBUTING.md) + options: + - label: I agree to follow this project's Code of Conduct and Contributing Guidelines + required: true diff --git a/.github/ISSUE_TEMPLATE/major_feature.yml b/.github/ISSUE_TEMPLATE/major_feature.yml new file mode 100644 index 0000000..7d82388 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/major_feature.yml @@ -0,0 +1,63 @@ +# +# This source file is part of the Stanford Biodesign for Digital Health open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford Biodesign for Digital Health and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +name: 🚀 Major feature request +description: Suggest a new idea for this project +title: "🚀 Major feature request: Remove this title with a descriptive title." +labels: ["enhancement", "major version bump"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to share the major feature request! + - type: textarea + id: usecase + attributes: + label: Use Case + description: Please provide a description of the use case or context in which the feature will be used. + placeholder: A clear and concise description of the use case or context in which the feature will be used. + validations: + required: true + - type: textarea + id: problem + attributes: + label: Problem + description: Please provide a description of the problem the feature will address. + placeholder: A description of the problem the feature will address. + validations: + required: true + - type: textarea + id: solution + attributes: + label: Solution + description: Please provide a clear and concise description of the feature and how it should work. + placeholder: A clear and concise description of the feature and how it should work. + validations: + required: true + - type: textarea + id: alternatives + attributes: + label: Alternatives considered + description: Please provide a clear and concise description of any alternative solutions or features you've considered. Is there already software that has the behavior you're interested in? What is it, and how does it work? + placeholder: A clear and concise description of any alternative solutions or features you've considered. Is there already software that has the behavior you're interested in? What is it, and how does it work? + validations: + required: true + - type: textarea + id: additionalcontext + attributes: + label: Additional context + description: Please provide any additional context that might be relevant for your feature report + placeholder: Any additional context that might be relevant for your feature report + - 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/StanfordBDHG/.github/blob/main/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/StanfordBDHG/.github/blob/main/CONTRIBUTING.md) + options: + - label: I agree to follow this project's Code of Conduct and Contributing Guidelines + required: true diff --git a/.github/ISSUE_TEMPLATE/minor_feature.yml b/.github/ISSUE_TEMPLATE/minor_feature.yml new file mode 100644 index 0000000..4ab245f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/minor_feature.yml @@ -0,0 +1,47 @@ +# +# This source file is part of the Stanford Biodesign for Digital Health open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford Biodesign for Digital Health and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +name: 🏎 Minor feature request +description: Suggest an improvement for this project +title: "🏎 Minor feature request: Remove this title with a descriptive title." +labels: ["enhancement", "minor version bump"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to share the minor feature request! + - type: textarea + id: problem + attributes: + label: Problem + description: Please provide a description of the problem the feature will address. + placeholder: A description of the problem the feature will address. + validations: + required: true + - type: textarea + id: solution + attributes: + label: Solution + description: Please provide a clear and concise description of the feature and how it should work. + placeholder: A clear and concise description of the feature and how it should work. + validations: + required: true + - type: textarea + id: additionalcontext + attributes: + label: Additional context + description: Please provide any additional context that might be relevant for your feature report. + placeholder: Any additional context that might be relevant for your feature report. + - 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/StanfordBDHG/.github/blob/main/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/StanfordBDHG/.github/blob/main/CONTRIBUTING.md) + options: + - label: I agree to follow this project's Code of Conduct and Contributing Guidelines + required: true diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..2ea0868 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,40 @@ + + +# *Name of the PR* + +## :recycle: Current situation & Problem +*Describe the current situation (if possible, with an exemplary (or real) code snippet and/or where this is used)* +*Please link any open issue that is addressed with this PR* + +## :bulb: Proposed solution +*Describe the solution and how this affects the project and internal structure* + +## :gear: Release Notes +*Add a summary of the feature and possible migration guides if this is a breaking change so this section can be added to the release notes.* +*Include code snippets that provide examples of the feature implemented if it appends or changes the public interface.* + +## :heavy_plus_sign: Additional Information +*Provide some additional information if possible* + +### Related PRs +*Reference the related PRs* + +### Testing +*Are there tests included? If yes, which situations are tested, and which corner cases are missing?* + +### Reviewer Nudging +*Where should the reviewer start? Where is a good entry point?* + +### Code of Conduct & Contributing Guidelines + +By submitting creating this pull request, you agree to follow our [Code of Conduct](https://github.com/StanfordBDHG/.github/blob/main/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/StanfordBDHG/.github/blob/main/CONTRIBUTING.md): +- [ ] I agree to follow the [Code of Conduct](https://github.com/StanfordBDHG/.github/blob/main/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/StanfordBDHG/.github/blob/main/CONTRIBUTING.md). + diff --git a/.github/release.yml b/.github/release.yml new file mode 100644 index 0000000..d986a94 --- /dev/null +++ b/.github/release.yml @@ -0,0 +1,23 @@ +# +# This source file is part of the Stanford Biodesign for Digital Health open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford Biodesign for Digital Health and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +changelog: + exclude: + authors: + - PaulsAutomationBot + categories: + - title: Semantic Version Major + labels: + - major version bump + - title: Semantic Version Minor + labels: + - bug + - enhancement + - title: Other Changes + labels: + - "*" diff --git a/.github/workflows/build-and-test-spm.yml b/.github/workflows/build-and-test-spm.yml new file mode 100644 index 0000000..717829a --- /dev/null +++ b/.github/workflows/build-and-test-spm.yml @@ -0,0 +1,72 @@ +# +# This source file is part of the Stanford Biodesign for Digital Health open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford Biodesign for Digital Health and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +name: Build and Test Swift Package Manager + +on: + workflow_call: + inputs: + path: + description: 'The path where the Swift Package is located. Defaults to $GITHUB_WORKSPACE' + required: false + type: string + default: '.' + packagename: + description: 'Name of the package required for generating a test coverage' + required: true + type: string + test: + description: 'A flag indicating if the Swift package contains tests' + required: false + type: boolean + default: true + +jobs: + macos: + name: macOS ${{ matrix.configuration }} + runs-on: macos-12 + strategy: + fail-fast: false + matrix: + configuration: [debug, release, release_testing] + defaults: + run: + working-directory: ${{ inputs.path }} + steps: + - uses: actions/checkout@v3 + - uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: latest-stable + - name: Check Environment + run: | + xcodebuild -version + swift --version + echo "inputs.packagename: ${{ inputs.packagename }}" + echo "inputs.path: ${{ inputs.path }}" + echo "inputs.test: ${{ inputs.test }}" + echo "matrix.configuration: ${{ matrix.configuration }}" + echo "cache key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}" + - uses: actions/cache@v3 + with: + path: .build + key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }} + - name: Release Build + if: matrix.configuration == 'release' + run: swift build -c release + - name: Release Build & Test + if: matrix.configuration == 'release_testing' && inputs.test + run: swift test -c release -Xswiftc -enable-testing -Xswiftc -DRELEASE_TESTING + - name: Debug Build & Test + if: matrix.configuration == 'debug' && inputs.test + run: swift test -c debug --enable-code-coverage -Xswiftc -DCOVERAGE + - name: Convert coverage report + if: matrix.configuration == 'debug' && inputs.test + run: xcrun llvm-cov export -format="lcov" .build/debug/${{ inputs.packagename }}PackageTests.xctest/Contents/MacOS/${{ inputs.packagename }}PackageTests -instr-profile .build/debug/codecov/default.profdata > coverage.lcov + - name: Upload coverage to Codecov + if: matrix.configuration == 'debug' && inputs.test + uses: codecov/codecov-action@v3 \ No newline at end of file diff --git a/.github/workflows/build-and-test-xcodebuild-spm.yml b/.github/workflows/build-and-test-xcodebuild-spm.yml new file mode 100644 index 0000000..9dcc457 --- /dev/null +++ b/.github/workflows/build-and-test-xcodebuild-spm.yml @@ -0,0 +1,56 @@ +# +# This source file is part of the Stanford Biodesign for Digital Health open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford Biodesign for Digital Health and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +name: Build and Test Swift Package using Xcodebuild + +on: + workflow_call: + inputs: + path: + description: 'The path where the Swift Package is located. Defaults to $GITHUB_WORKSPACE' + required: false + type: string + default: '.' + scheme: + description: 'Name of the Scheme used to build the Swift Package' + required: false + type: string + default: '' + +jobs: + build_and_test: + name: Build and Test Swift Package + runs-on: macos-12 + defaults: + run: + working-directory: ${{ inputs.path }} + steps: + - uses: actions/checkout@v3 + - uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: latest-stable + - name: Check Environment + run: | + xcodebuild -version + swift --version + echo "inputs.path: ${{ inputs.path }}" + echo "inputs.scheme: ${{ inputs.scheme }}" + - name: Build and Test + run: | + xcodebuild test \ + -scheme ${{ inputs.scheme }} \ + -sdk iphonesimulator \ + -destination "name=iPhone 14 Pro Max" \ + -enableCodeCoverage YES \ + -resultBundlePath ${{ inputs.scheme }}.xcresult \ + CODE_SIGNING_ALLOWED="NO" + - name: Upload Artifact + uses: actions/upload-artifact@v3 + with: + name: ${{ inputs.scheme }}.xcresult + path: ${{ inputs.scheme }}.xcresult diff --git a/.github/workflows/build-and-test-xcodebuild.yml b/.github/workflows/build-and-test-xcodebuild.yml new file mode 100644 index 0000000..026bd3b --- /dev/null +++ b/.github/workflows/build-and-test-xcodebuild.yml @@ -0,0 +1,61 @@ +# +# This source file is part of the Stanford Biodesign for Digital Health open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford Biodesign for Digital Health and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +name: Build and Test iOS Application Xcodebuild + +on: + workflow_call: + inputs: + path: + description: 'The path where the Swift Package is located. Defaults to $GITHUB_WORKSPACE' + required: false + type: string + default: '.' + xcodeprojname: + description: 'The name of the Xcode project used to build the iOS application' + required: true + type: string + scheme: + description: 'The scheme in the Xcode project' + required: true + type: string + +jobs: + build_and_test: + name: Build and Test iOS Application + runs-on: macos-12 + defaults: + run: + working-directory: ${{ inputs.path }} + steps: + - uses: actions/checkout@v3 + - uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: latest-stable + - name: Check Environment + run: | + xcodebuild -version + swift --version + echo "inputs.xcodeprojname: ${{ inputs.xcodeprojname }}" + echo "inputs.scheme: ${{ inputs.scheme }}" + - name: Build and Test Example App + run: | + xcodebuild test \ + -project ${{ inputs.xcodeprojname }} \ + -scheme ${{ inputs.scheme }} \ + -destination 'name=iPhone 14 Pro Max' \ + -enableCodeCoverage YES \ + -resultBundlePath ${{ inputs.scheme }}.xcresult \ + CODE_SIGN_IDENTITY="" \ + CODE_SIGNING_REQUIRED=NO + - name: Upload Artifact + if: always() + uses: actions/upload-artifact@v3 + with: + name: ${{ inputs.scheme }}.xcresult + path: ${{ inputs.scheme }}.xcresult diff --git a/.github/workflows/create-and-upload-coverage-report.yml b/.github/workflows/create-and-upload-coverage-report.yml new file mode 100644 index 0000000..263d782 --- /dev/null +++ b/.github/workflows/create-and-upload-coverage-report.yml @@ -0,0 +1,47 @@ +# +# This source file is part of the Stanford Biodesign for Digital Health open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford Biodesign for Digital Health and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +name: Create and Upload Coverage Report + +on: + workflow_call: + inputs: + coveragereports: + description: 'A string containing all names of the .xcresult files that are downloaded from the artifacts of previous jobs.' + required: true + type: string + secrets: + token: + description: 'The CodeCov token used for private repositories' + required: false + +jobs: + create-and-upload-coverage-report: + name: Create and Upload Coverage Report + runs-on: macos-12 + steps: + - uses: actions/checkout@v3 + - uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: latest-stable + - name: Check Environment + run: | + xcodebuild -version + swift --version + - uses: actions/download-artifact@v3 + - name: Merge Coverage Reports + run: | + xcrun xcresulttool merge ${{ inputs.coveragereports }} --output-path CodeCoverage.xcresult + rm -rf ${{ inputs.coveragereports }} + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v3 + with: + fail_ci_if_error: true + token: ${{ secrets.token }} + xcode: true + xcode_archive_path: CodeCoverage.xcresult \ No newline at end of file diff --git a/.github/workflows/docker-build-and-push b/.github/workflows/docker-build-and-push new file mode 100644 index 0000000..7ac34e9 --- /dev/null +++ b/.github/workflows/docker-build-and-push @@ -0,0 +1,118 @@ +# +# This source file is part of the Stanford Biodesign for Digital Health open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford Biodesign for Digital Health and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +name: Docker Build and Push + +on: + workflow_call: + inputs: + docker-file: + description: 'Path or name of the Docker file. The default values is `Dockerfile`. The docker file can use the `baseimage` to get an architecture specific Swift base image' + required: false + type: string + default: 'Dockerfile' + image-name: + description: 'The name used to tag the docker image on ghcr.io containing the organzation/account name and the name of the image, e.g.: apodini/example' + required: true + type: string + working-directory: + description: 'The working-directory of the GitHub Action. Defaults to $GITHUB_WORKSPACE' + required: false + type: string + default: '.' + +jobs: + dockerARM64: + name: Docker Build and Push Image ARM64 + runs-on: ubuntu-latest + defaults: + run: + working-directory: ${{ inputs.working-directory }} + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Get latest tag + id: latesttag + uses: WyriHaximus/github-action-get-previous-tag@v1 + with: + fallback: latest + - name: Log in to the container registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Build and push docker image + id: buildandpush + uses: docker/build-push-action@v3 + with: + context: . + platforms: linux/arm64 + file: ${{ inputs.docker-file }} + push: true + tags: ghcr.io/${{ inputs.image-name }}:latest-arm64,ghcr.io/${{ inputs.image-name }}:${{ steps.latesttag.outputs.tag }}-arm64 + dockerAMD64: + name: Docker Build and Push Image AMD64 + runs-on: ubuntu-latest + defaults: + run: + working-directory: ${{ inputs.working-directory }} + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Get latest tag + id: latesttag + uses: WyriHaximus/github-action-get-previous-tag@v1 + with: + fallback: latest + - name: Log in to the container registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Build and push docker image + id: buildandpush + uses: docker/build-push-action@v3 + with: + context: . + file: ${{ inputs.docker-file }} + push: true + tags: ghcr.io/${{ inputs.image-name }}:latest-amd64,ghcr.io/${{ inputs.image-name }}:${{ steps.latesttag.outputs.tag }}-amd64 + dockermanifest: + needs: [dockerARM64, dockerAMD64] + name: Create Multi-CPU Architecture Image + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v2 + - name: Get latest tag + id: latesttag + uses: WyriHaximus/github-action-get-previous-tag@v1 + with: + fallback: latest + - name: Log in to the container registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Create and Push Multi Architecture Image + run: | + docker manifest create ghcr.io/${{ inputs.image-name }}:latest \ + --amend ghcr.io/${{ inputs.image-name }}:latest-amd64 \ + --amend ghcr.io/${{ inputs.image-name }}:latest-arm64 + docker manifest create ghcr.io/${{ inputs.image-name }}:${{ steps.latesttag.outputs.tag }} \ + --amend ghcr.io/${{ inputs.image-name }}:${{ steps.latesttag.outputs.tag }}-amd64 \ + --amend ghcr.io/${{ inputs.image-name }}:${{ steps.latesttag.outputs.tag }}-arm64 + docker manifest push ghcr.io/${{ inputs.image-name }}:latest + docker manifest push ghcr.io/${{ inputs.image-name }}:${{ steps.latesttag.outputs.tag }} diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..b5bceda --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,89 @@ +# +# This source file is part of the Stanford Biodesign for Digital Health open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford Biodesign for Digital Health and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +name: Generate DocC Documentation Using the Swift Package Manager + +on: + workflow_call: + inputs: + scheme: + description: 'Name of the Scheme used to build the documentation' + required: false + type: string + default: '' + targetname: + description: 'Name of the Swift Package Manager target using DocC' + required: true + type: string + usexcodebuild: + description: 'A flag indicating if the DocC documentation should be generated using DocC' + required: false + type: boolean + default: true + +jobs: + generate: + name: Generate DocC Documentation + runs-on: macos-12 + steps: + - uses: actions/checkout@v3 + - uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: latest-stable + - uses: actions/cache@v2 + if: inputs.usexcodebuild == false + with: + path: .build + key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }} + - name: Check Environment + run: | + xcodebuild -version + swift --version + echo "inputs.scheme: ${{ inputs.scheme }}" + echo "inputs.targetname: ${{ inputs.targetname }}" + echo "github.event.repository.name: ${{ github.event.repository.name }}" + - name: Generate Documentation + if: inputs.usexcodebuild == false + run: | + swift package --allow-writing-to-directory ./docs \ + generate-documentation --target ${{ inputs.targetname }} \ + --disable-indexing \ + --transform-for-static-hosting \ + --hosting-base-path ${{ github.event.repository.name }} \ + --output-path ./docs + - name: Generate Documentation Using Xcodebuild + if: inputs.usexcodebuild + run: | + INPUT_SCHEME=${{ inputs.scheme }} + SCHEME=${INPUT_SCHEME:-"${{ inputs.targetname }}-Package"} + xcodebuild docbuild \ + -scheme $SCHEME \ + -sdk iphonesimulator \ + -destination "name=iPhone 14 Pro Max" \ + -derivedDataPath .xcodebuild/ \ + CODE_SIGNING_ALLOWED="NO" + xcrun docc process-archive \ + transform-for-static-hosting .xcodebuild/Build/Products/Debug-iphonesimulator/${{ inputs.targetname }}.doccarchive \ + --hosting-base-path ${{ github.event.repository.name }} \ + --output-path ./docs + - uses: actions/upload-pages-artifact@v1 + with: + path: ./docs + deploy: + name: Deploy to GitHub Pages + needs: generate + permissions: + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Deploy to GitHub Pages + uses: actions/deploy-pages@v1 diff --git a/.github/workflows/reuse.yml b/.github/workflows/reuse.yml new file mode 100644 index 0000000..01ea66f --- /dev/null +++ b/.github/workflows/reuse.yml @@ -0,0 +1,22 @@ +# +# This source file is part of the Stanford Biodesign for Digital Health open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford Biodesign for Digital Health and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +name: REUSE Compliance Check + +on: + pull_request: + workflow_call: + +jobs: + reuse: + name: REUSE Compliance Check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: REUSE Compliance Check + uses: fsfe/reuse-action@v1 diff --git a/.github/workflows/spm-update.yml b/.github/workflows/spm-update.yml new file mode 100644 index 0000000..928a98d --- /dev/null +++ b/.github/workflows/spm-update.yml @@ -0,0 +1,72 @@ +# +# This source file is part of the Stanford Biodesign for Digital Health open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford Biodesign for Digital Health and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +name: Swift Package Update + +on: + workflow_call: + inputs: + author: + description: 'The author of the resulting PR containing the updated Swift package' + required: false + type: string + default: PaulsAutomationBot + reviewers: + description: 'The reviewers of the resulting pull request containing the updated Swift package' + required: false + type: string + default: PSchmiedmayer + branch: + description: 'The branch that should be used to create the pull request' + required: false + type: string + default: bots/update-dependencies + secrets: + token: + description: 'The Personal Access Token with permissions to push to the repository. Unfortunately, the GITHUB_TOKEN does not trigger GitHub Actions in the resulting pull request.' + required: true + +jobs: + createPR: + name: Create Pull Request + container: + image: swift:focal + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Check Environment + run: | + swift --version + echo "inputs.author: ${{ inputs.author }}" + echo "inputs.reviewers: ${{ inputs.reviewers }}" + echo "inputs.branch: ${{ inputs.branch }}" + - name: Update Swift Packages + run: swift package update + - name: Add Safe Directory + run: git config --global --add safe.directory "$GITHUB_WORKSPACE" + - uses: peter-evans/create-pull-request@v4 + id: cpr + with: + token: ${{ secrets.token }} + commit-message: Update dependencies + title: Update Dependencies + body: Update the Swift Package Manager dependencies. + delete-branch: true + base: develop + branch: bots/update-dependencies + assignees: ${{ inputs.author }} + committer: ${{ inputs.author }} <${{ inputs.author }}@users.noreply.github.com> + author: ${{ inputs.author }} <${{ inputs.author }}@users.noreply.github.com> + reviewers: ${{ inputs.reviewers }} + - name: Enable Pull Request Automerge + if: steps.cpr.outputs.pull-request-operation == 'created' + uses: peter-evans/enable-pull-request-automerge@v2 + with: + token: ${{ secrets.token }} + pull-request-number: ${{ steps.cpr.outputs.pull-request-number }} + merge-method: squash diff --git a/.github/workflows/swiftlint.yml b/.github/workflows/swiftlint.yml new file mode 100644 index 0000000..7026f8c --- /dev/null +++ b/.github/workflows/swiftlint.yml @@ -0,0 +1,26 @@ +# +# This source file is part of the Stanford Biodesign for Digital Health open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford Biodesign for Digital Health and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +name: SwiftLint + +on: + workflow_call: + +jobs: + swiftlint: + name: SwiftLint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: SwiftLint + uses: sinoru/actions-swiftlint@v6 + with: + swiftlint-version: '0.50.0-rc.2' + swiftlint-args: --strict diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4b19446 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +# +# This source file is part of the Stanford Biodesign for Digital Health open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford Biodesign for Digital Health and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +.DS_Store +.env diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..936609d --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,142 @@ + + +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Using welcoming and inclusive language +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders 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, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at cardinalkit@stanford.edu. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available +at [https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..f706be5 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,37 @@ + + +# Contributing Guidelines + +Thank you for contributing to the Stanford Biodesign for Digital Health project! We value the time and effort you invest in the open-source project! + +We use [GitHub Discussions](https://docs.github.com/en/discussions) at [https://github.com/orgs/StanfordBDHG/discussions](https://github.com/orgs/StanfordBDHG/discussions) for any discussions about the project. +Please follow our [Code of Conduct](https://github.com/StanfordBDHG/.github/blob/main/CODE_OF_CONDUCT.md). + +We use the [Github Flow](https://guides.github.com/introduction/flow/index.html) for all code-related contributions. +GitHub discussions are the best way to brainstorm your suggestions. +GitHub issues are the best way to document decisions or bugs. +Pull requests are the best way to propose changes to the codebase. + +## Licensing + +Your submissions must be published and conform to the license currently used in the respective repository. + +## Bug Reporting + +We use GitHub issues to track public bugs. Report a bug by opening a new issue using the bug issue template. + +## Support Policy + +Please refer to our [Support Policy](https://github.com/StanfordBDHG/.github/blob/main/SUPPORT.md) for information about getting support. + +## Security Policy + +For security and vulnerability-related issues, please refer to our [Support Policy](https://github.com/StanfordBDHG/.github/blob/main/SUPPORT.md). \ No newline at end of file diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md new file mode 100644 index 0000000..87d1665 --- /dev/null +++ b/CONTRIBUTORS.md @@ -0,0 +1,14 @@ + + +# Stanford Biodesign for Digital Health .github Contributors + +* [Vishnu Ravi](https://github.com/vishnuravi) +* [Paul Schmiedmayer](https://github.com/PSchmiedmayer) diff --git a/FUNDING.yml b/FUNDING.yml new file mode 100644 index 0000000..9060a13 --- /dev/null +++ b/FUNDING.yml @@ -0,0 +1,9 @@ +# +# This source file is part of the Stanford Biodesign for Digital Health open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford Biodesign for Digital Health and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +custom: [Stanford Biodesign for Digital Health.stanford.edu] \ No newline at end of file diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt new file mode 100644 index 0000000..11e5a38 --- /dev/null +++ b/LICENSES/MIT.txt @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2022 Stanford Biodesign for Digital Health and the project authors (see CONTRIBUTORS.md) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..92d2127 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ + + +# .github + +This repository serves as a collection of default community health files, GitHub Action workflows, templates, and information for the Stanford Biodesign for Digital Health organization. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..c5bb6fd --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,16 @@ + + +# Security Policy + +Please report security vulnerabilities to the Stanford Biodesign for Digital Health team at cardinalkit@stanford.edu. +We highly value your input and will get back to you as soon as possible. Please include steps to reproduce, context, and any further information that makes identifying and resolving the vulnerability as quickly as possible. + +See the [The CERT Guide to Coordinated Vulnerability Disclosure](https://vuls.cert.org/confluence/display/CVD/The+CERT+Guide+to+Coordinated+Vulnerability+Disclosure) for additional background information about the coordinated vulnerability disclosure process. \ No newline at end of file diff --git a/SUPPORT.md b/SUPPORT.md new file mode 100644 index 0000000..5593412 --- /dev/null +++ b/SUPPORT.md @@ -0,0 +1,18 @@ + + +# Support Policy + +We use [GitHub Discussions](https://docs.github.com/en/discussions) for any questions that you have about the project. +Please use [https://github.com/orgs/StanfordBDHG/discussions](https://github.com/orgs/StanfordBDHG/discussions) to ask questions, share your Digital Health projects, and follow announcements. + +Please follow our [Code of Conduct](https://github.com/StanfordBDHG/.github/blob/main/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/StanfordBDHG/.github/blob/main/CONTRIBUTING.md). + +Please refer to our [Security Policy](https://github.com/StanfordBDHG/.github/blob/main/SECURITY.md) for all security-related issues. \ No newline at end of file diff --git a/assets/biodesign-footer-dark.png b/assets/biodesign-footer-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..3aa21c999269e4d11e66ea3e9d078328a8e21208 GIT binary patch literal 56819 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 z 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 + +### Stanford Biodesign for Digital Health + +For more information, check out our website at [biodesign.stanford.edu](https://biodesign.stanford.edu). + +![Stanford Byers Center for Biodesign Logo](https://raw.githubusercontent.com/StanfordBDHG/.github/main/assets/biodesign-footer-light.png#gh-light-mode-only) +![Stanford Byers Center for Biodesign Logo](https://raw.githubusercontent.com/StanfordBDHG/.github/main/assets/biodesign-footer-dark.png#gh-dark-mode-only)