Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: kivy/pyjnius
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 1.6.1
Choose a base ref
...
head repository: kivy/pyjnius
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
  • 17 commits
  • 32 files changed
  • 5 contributors

Commits on Nov 10, 2023

  1. Create no-response.yml (#697)

    Support the no-response bot.
    
    Direct copy of the kivy/kivy one.
    Julian-O authored Nov 10, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    063d97a View commit details

Commits on Nov 24, 2023

  1. Refresh installation and build docs (#700)

    * documentation changes for #695
    
    * addressing review comments, and a clarification in packaging
    
    * Update docs/source/installation.rst
    
    Co-authored-by: Mirko Galimberti <[email protected]>
    
    * addressing feedback
    
    * fix Java location
    
    * much simplified building instructions
    
    * addressed comments
    
    ---------
    
    Co-authored-by: Mirko Galimberti <[email protected]>
    cmacdonald and misl6 authored Nov 24, 2023
    Copy the full SHA
    a2c799f View commit details

Commits on Dec 3, 2023

  1. Make doc structure consistent and up-to-date (#703)

    * Make doc structure consistent and up-to-date
    
    This is part of an effort to make the Kivy sibling projects' documentation
    structure consistent and up-to-date.
    
    Extra items:
    * Fix capitalisation of PyJNIus throughout.
    * Standardize on tag line.
    * Remove "shell" from "shell environment variables"
    * Remove some Python 2-only code.
    
    CHECKLIST
    
    * CONTRIBUTING.md
       [x] If repo takes user contributions, is present
       [x] In root dir (not .github dir)
       [x] Refers to kivy/kivy Contribution Guidelines.
    
    * LICENSE
       [x] If repo takes user contributions, is present.
       [x] Acknowledges the range of years to 2023.
       [x] Acknowledges Kivy Team and other contributors
       [x] Mentions it is an MIT License.
    
    * CODE_OF_CONDUCT.md
       [x] If repo takes user contributions or hosts discussions, is present.
       [x] Refers to kivy/kivy CODE_OF_CONDUCT.md
    
    * CONTACT.md
       [x] Refers to kivy/kivy CONTACT.md
    
    * FAQ.md
       [x] If repo is big enough for RST documentation, is present.
    
    * README:
       [x] Is a Markdown file.
       [x] Describes the project.
       [x] Describes its place in the Kivy sibling projects.
       [x] If CONTRIBUTING exists, mentions it.
       [x] If LICENSE exists, mentions it.
       [x] If CODE_OF_CONDUCT exists, mentions it.
       [x] Mentions kivy/kivy CONTACT.md
       [x] Uses Python syntax colouring for embedded Python code.
       [x] Uses badges to display current status.
    
    * RST documentation, if present
       [x] Describes the project.
       [x] Describes its place in the Kivy sibling projects.
       [x] Mentions LICENSE.
       [x] Mentions CONTRIBUTING
       [x] Mentions CODE_OF_CONDUCT
       [x] Mentions FAQ
    
    * WORKFLOWS
       [x] NO_RESPONSE.yml is present if the repo has awaiting_reply tag.
       [x] NO_RESPONSE uses latest script versions.
       [x] SUPPORT.yml is present if the repo has a `support` tag.
       [x] SUPPORT.yml refers to kivy/kivy CONTACT.md
       [x] SYPPORT.yml uses dessant/support-requests@v4
    
    * setup.py/cfg, if present and on PyPI
       [x] Supplies description to PyPI
       [x] Supplies Python versions to PyPI
       [x] Supplies Documentation, if any, to PyPI
    
    * Update with review comments
    
    Tweaked SVG sizes. 
    
    Made warning use Markdown syntax for warnings.
    Remove links overriding SVG for backers.
    
    Remove kivy/kivy contributors, and link to pyJNIus ones.
    Include the horrid links to sponsors, and link to why.
    
    Added badge for GitHub contributors to this project (in contrast to OpenCollective contributors to Kivy)
    
    Updated checklist
    * CONTRIBUTING.md
       [] If repo takes user contributions, is present
       [] In root dir (not .github dir)
       [] Explains relationship to Kivy, if unclear.
       [] Refers to kivy/kivy Contribution Guidelines.
    
    * LICENSE
       [] If repo takes user contributions, is present.
       [] Acknowledges the range of years to 2023.
       [] Acknowledges Kivy Team and other contributors
       [] Mentions it is an MIT License.
    
    * CODE_OF_CONDUCT.md
       [] If repo takes user contributions or hosts discussions, is present.
       [] Refers to kivy/kivy CODE_OF_CONDUCT.md
    
    * CONTACT.md
       [] Refers to kivy/kivy CONTACT.md
    
    * FAQ.md
       [] If repo is big enough for RST documentation, is present.
    
    * README:
       [] Is a Markdown file.
       [] Describes the project.
       [] Describes its place in the Kivy sibling projects.
       [] If Documentation exists, mention it.
       [] If CONTRIBUTING exists, mentions it.
       [] If LICENSE exists, mentions it.
       [] If CODE_OF_CONDUCT exists, mentions it.
       [] Mentions kivy/kivy CONTACT.md
       [] Uses Python syntax colouring for embedded Python code.
       [] Uses badges to display current status, including:
            [] Backers
            [] Sponsors
            [] GitHub contributors
            [] Contributor Covenant
    	[] PyPI Version
    	[] PyPI Python Version
    	[] Build/Test status
    
       [] Links to GitHub contributors
       [] Displays backers in suitable icon size, without buttons.
       [] Displays first 40 sponsors icons and links
    
    * RST documentation, if present
       [] Describes the project.
       [] Describes its place in the Kivy sibling projects.
       [] Mentions (Kivy/Kivy) Contact Us link.
       [] Mentions LICENSE.
       [] Mentions CONTRIBUTING
       [] Mentions FAQ
       [] conf.py mentioned Kivy Team and other contributors
    		- copyright, latex_documents, man_pages, texinfo documents
    
    * WORKFLOWS
       [] NO_RESPONSE.yml is present if the repo has awaiting_reply tag.
       [] NO_RESPONSE uses latest script versions.
       [] SUPPORT.yml is present if the repo has a `support` tag.
       [] SUPPORT.yml refers to repo's CONTACT.md
    
    * setup.py/cfg, if present and on PyPI
       [] Supplies description to PyPI
       [] Supplies Python versions to PyPI
       [] Supplies Documentation, if any, to PyPI
    
    * Improve links to sponsors, backers and contributors
    
    See https://github.com/orgs/kivy/discussions/15 for context.
    
    * Correct contributor URL
    
    Co-authored-by: Mirko Galimberti <[email protected]>
    
    ---------
    
    Co-authored-by: Mirko Galimberti <[email protected]>
    Julian-O and misl6 authored Dec 3, 2023
    Copy the full SHA
    dce5ce0 View commit details

Commits on Feb 9, 2024

  1. Update old quickstart.rst example from Py2 to Py3 (#711)

    * Update quickstart.rst
    
    minimum sample's forgot bracket fix
    
    * Update quickstart.rst
    
    removed Not necessary space in  print function
    Suletta-Majo authored Feb 9, 2024
    Copy the full SHA
    25c60a3 View commit details

Commits on Apr 13, 2024

  1. Copy the full SHA
    7f5e86f View commit details

Commits on May 25, 2024

  1. Copy the full SHA
    3b25c2c View commit details

Commits on May 26, 2024

  1. Sunset apple-silicon-m1 self-hosted runner, as now is supported by …

    …Github Hosted runners via `macos-latest` tag. Use `macos-13` for runs on Intel macs (#714)
    
    * Sunset apple-silicon-m1 self-hosted runner, as now is supported by github-hosted runners. Use macos-13 for runs on Intel macs
    
    * Disable Java 8 for macos-latest, as not available
    misl6 authored May 26, 2024
    Copy the full SHA
    6820e14 View commit details
  2. Add renovate.json (#715)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored May 26, 2024
    Copy the full SHA
    21cc4ac View commit details

Commits on May 29, 2024

  1. Update dependency furo to v2024 (#724)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored May 29, 2024
    Copy the full SHA
    1f6af7d View commit details
  2. Update actions/setup-python action to v5 (#723)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored May 29, 2024
    Copy the full SHA
    f73fb40 View commit details
  3. Update actions/setup-java action to v4 (#722)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored May 29, 2024
    Copy the full SHA
    12af98a View commit details
  4. Update actions/checkout action to v4 (#721)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored May 29, 2024
    Copy the full SHA
    3e66813 View commit details
  5. Copy the full SHA
    17563c6 View commit details

Commits on Feb 6, 2025

  1. Copy the full SHA
    f91a3c2 View commit details
  2. Fix for BUG: failing test_hierharchy_arraylist with jdk>=21 (#741)

    * test JDK releases
    
    * less JDKs for now
    
    * make testcase pass?
    
    * no java 20 or newer for temurin on Windows
    
    * more explicit exclusions
    
    * lets test from 8 to 23
    cmacdonald authored Feb 6, 2025
    Copy the full SHA
    ebef177 View commit details
  3. Display Java stacktrace by default in JavaException (#696)

    * WIP - java exception printing
    
    * try str instead
    
    * change reporting of Java exception name to be more java-like
    
    * use args[0] for the message
    
    * address spacing
    cmacdonald authored Feb 6, 2025
    Copy the full SHA
    d539d9e View commit details
  4. Update dependency furo to v2024.8.6 (#727)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Feb 6, 2025
    Copy the full SHA
    8d7ec1e View commit details
17 changes: 0 additions & 17 deletions .ci/utils.sh

This file was deleted.

61 changes: 19 additions & 42 deletions .github/workflows/create.yml
Original file line number Diff line number Diff line change
@@ -34,19 +34,18 @@ jobs:
steps:

- name: Checkout pyjnius
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Setup Python (Ubuntu x86_64, macOS Intel, Windows x86_64)
if: matrix.os == 'macos-latest' || matrix.os == 'windows-latest' || matrix.os == 'ubuntu-latest'
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.x'

- name: Setup java
# There's no need to setup java on ubuntu-latest, as build is done into a manylinux
# containerized environment. (CIBW_BEFORE_ALL_LINUX) takes care of it.
if: ${{ matrix.os != 'ubuntu-latest' }}
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
@@ -65,8 +64,6 @@ jobs:
env:
CIBW_ARCHS: '${{ matrix.cibw_archs }}'
run: |
source .ci/utils.sh
ensure_python_version 3.11
python -m pip install cibuildwheel~=2.16.2
python -m cibuildwheel --output-dir dist
@@ -82,10 +79,10 @@ jobs:
runs-on: 'ubuntu-latest'
steps:
- name: Checkout pyjnius
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.x'

@@ -109,53 +106,46 @@ jobs:
strategy:
matrix:
os: ['ubuntu-latest', 'macos-latest', 'windows-latest', 'kivy-ubuntu-arm64']
python: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', 'pypy3.7', 'pypy3.8', 'pypy3.9']
python: ['3.8', '3.9', '3.10', '3.11', '3.12', 'pypy3.8', 'pypy3.9']
include:
# We may would like to introduce tests also on windows-latest on x86 (win32 wheels)?
# macos-latest (ATM macos-14) runs on Apple Silicon,
# macos-13 runs on Intel
- os: ubuntu-latest
architecture: 'x64'
- os: kivy-ubuntu-arm64
architecture: 'aarch64'
- os: windows-latest
architecture: 'x64'
- os: macos-latest
- os: macos-13
architecture: 'x64'
- os: apple-silicon-m1
architecture: 'aarch64'
python: '3.10'
- os: apple-silicon-m1
architecture: 'aarch64'
python: '3.11'
- os: apple-silicon-m1
- os: macos-latest
architecture: 'aarch64'
python: '3.12'
runs-on: ${{ matrix.os }}
steps:

- name: Checkout pyjnius
uses: actions/checkout@v3
uses: actions/checkout@v4

- uses: actions/download-artifact@v2
with:
name: dist
path: dist

- name: Setup Python (Ubuntu x86_64, macOS Intel, Windows x86_64)
# Needs to be skipped on our self-hosted runners tagged as 'apple-silicon-m1'
if: matrix.os == 'macos-latest' || matrix.os == 'windows-latest' || matrix.os == 'ubuntu-latest' || matrix.os == 'apple-silicon-m1'
uses: actions/setup-python@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}

- name: Setup java
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
architecture: ${{ matrix.architecture }}

- name: Setup ant on macOS
if: (matrix.os == 'macos-latest') || (matrix.os == 'apple-silicon-m1')
if: (matrix.os == 'macos-latest') || (matrix.os == 'macos-13')
run: |
brew install ant
@@ -168,7 +158,7 @@ jobs:
run: ant all

- name: Install pyjnius wheel + test prerequisites (Windows, macOS)
if: matrix.os == 'windows-latest' || matrix.os == 'macos-latest' || matrix.os == 'apple-silicon-m1'
if: matrix.os == 'windows-latest' || matrix.os == 'macos-latest' || matrix.os == 'macos-13'
# --find-links=dist --no-index is needed to avoid downloading the pyjnius wheel
# from the index. We need to test the wheel we just built.
run: |
@@ -180,30 +170,17 @@ jobs:
# --find-links=dist --no-index is needed to avoid downloading the pyjnius wheel
# from the index. We need to test the wheel we just built.
run: |
source .ci/utils.sh
ensure_python_version ${{ matrix.python }}
python -m pip install --find-links=dist --no-index pyjnius
python -m pip install pyjnius[dev,ci]
- name: Test wheel (Linux, macOS)
if: (matrix.os == 'ubuntu-latest') || (matrix.os == 'kivy-ubuntu-arm64') || (matrix.os == 'macos-latest') || (matrix.os == 'apple-silicon-m1')
if: (matrix.os == 'ubuntu-latest') || (matrix.os == 'kivy-ubuntu-arm64') || (matrix.os == 'macos-latest') || (matrix.os == 'macos-13')
run: |
source .ci/utils.sh
ensure_python_version ${{ matrix.python }}
cd tests
CLASSPATH=../build/test-classes:../build/classes python -m pytest -v
- name: Test wheel ( Windows + Python == 3.7.x )
# On Python < 3.8.x, we can't use `os.add_dll_directory`, so the jre should be in PATH.
if: (matrix.os == 'windows-latest') && contains(matrix.python, '3.7')
run: |
cd tests
$env:PATH +=";$env:JAVA_HOME\jre\bin\server\;$env:JAVA_HOME\jre\bin\client\;$env:JAVA_HOME\bin\server\"
$env:CLASSPATH ="../build/test-classes;../build/classes"
python -m pytest -v
- name: Test wheel (Windows + Python != 3.7.x )
if: (matrix.os == 'windows-latest') && !contains(matrix.python, '3.7')
- name: Test wheel (Windows)
if: matrix.os == 'windows-latest'
run: |
cd tests
$env:CLASSPATH ="../build/test-classes;../build/classes"
30 changes: 30 additions & 0 deletions .github/workflows/no-response.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: No Response

# Both `issue_comment` and `scheduled` event types are required for this Action
# to work properly.
on:
issue_comment:
types: [created]
schedule:
# Schedule for an arbitrary time (4am) once every day
- cron: '* 4 * * *'

jobs:
noResponse:
runs-on: ubuntu-latest
steps:
- uses: lee-dohm/no-response@9bb0a4b5e6a45046f00353d5de7d90fb8bd773bb
# This commit hash targets release v0.5.0 of lee-dohm/no-response.
# Targeting a commit hash instead of a tag has been done for security reasons.
# Please be aware that the commit hash specifically targets the "Automatic compilation"
# done by `github-actions[bot]` as the `no-response` Action needs to be compiled.
with:
token: ${{ github.token }}
daysUntilClose: 42
responseRequiredLabel: 'awaiting-reply'
closeComment: >
This issue has been automatically closed because there has been no response
to our request for more information from the original author. With only the
information that is currently in the issue, we don't have the means
to take action. Please reach out if you have or find the answers we need so
that we can investigate further.
1 change: 0 additions & 1 deletion .github/workflows/push-x86.yml
Original file line number Diff line number Diff line change
@@ -7,7 +7,6 @@ jobs:
strategy:
matrix:
python:
- '3.7'
- '3.8'
- '3.9'
- '3.10'
55 changes: 25 additions & 30 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
@@ -7,24 +7,24 @@ jobs:
strategy:
matrix:
python:
- '3.7'
- '3.8'
- '3.9'
- '3.10'
- '3.11'
- '3.12'
- 'pypy-3.7'
- 'pypy-3.8'
- 'pypy-3.9'
java:
- '8'
- '11'
- '20'
- '23'
os:
# macos-latest (ATM macos-14) runs on Apple Silicon,
# macos-13 runs on Intel
- 'ubuntu-latest'
- 'windows-latest'
- 'macos-latest'
- 'apple-silicon-m1'
- 'macos-13'
cython:
- '<3'
- '>=3'
@@ -39,60 +39,55 @@ jobs:
architecture: aarch64
- os: ubuntu-latest
architecture: x86
- os: macos-13
architecture: aarch64
- os: macos-13
architecture: x86
- os: macos-latest
architecture: aarch64
java: '8'
- os: macos-latest
architecture: x64
- os: macos-latest
architecture: x86
- os: apple-silicon-m1
- os: windows-latest
architecture: x86
- os: apple-silicon-m1
architecture: x64
- os: apple-silicon-m1
python: '3.7'
- os: apple-silicon-m1
python: '3.8'
- os: apple-silicon-m1
python: '3.9'
- os: apple-silicon-m1
python: 'pypy-3.7'
- os: apple-silicon-m1
python: 'pypy-3.8'
- os: apple-silicon-m1
- os: windows-latest
architecture: x86
python: 'pypy-3.9'
- os: windows-latest
architecture: x86
python: 'pypy-3.7'
java: '20'
- os: windows-latest
architecture: x86
python: 'pypy-3.8'
java: '21'
- os: windows-latest
architecture: x86
python: 'pypy-3.9'
- os: apple-silicon-m1
java: '8'
java: '22'
- os: windows-latest
architecture: x86
java: '20'

java: '23'
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@master

- name: Setup python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
architecture: ${{ (matrix.os == 'apple-silicon-m1' && matrix.architecture == 'aarch64') && 'arm64' || matrix.architecture }}
architecture: ${{ matrix.architecture == 'aarch64' && 'arm64' || matrix.architecture }}

- name: Setup java
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
architecture: ${{ matrix.architecture }}

- name: (macOS) Setup test dependencies
if: matrix.os == 'macos-latest' || matrix.os == 'apple-silicon-m1'
if: matrix.os == 'macos-latest' || matrix.os == 'macos-13'
run: brew install ant

- name: Build test classes via ant
@@ -105,7 +100,7 @@ jobs:

- name: (Linux, macOS) Force Cython version
# macOS sed requires .bak filename extensions
if: (matrix.os == 'ubuntu-latest') || (matrix.os == 'macos-latest') || (matrix.os == 'apple-silicon-m1')
if: (matrix.os == 'ubuntu-latest') || (matrix.os == 'macos-latest') || (matrix.os == 'macos-13')
run: sed -i.bak 's/"Cython"/"Cython${{matrix.cython}}"/' pyproject.toml

- name: Install pyjnius with [dev, ci] extras
@@ -121,7 +116,7 @@ jobs:
pytest -v
- name: (Linux, macOS) Test pyjnius via pytest
if: (matrix.os == 'ubuntu-latest') || (matrix.os == 'macos-latest') || (matrix.os == 'apple-silicon-m1')
if: (matrix.os == 'ubuntu-latest') || (matrix.os == 'macos-latest') || (matrix.os == 'macos-13')
run: |
cd tests
CLASSPATH=../build/test-classes:../build/classes python -m pytest -v
6 changes: 3 additions & 3 deletions .github/workflows/support.yml
Original file line number Diff line number Diff line change
@@ -11,16 +11,16 @@ jobs:
action:
runs-on: ubuntu-latest
steps:
- uses: dessant/support-requests@v2
- uses: dessant/support-requests@v4
with:
github-token: ${{ github.token }}
support-label: 'support'
issue-comment: >
👋 We use the issue tracker exclusively for bug reports and feature requests.
However, this issue appears to be a support request. Please use our
[support channels](https://github.com/kivy/pyjnius/blob/master/README.md#support)
[support channels](https://github.com/kivy/pyjnius/blob/master/CONTACT.md)
to get help with the project.
Let us know if this comment was made in error, and we'll be happy
to reopen the issue.
close-issue: true
8 changes: 8 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
In the interest of fostering an open and welcoming community, we as
contributors and maintainers need to ensure participation in our project and
our sister projects is a harassment-free and positive experience for everyone.
It is vital that all interaction is conducted in a manner conveying respect,
open-mindedness and gratitude.

Please consult the [latest Kivy Code of Conduct](https://github.com/kivy/kivy/blob/master/CODE_OF_CONDUCT.md).

6 changes: 6 additions & 0 deletions CONTACT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Contacting the Kivy Team

If you are looking to contact the Kivy Team (who are responsible for managing
the PyJNIus project), including looking for support, please see our
latest [Contact Us](https://github.com/kivy/kivy/blob/master/CONTACT.md)
document.
10 changes: 10 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Contribution Guidelines

PyJNIus is part of the [Kivy](https://kivy.org) ecosystem - a large group of
products used by many thousands of developers for free, but it
is built entirely by the contributions of volunteers. We welcome (and rely on)
users who want to give back to the community by contributing to the project.

Contributions can come in many forms. See the latest
[Contribution Guidelines](https://github.com/kivy/kivy/blob/master/CONTRIBUTING.md)
for how you can help us.
15 changes: 15 additions & 0 deletions FAQ.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# FAQ for PyJNIus

## Introduction

PyJNIus is a [Python](https://www.python.org/) library for accessing
[Java](https://www.java.com/) classes using the
[Java Native Interface](https://docs.oracle.com/javase/8/docs/technotes/guides/jni/)
(JNI).

Warning: the [PyPI](https://pypi.org/) package name is now
[pyjnius](https://pypi.org/project/pyjnius/) instead of `jnius`.

## No questions yet

No Frequently Asked Questions have been identified yet. Please contribute some.
Loading