Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: AMQP Integration #3

Open
wants to merge 126 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
de3040c
Initial commit
GitToSteppin Feb 28, 2019
2725d0e
Update license
anguyenqd Feb 28, 2019
89c3827
Create CONTRIB
anguyenqd Feb 28, 2019
2b44a11
Merge pull request #2 from DanteNguyen1008/patch-2
GitToSteppin Feb 28, 2019
f47f5cf
Merge pull request #1 from DanteNguyen1008/patch-1
GitToSteppin Feb 28, 2019
f03f7cb
Update CONTRIBUTING.md
josephjguerra Mar 21, 2019
943d504
Update README.md
josephjguerra Mar 21, 2019
7bd22ce
Update LICENSE
josephjguerra Mar 21, 2019
75f0db8
Update README.md
josephjguerra Mar 21, 2019
d213d2a
Update README.md
josephjguerra Mar 21, 2019
464ed00
Update README.md
josephjguerra Mar 22, 2019
ebeaad4
Merge pull request #4 from josephjguerra/master
opi-smccoole Mar 25, 2019
a8a2a82
Merge pull request #3 from josephjguerra/patch-1
opi-smccoole Mar 25, 2019
f292124
Update LICENSE
josephjguerra Mar 28, 2019
bb3b684
Merge pull request #6 from EOSIO/josephjguerra-patch-1
opi-smccoole Mar 28, 2019
b43683f
Bootstrap initial project. Copy in Google code style configs.
opi-smccoole Mar 27, 2019
e60f2d7
Migrate project to AndroidX for support and appcompat packages.
opi-smccoole Apr 1, 2019
3dfd7d0
Merge pull request #5 from EOSIO/feature/bootstrap-project
GitToSteppin Apr 1, 2019
a2a7366
Update README.md
josephjguerra Apr 8, 2019
2ebe092
Merge pull request #7 from EOSIO/readme-updates
josephjguerra Apr 8, 2019
2ca39ae
Initial implementation of the core 5 rpc provider calls and unit tests.
opi-smccoole Apr 8, 2019
1b74705
Added usesCleartextTraffic to the test app for MockWebServer.
opi-smccoole Apr 8, 2019
82b8c3e
Update to add RpcProviderError to EosioJavaRpcProviderCallError.
opi-smccoole Apr 9, 2019
d4cd09a
Merge pull request #8 from EOSIO/feature/rpc-provider-implementation
opi-smccoole Apr 9, 2019
944ad60
Return value directly from processCall() in get{Method}() calls.
opi-smccoole Apr 9, 2019
f645f4e
Remove Created By header comments. Add HTTP logging interceptor when…
opi-smccoole Apr 9, 2019
bd67197
Merge pull request #9 from EOSIO/feature/change-returns
GitToSteppin Apr 9, 2019
ad7f617
Update README and CONTRIUBTING for OSS prep.
opi-smccoole Apr 12, 2019
ff377e9
Adding additional Rpc interface
Apr 15, 2019
6683d4c
Update from feedback in PR.
opi-smccoole Apr 15, 2019
869d22f
Updated with explaination text under shields
opi-smccoole Apr 15, 2019
6e6a755
Merge pull request #10 from EOSIO/feature/readme-contributing
opi-smccoole Apr 15, 2019
ef29aed
Replaced lib modules with maven central link
Apr 17, 2019
fda5289
Updated variables name
Apr 17, 2019
185ecd5
add ci pipeline
Apr 17, 2019
c505c09
Use try-with-resource for ResponseBody and return String
Apr 18, 2019
a1b7e35
Added artifact for javadoc
Apr 18, 2019
8eeb9d7
Updated @throws
Apr 18, 2019
213325e
Fixed copy/paste mistake
anguyenqd Apr 18, 2019
9937196
Merge pull request #11 from EOSIO/feature/additional-rpc
GitToSteppin Apr 19, 2019
ce40bfa
Clean up javadoc for public constants, methods, classes and package
Apr 22, 2019
ca401ca
Merge branch 'develop' of github.com:EOSIO/eosio-java-android-rpc-pro…
Apr 24, 2019
9c7d848
Updated to match with eosio-java
Apr 24, 2019
7bd345b
Update pipeline.yml
GitToSteppin Apr 25, 2019
8981e7e
Create artifactory.sh
GitToSteppin Apr 25, 2019
04ac831
Artifactory and CI changes.
GonnaGitYou Apr 25, 2019
d463e30
Merge branch 'feature/cleanup-for-distribution' of https://github.com…
GonnaGitYou Apr 25, 2019
b94979d
Merge branch 'feature/cleanup-for-distribution' of https://github.com…
GonnaGitYou Apr 25, 2019
c1735b5
Merge pull request #12 from EOSIO/feature/cleanup-for-distribution
GonnaGitYou Apr 25, 2019
b2e663b
Merge pull request #14 from EOSIO/add-ci-builder
GitToSteppin Apr 25, 2019
dab1b43
Test commit.
GonnaGitYou Apr 25, 2019
0a6539c
Update artifactory.sh
GonnaGitYou Apr 25, 2019
99deca8
Test commit.
GonnaGitYou Apr 26, 2019
bfb3008
Merge branch 'feature/test-artifactory' of https://github.com/EOSIO/e…
GonnaGitYou Apr 26, 2019
0673922
Merge pull request #17 from EOSIO/feature/test-artifactory
anguyenqd Apr 26, 2019
04ff310
Corrections to Javadoc.
GonnaGitYou Apr 26, 2019
d14eba6
Create pipeline.yml
GonnaGitYou Apr 26, 2019
7e0a815
Create pipeline.yml
GonnaGitYou Apr 26, 2019
c2593b7
Create artifactory.sh
GonnaGitYou Apr 26, 2019
c0f7aaf
Merge pull request #13 from EOSIO/feature/cleanup-java-doc
GonnaGitYou Apr 26, 2019
510db42
Refactored pre-release version
Apr 26, 2019
c81561b
Merge pull request #19 from EOSIO/feature/refactor_pre_release_libs_v…
GonnaGitYou Apr 26, 2019
de96af8
Cleaned up readme and contributing, removed all TODO
Apr 30, 2019
76f325c
Added what next
Apr 30, 2019
aa1cb2f
Minor tweaks.
brandonfancher Apr 30, 2019
a3896fd
Add link to README to Android Example App.
brandonfancher Apr 30, 2019
1e51381
Updated eosiojava version
Apr 30, 2019
a9d66c1
merged with latest
Apr 30, 2019
f4ca665
Added readme content for un-marshalling RPC endpoints
May 1, 2019
51a8cf6
Tweak RPC marshalling langauge.
brandonfancher May 1, 2019
8d4683d
Merge pull request #20 from EOSIO/feature/readme-cleanup-match-eosio-…
anguyenqd May 1, 2019
6869b9b
Version changes.
GonnaGitYou May 1, 2019
98b5867
Update README.md
GonnaGitYou May 1, 2019
349f714
Merge pull request #23 from EOSIO/feature/versioning
GonnaGitYou May 1, 2019
91f143c
Upgrade to gradle 5 as well as add project.afterEvaluate to make publ…
May 9, 2019
b11791d
Merge pull request #25 from EOSIO/feature/upgrade-to-gradle-5
GitToSteppin May 10, 2019
cab0f16
Gradle changes.
GonnaGitYou May 10, 2019
be49a03
Merge pull request #27 from EOSIO/release/v0.1.0
GonnaGitYou May 10, 2019
349ce4a
Added an overload constructor to provide more flexibility to debug ne…
May 17, 2019
6c62a4e
Merge pull request #29 from EOSIO/feature/issue_21_better_log
GonnaGitYou May 29, 2019
3bbb5fe
Update README.md
josephjguerra May 29, 2019
dba9f1e
Merge pull request #31 from EOSIO/josephjguerra-patch-1
GitToSteppin May 29, 2019
47472be
Added guidance to build project without using artifactory
anguyenqd Jun 3, 2019
8a2f622
Removed CI
anguyenqd Jun 3, 2019
8a00f1a
PR Change
anguyenqd Jun 3, 2019
ba99cad
Merge pull request #34 from EOSIO/feature/guidance_for_no_artifactory…
GitToSteppin Jun 3, 2019
8e91c48
add travis
takn Jul 8, 2019
4bf30ab
Merge pull request #36 from EOSIO/enable-travis
GitToSteppin Jul 10, 2019
e7c6eee
add veracode scans
takn Jul 16, 2019
0f3920a
Merge pull request #37 from EOSIO/add-veracode-scans
takn Jul 18, 2019
7cf209e
add artifactory
takn Jul 18, 2019
8325a1b
Merge pull request #38 from EOSIO/add-artifactory-deploy
GitToSteppin Jul 19, 2019
0768128
update regex, ensure gradle properties get written for each deploy step
takn Jul 22, 2019
869007a
Merge pull request #41 from EOSIO/feature/regex-fix
GitToSteppin Jul 25, 2019
81755fb
remove veracode
Sep 20, 2019
5a0f0b1
remove veracode script
Sep 20, 2019
95b4b06
remove install of veracode
Sep 20, 2019
a2536a8
Merge pull request #42 from EOSIO/remove-veracode
takn Sep 20, 2019
8459f10
Update build.gradle
GonnaGitYou Feb 21, 2020
ff9c229
remove deprecated gradle property
Feb 21, 2020
7cf3b0f
remove deprecated gradle property 2
Feb 21, 2020
58b3323
remove deprecated gradle property 3
Feb 21, 2020
88dbb57
remove deprecated gradle property 4
Feb 21, 2020
9cb5186
remove deprecated gradle property 5
Feb 21, 2020
28a0d90
updates eosio version
takn Feb 25, 2020
fd3ac8c
kick build
takn Feb 25, 2020
7cdd04a
update version
takn Feb 25, 2020
a2a9c6c
Merge pull request #45 from EOSIO/feature/eosio-java-library-version-…
anguyenqd Feb 26, 2020
9f863c7
Update README.md
anguyenqd Feb 26, 2020
b0da23c
Update build.gradle
anguyenqd Feb 26, 2020
7aa158d
Update README.md
anguyenqd Feb 26, 2020
faebf17
Merge pull request #46 from EOSIO/feature/eosjava-library-version-update
GonnaGitYou Feb 26, 2020
8280e5d
Update README.md
anguyenqd Feb 26, 2020
a7add08
Merge pull request #47 from EOSIO/release/v0.1.1
anguyenqd Feb 27, 2020
6563ce1
Test
Jul 7, 2020
7fe6733
Delete app and port over testing frameworks
Jul 7, 2020
a1f1b9d
Artifacts
Jul 8, 2020
a6f5cd3
Build JAR properly and update tests with server side json
Jul 8, 2020
6667c84
Remove commented out gradle script configs
Jul 8, 2020
818c35a
Remove connectedCheck (android-specific)
Jul 8, 2020
64f52ca
Exclude duplicate dependencie
Jul 13, 2020
ba70084
Remove App from settings.gradle
Jul 13, 2020
c1923a3
Update README
Jul 14, 2020
61e8158
Merged develop.
GonnaGitYou Jul 21, 2020
365f8be
Remove PushTransaction
Aug 19, 2020
2ebc924
Update test constants
Aug 19, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 75 additions & 16 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,23 +1,82 @@
# Compiled class file
# Built application files
*.apk
*.ap_
*.aab

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Log file
# Generated files
bin/
gen/
out/

# Gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties
gradle.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# BlueJ files
*.ctxt
# Android Studio Navigation editor temp files
.navigation/

# Android Studio captures folder
captures/

# IntelliJ
*.iml
.idea/workspace.xml
.idea/tasks.xml
.idea/gradle.xml
.idea/assetWizardSettings.xml
.idea/dictionaries
.idea/libraries
.idea/caches
# Android Studio 3 in .gitignore file.
.idea/caches/build_file_checksums.ser
.idea/modules.xml
.idea/codeStyles/Project.xml
.idea/codeStyles/codeStyleConfig.xml
.idea/misc.xml
.idea/runConfigurations.xml

# Keystore files
# Uncomment the following lines if you do not want to check your keystore files in.
#*.jks
#*.keystore

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild

# Google Services (e.g. APIs or Firebase)
# google-services.json

# Freeline
freeline.py
freeline/
freeline_project_description.json

# Version control
vcs.xml

# Mobile Tools for Java (J2ME)
.mtj.tmp/
# lint
lint/intermediates/
lint/generated/
lint/outputs/
lint/tmp/
# lint/reports/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
gradle.properties

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.idea
106 changes: 106 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
language: android
jdk: oraclejdk8
env:
global:
- DATE=`date +"%Y-%m-%d-%H%M"`
- ANDROID_API=28
- EMULATOR_API=25
- ANDROID_BUILD_TOOLS=28.0.3
- ABI=x86_64
- EMU_FLAVOR=default # use google_apis flavor if no default flavor emulator
- ADB_INSTALL_TIMEOUT=10 # minutes
- TOOLS=${ANDROID_HOME}tools
- PATH=${ANDROID_HOME}:${ANDROID_HOME}emulator:${TOOLS}:${TOOLS}/bin:${ANDROID_HOME}platform-tools:${PATH}
- ARTIFACTORY_CONTEXT_URL=https://blockone.jfrog.io/blockone
- ARTIFACTORY_REPO=android-libs-scratch-local
- ARTIFACTORY_LIBS_PATH=https://blockone.jfrog.io/blockone/android-libs

dist: trusty
android:
components:
- tools
- extra-google-google_play_services
- extra-google-m2repository
- extra-android-m2repository

licenses:
- 'android-sdk-preview-license-.+'
- 'android-sdk-license-.+'
- 'google-gdk-license-.+'


before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
- $HOME/.android/build-cache

before_script:
- echo no | ${ANDROID_HOME}tools/bin/avdmanager create avd --force -n test -k "system-images;android-$EMULATOR_API;$EMU_FLAVOR;$ABI" -c 10M
- emulator -verbose -avd test -no-accel -no-snapshot -no-window $AUDIO -camera-back none -camera-front none -selinux permissive -qemu -m 2048 &
- android-wait-for-emulator
- adb shell input keyevent 82 &

before_install:
- echo "artifactory_username=$ARTIFACTORY_USERNAME" > gradle.properties
- echo "artifactory_password=$ARTIFACTORY_PASSWORD" >> gradle.properties
- echo "artifactory_path_android_libraries=$ARTIFACTORY_LIBS_PATH" >> gradle.properties
- echo "artifactory_contextURL=$ARTIFACTORY_CONTEXT_URL" >> gradle.properties
- echo "artifactory_repo=$ARTIFACTORY_REPO" >> gradle.properties


install:
- touch $HOME/.android/repositories.cfg
- yes | sdkmanager "platform-tools" >/dev/null
- yes | sdkmanager "build-tools;$ANDROID_BUILD_TOOLS" >/dev/null
- yes | sdkmanager "tools" >/dev/null
- yes | sdkmanager "platforms;android-$ANDROID_API" >/dev/null
- yes | sdkmanager "platforms;android-$EMULATOR_API" >/dev/null #for matrix builds, we want to also install the matrix version.
- yes | sdkmanager "system-images;android-$EMULATOR_API;$EMU_FLAVOR;$ABI" >/dev/null


script:
- "./gradlew clean check --stacktrace"

before_deploy:
- echo "artifactory_username=$ARTIFACTORY_USERNAME" > gradle.properties
- echo "artifactory_password=$ARTIFACTORY_PASSWORD" >> gradle.properties
- echo "artifactory_path_android_libraries=$ARTIFACTORY_LIBS_PATH" >> gradle.properties
- echo "artifactory_contextURL=$ARTIFACTORY_CONTEXT_URL" >> gradle.properties
- echo "artifactory_repo=$ARTIFACTORY_REPO" >> gradle.properties


deploy:
- provider: script
skip_cleanup: true
script: "bash scripts/deploy-artifactory.sh 'android-libs-feature-local'"
on:
all_branches: true
condition: ${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH} =~ ^feature\/.*$
# develop deploys
- provider: script
skip_cleanup: true
script: "bash scripts/deploy-artifactory.sh 'android-libs-dev-local'"
on:
branch:
- develop
# release branches and master
- provider: script
skip_cleanup: true
script: "bash scripts/deploy-artifactory.sh 'android-libs-release-local'"
on:
all_branches: true
condition: $TRAVIS_BRANCH == master || ${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH} =~ ^release\/.*$
# tagged releases from master, go to distribution
- provider: script
skip_cleanup: true
script: "bash scripts/deploy-artifactory.sh 'eosiojavarpcprovider-product-eosio-dist'"
on:
tags: true
branch: master

after_deploy:
- echo "cleaning up properties"
- rm gradle.properties
170 changes: 170 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
# Contributing to EOSIO SDK for Java: Android RPC Provider

Interested in contributing? That's awesome! Here are some guidelines to get started quickly and easily:

- [Reporting An Issue](#reporting-an-issue)
- [Bug Reports](#bug-reports)
- [Feature Requests](#feature-requests)
- [Change Requests](#change-requests)
- [Working on Android RPC Provider](#working-on-android-rpc-provider)
- [Feature Branches](#feature-branches)
- [Developing With Gradle Locally](#developing-with-gradle-locally)
- [Submitting Pull Requests](#submitting-pull-requests)
- [Testing and Quality Assurance](#testing-and-quality-assurance)
- [Code Style and Linting](#code-style-and-linting)
- [Conduct](#conduct)
- [Contributor License & Acknowledgments](#contributor-license--acknowledgments)
- [References](#references)

## Reporting An Issue

If you're about to raise an issue because you think you've found a problem with Android RPC Provider, or you'd like to make a request for a new feature in the codebase, or any other reason… please read this first.

The GitHub issue tracker is the preferred channel for [bug reports](#bug-reports), [feature requests](#feature-requests), and [submitting pull requests](#submitting-pull-requests), but please respect the following restrictions:

* Please **search for existing issues**. Help us keep duplicate issues to a minimum by checking to see if someone has already reported your problem or requested your idea.

* Please **be civil**. Keep the discussion on topic and respect the opinions of others. See also our [Contributor Code of Conduct](#conduct).

### Bug Reports

A bug is a _demonstrable problem_ that is caused by the code in the repository. Good bug reports are extremely helpful - thank you!

Guidelines for bug reports:

1. **Use the GitHub issue search** — check if the issue has already been
reported.

1. **Check if the issue has been fixed** — look for [closed issues in the
current milestone](/../../issues?q=is%3Aissue+is%3Aclosed) or try to reproduce it
using the latest `develop` branch.

A good bug report shouldn't leave others needing to chase you down for more information. Be sure to include the details of your environment and relevant tests that demonstrate the failure.

[Report a bug](/../../issues/new?title=Bug%3A)

### Feature Requests

Feature requests are welcome. Before you submit one be sure to have:

1. **Use the GitHub search** and check the feature hasn't already been requested.
1. Take a moment to think about whether your idea fits with the scope and aims of the project.
1. Remember, it's up to *you* to make a strong case to convince the project's leaders of the merits of this feature. Please provide as much detail and context as possible, this means explaining the use case and why it is likely to be common.

### Change Requests

Change requests cover both architectural and functional changes to how Android RPC Provider works. If you have an idea for a new or different dependency, a refactor, or an improvement to a feature, etc - please be sure to:

1. **Use the GitHub search** and check someone else didn't get there first
1. Take a moment to think about the best way to make a case for, and explain what you're thinking. Are you sure this shouldn't really be a [bug report](#bug-reports) or a [feature request](#feature-requests)? Is it really one idea or is it many? What's the context? What problem are you solving? Why is what you are suggesting better than what's already there?

## Working on Android RPC Provider

Code contributions are welcome and encouraged! If you are looking for a good place to start, check out the [good first issue](/../../labels/good%20first%20issue) label in GitHub issues.

Also, please follow these guidelines when submitting code:

### Feature Branches

To get it out of the way:

- **[develop](/../../tree/develop)** is the development branch. All work on the next release happens here so you should generally branch off `develop`. Do **NOT** use this branch for a production site.
- **[master](/../../tree/master)** contains the latest release of Android RPC Provider. This branch may be used in production. Do **NOT** use this branch to work on Android RPC Provider's source.

### Developing With Gradle Locally

By default, libraries are installed from remote Maven repositories through Gradle. If, however, you wish to develop locally and you'd like to integrate with locally-cloned versions of EOSIO SDK for Java and/or other Providers, follow these instructions:

1. Clone this and other repos into the same directory, as siblings of one another.
1. Github repo of all libraries:
* [EOSIO SDK for Java](https://github.com/EOSIO/eosio-java): The core EOSIO SDK for Java library
* [RPC Provider](https://github.com/EOSIO/eosio-java-android-rpc-provider): The RPC provider implementation in the core library
* [ABIEOS Serialization Provider](https://github.com/EOSIO/eosio-java-android-abieos-serialization-provider): A pluggable serialization provider for EOSIO SDK for Java using ABIEOS (for transaction and action conversion between JSON and binary data representations)
* [Softkey Signature Provider](https://github.com/EOSIO/eosio-java-softkey-signature-provider): An example pluggable signature provider for EOSIO SDK for Java for signing transactions using in-memory keys (not for production use)
1. Import as a gradle project into your favorite IDE or build with gradle from the command line.
1. Develop!

### Submitting Pull Requests

Pull requests are awesome. If you're looking to raise a PR for something which doesn't have an open issue, please think carefully about [raising an issue](#reporting-an-issue) which your PR can close, especially if you're fixing a bug. This makes it more likely that there will be enough information available for your PR to be properly tested and merged.

### Testing and Quality Assurance

Never underestimate just how useful quality assurance is. If you're looking to get involved with the code base and don't know where to start, checking out and testing a pull request is one of the most useful things you could do.

Essentially, [check out the latest develop branch](#working-on-rpc-provider), take it for a spin, and if you find anything odd, please follow the [bug report guidelines](#bug-reports) and let us know!

### Code Style and Linting

Android RPC Provider leverages [SonarLint](https://www.sonarlint.org/) for linting and the [Google Java Style Guide](https://github.com/google/styleguide) with tab size and indent set to 4, and continuation indent set to 8 for code format flagging. Once SonarLint is installed, linting warnings and errors will be flagged inline with squiggles. Automatic code formatting can be accomplished by downloading and importing the Google Java Style settings into your IDE.

Please be sure to resolve any linting issues introduced by your contributions prior to requesting a review on your PR.

## Conduct

While contributing, please be respectful and constructive, so that participation in our project is a positive experience for everyone.

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 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



## Contributor License & Acknowledgments

Whenever you make a contribution to this project, you license your contribution under the same terms as set out in LICENSE, and you represent and warrant that you have the right to license your contribution under those terms. Whenever you make a contribution to this project, you also certify in the terms of the Developer’s Certificate of Origin set out below:

```
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.


Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or

(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or

(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.

(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
```

## References

* Overall CONTRIB adapted from https://github.com/mathjax/MathJax/blob/master/CONTRIBUTING.md
* Conduct section adapted from the Contributor Covenant, version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
Loading