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

Option 2: Mono Repository with Umbrella Apps Structure #472

Merged
merged 484 commits into from
May 27, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
484 commits
Select commit Hold shift + click to select a range
51800d1
fix dialyzer
gyounes Apr 3, 2017
8b11f4e
update comments on behaviour
gyounes Apr 6, 2017
aca72bb
fix lint
gyounes Apr 6, 2017
e05d897
simplified proper-specifications for flags
peterzeller Apr 6, 2017
3ea9ad0
Merge pull request #15 from SyncFree/flag-crdts
peterzeller Apr 6, 2017
98b964d
initial port from riak_pb
peterzeller May 7, 2017
a612b4c
fix app specification
peterzeller May 17, 2017
017bb88
rename; refactor
gyounes Jan 22, 2018
599e4bc
remove experimental
gyounes Jan 22, 2018
d223632
remove reset ops from mag-go
gyounes Jan 26, 2018
c50ad93
added error handling for update_objects
aletomsic Jan 27, 2018
09a2f88
added error handling for update_objects
aletomsic Jan 27, 2018
c4c452c
removing old rebar
bieniusa Feb 3, 2018
637bf96
Update README.md
bieniusa Feb 3, 2018
6aa161b
Update README.md
bieniusa Feb 3, 2018
3914b39
support for travis and Erlang 20
bieniusa Feb 3, 2018
7940a43
Merge pull request #1 from SyncFree/erlang19
bieniusa Feb 4, 2018
599c5fe
Compatibility with Erlang 20
bieniusa Feb 4, 2018
b41a44d
Update README.md
bieniusa Feb 4, 2018
65f72c5
Update README.md
bieniusa Feb 4, 2018
9ac5d76
rename with prefix
gyounes Feb 5, 2018
a2fe3d5
update .gitignore
gyounes Feb 5, 2018
303dc70
keep type names short
gyounes Feb 5, 2018
656a8c6
Merge pull request #21 from gyounes/master
peterzeller Mar 21, 2018
0ef02dd
project structure and copied vectorclock module from Antidote
peterzeller Mar 29, 2018
b18b7fd
implementation of vector-clocks based on maps
peterzeller Mar 29, 2018
0bb00a0
updated antidote proto definitions (new CRDTs)
peterzeller May 11, 2018
e09ffa7
add error message
peterzeller May 11, 2018
eec719e
export functions
peterzeller May 11, 2018
bea423b
wip: improve interface
peterzeller May 11, 2018
ed86f16
decode_message function
peterzeller May 14, 2018
d5b1c8d
more precise types
peterzeller May 14, 2018
9cbd4e1
fix types
peterzeller May 14, 2018
bbc380c
improve types
peterzeller May 14, 2018
06e052d
added operation-response
peterzeller May 25, 2018
73fd8f2
provide additional interface, which has better dialyzer support and i…
peterzeller May 28, 2018
f952e10
fixed documentation for proper
peterzeller May 28, 2018
2d2b574
add more documentation for library users
peterzeller May 28, 2018
714a2c7
fixed travis.yml
peterzeller May 28, 2018
998cafd
Merge pull request #24 from peterzeller/improved-types
bieniusa May 28, 2018
fdae22c
remove gpb plugin and include generated files
peterzeller Jun 7, 2018
1b7c2fe
updated riak_pb dependency
peterzeller Sep 6, 2018
90e4189
add riak_pb as dependency
peterzeller Sep 6, 2018
cb8750b
Merge pull request #2 from peterzeller/application-fix
deepthidevaki Sep 6, 2018
808c2d6
Eliminating the depends on riak_dt
Sep 6, 2018
d6e433c
Type compatibility with antidote's bcounter_mgr
Sep 6, 2018
43350a4
Updating the travis settings for erlang 21.0 and 20.3
Sep 6, 2018
b1a12a6
Adapted Readme to type changes
bieniusa Sep 6, 2018
5cf852a
Some more type fixes
Sep 6, 2018
7e4e9be
Updating rebar3
Sep 6, 2018
9da0c1c
Updated meck version manually
Sep 7, 2018
04679ae
Added missing plugins for antidote
Sep 7, 2018
6b16051
Fixed plugins
Sep 7, 2018
5d01965
Fixed meck dependency
Sep 7, 2018
3113195
Readded plugins
Sep 7, 2018
297de0d
Fixed indentation to make linter happy
Sep 7, 2018
968fd0d
Update travis link
deepthidevaki Sep 11, 2018
c721844
Merge branch 'master' into otp21
albsch Sep 12, 2018
04cdbec
Use tag version
albsch Sep 12, 2018
acac628
Merge pull request #3 from AntidoteDB/otp21
albsch Sep 12, 2018
07d2a8f
Fixed riak_pb version
albsch Sep 12, 2018
fe29ac7
Renaming the app.src
bieniusa Sep 21, 2018
4663770
Merge pull request #4 from AntidoteDB/rename
bieniusa Sep 21, 2018
77569b8
update travisci link
goncalotomas Sep 22, 2018
19a0b3d
remove local rebar3 binary
goncalotomas Sep 22, 2018
aa05092
add package metadata required for hex
goncalotomas Sep 22, 2018
b52c78f
fix error in .app.src
goncalotomas Sep 23, 2018
0730717
Merge pull request #5 from goncalotomas/master
bieniusa Sep 23, 2018
7b3b631
prepare for hex
goncalotomas Sep 25, 2018
a20119a
Merge pull request #1 from goncalotomas/master
bieniusa Sep 25, 2018
ba99f17
Updates for hex publication
Sep 25, 2018
9a530ba
Fixing references to former riak_pb dependency
Sep 25, 2018
1721795
Using the correct encode/decode messages now
Sep 25, 2018
be14f2c
prepare for hex
goncalotomas Sep 25, 2018
0f980ea
delete rebar3, test r20, r21
goncalotomas Sep 25, 2018
3560e6b
add travis badge
goncalotomas Sep 25, 2018
949922a
use 21.0 in travis script
goncalotomas Sep 25, 2018
5a5bc35
prepare for hex
goncalotomas Sep 25, 2018
9a52991
Merge pull request #6 from AntidoteDB/error-handling
bieniusa Sep 29, 2018
fd13c9d
rollout 0.2.4
goncalotomas Sep 29, 2018
78a1b60
fix type spec of abort_transaction
goncalotomas Oct 1, 2018
e86a71f
use consistent naming for package, prepare to rollout 0.2.5
goncalotomas Oct 1, 2018
4299168
use consistent naming for package, prepare to rollout 0.2.5
goncalotomas Oct 1, 2018
369046e
improve documentation
goncalotomas Oct 1, 2018
c8c67c9
add start_transaction/2 when no txn properties are wanted
goncalotomas Oct 1, 2018
b8186df
Adding missing DC management messages
Oct 2, 2018
0564041
Update document link in README
Oct 3, 2018
cd5ab03
Merge pull request #26 from vorce/fix_doc_link
bieniusa Oct 3, 2018
a1ffab3
fix error in static transactions
goncalotomas Oct 8, 2018
e8f5c00
add more tests
deepthidevaki Oct 9, 2018
b36011a
update protopuf lib to 4.4.0
peterzeller Oct 9, 2018
7be2d8f
regcompiled protobuf definition
peterzeller Oct 9, 2018
11df581
fixed dialyzer error
peterzeller Oct 9, 2018
3e092a4
add travis configuration
peterzeller Oct 9, 2018
32a16ab
backwards compatibility: use same message codes as in https://github.…
peterzeller Oct 9, 2018
8361d03
Merge pull request #3 from AntidoteDB/dc_management
bieniusa Oct 9, 2018
3ef3d12
Changes to support the migration to ranch
Oct 10, 2018
e02f6d6
Transaction properties are lists
bieniusa Oct 10, 2018
1bbb73a
bumpbed version
bieniusa Oct 10, 2018
e8c0fbc
Merge pull request #4 from AntidoteDB/to_ranch
peterzeller Oct 10, 2018
c8724e5
Fixing dependencies
bieniusa Nov 4, 2018
942ed1d
Merge branch 'master' into api/documentation-improv
bieniusa Nov 4, 2018
74fc7e0
Merge pull request #7 from AntidoteDB/api/documentation-improv
bieniusa Nov 4, 2018
b8934ed
Unifying copyrights for antidote and antidote_crdt
CBaquero Dec 3, 2018
8a7b6f9
Merge pull request #27 from CBaquero/master
bieniusa Dec 3, 2018
67a31f7
Just a bit of tidying up
bieniusa Mar 11, 2019
84c1997
Merge branch 'master' into map-based
bieniusa Mar 11, 2019
2393ed6
Added stuff for the coverage badge
bieniusa Mar 13, 2019
fffe3fa
Trying to fix the coverall sending
bieniusa Mar 13, 2019
8aaad1f
Missing script
bieniusa Mar 13, 2019
5ca3200
More efficient version of max
bieniusa Apr 15, 2019
d2b6c52
Merge pull request #1 from AntidoteDB/map-based
bieniusa Apr 15, 2019
bdd4082
Bump version number for hex.pm
bieniusa Apr 15, 2019
c84538d
Update lager dependency to most recent version
dvasilas Apr 18, 2019
5c15638
Merge pull request #9 from dvasilas/fix_lager_dep
bieniusa Apr 23, 2019
05dea1a
Adds support for bounded counters
SmallEndian Apr 24, 2019
6f39f51
Adapting the repo
bieniusa May 2, 2019
a144681
adding missing config script
bieniusa May 2, 2019
8518f84
Adding a few more functions
bieniusa Jun 4, 2019
3a9f7ed
Shorter names + fixing types
bieniusa Jun 7, 2019
5469984
forgot set_all
bieniusa Jun 7, 2019
c547dcb
Bump version counter
bieniusa Jun 7, 2019
ac8b46a
final cleanup for version 0.2.0
bieniusa Jun 12, 2019
60b924c
corrections
bieniusa Jun 12, 2019
ab58c74
Invariant entries > 0
bieniusa Jun 12, 2019
eed20a7
Merge pull request #2 from AntidoteDB/extensions
bieniusa Jun 13, 2019
46337e4
add encode_messages for cluster management
peterzeller Jun 18, 2019
5220850
add decode_response for get connection descriptor
peterzeller Jun 19, 2019
c21fcc0
Remove lager dependency
bieniusa Jun 24, 2019
3f5b3a5
Fixing build and hex info
bieniusa Jun 24, 2019
74a80fa
Update .travis.yml
bieniusa Jul 1, 2019
5dfc221
Merge pull request #7 from AntidoteDB/cluster-management-fix2
bieniusa Jul 1, 2019
f910b69
added linter
bieniusa Jul 1, 2019
2331810
Merge branch 'master' of https://github.com/AntidoteDB/antidote_pb_codec
bieniusa Jul 1, 2019
80574bc
Merge branch 'master' into cleanup
bieniusa Jul 2, 2019
b0da597
Fix coveralls
bieniusa Jul 2, 2019
579585b
Missing coveralls stuff
bieniusa Jul 2, 2019
91981b1
Merge pull request #10 from AntidoteDB/cleanup
bieniusa Jul 2, 2019
8836f7a
Update *.gitignore
bieniusa Jul 2, 2019
2fe7e04
Merge branch 'master' of https://github.com/AntidoteDB/antidote-erlan…
bieniusa Jul 2, 2019
6d92a48
Merge pull request #6 from SmallEndian/master
bieniusa Jul 4, 2019
4a5d42b
Cleanup interface (#8)
bieniusa Jul 5, 2019
1523a49
Fixing hex stuff
bieniusa Jul 5, 2019
c54faa8
New pb (#11)
bieniusa Jul 5, 2019
ada47f8
Add error code for abort (#9)
bieniusa Jul 16, 2019
c7817e4
Upgrading the protobuf dependency (#12)
bieniusa Jul 16, 2019
486195f
Added version to proto file (#10)
preguica Jul 31, 2019
2e4c2e9
Initial commit with support for current AntidoteDB stats
Aug 12, 2019
0250c9f
Add locks to transaction properties (#12)
peterzeller Sep 9, 2019
58fe37f
Streamline dc management api (#11)
bieniusa Sep 9, 2019
1f84de1
Pb streamlining (#13)
bieniusa Sep 10, 2019
d04db8b
fixing the decode
bieniusa Sep 11, 2019
4485840
Fix stat async read typo
Oct 23, 2019
ca06d37
Added log_size metric
Oct 23, 2019
f5fbe7d
Modified function clause for info messages
Oct 30, 2019
bcf5a0f
Default implementation is the same
Oct 30, 2019
fc67d85
Moved monitoring docker-compose setup to antidote_stats repository
Nov 6, 2019
d4d5cb6
Preload configuration for grafana and prometheus
Nov 8, 2019
49c74a6
Comments
Nov 8, 2019
d76061b
Added riak_core ring metrics
Nov 8, 2019
a9e5e61
More interal stats WIP
Nov 8, 2019
98b8dea
inter dc and log access stats
Nov 11, 2019
77ff176
Added more transaction stats
Nov 11, 2019
17f0511
Update internal
Nov 11, 2019
3314c1e
Added dc count metric
Nov 11, 2019
9c24c55
Added monitoring description
Nov 11, 2019
2b3b506
Improved naming of graphs
Nov 11, 2019
0c7b4de
Added process info metrics for reductions and message queue
Nov 12, 2019
ae631b0
Added ring grouping as claimant label
Nov 12, 2019
e4b0701
Improved riak ring metrics
Nov 12, 2019
6a6142e
Improved dashboard
Nov 12, 2019
93ba33c
Cosmetic changes
Nov 12, 2019
5ff0b47
added warning count
Nov 12, 2019
50fe89a
Process scrape time metric
Nov 12, 2019
cbe6dc2
Improved dashboard
Nov 12, 2019
7c1d82e
Added log_reset
Dec 5, 2019
aa6fcdb
small performance optimization in aw-set:
peterzeller Dec 8, 2019
b1e705c
Merge pull request #30 from AntidoteDB/set_aw_opt
bieniusa Dec 8, 2019
3f86a57
fix backwards-comatibility issue (#13)
peterzeller Dec 11, 2019
1b78079
Removes unused type exports (#31)
PascalDierich Mar 13, 2020
584acd9
Make identation consistent
PascalDierich Mar 20, 2020
c1a7b95
Merge pull request #32 from PascalDierich/master
bieniusa Mar 20, 2020
5ec29c4
Set path of rebar3 in Makefile to project's path
PascalDierich Mar 22, 2020
92b3dc8
Merge pull request #33 from PascalDierich/rebar3_path
bieniusa Mar 23, 2020
c06f3ae
Upgraded deps for Erlang 23 (#3)
albsch Sep 3, 2020
f355e14
Refactored antidote_crdt_counter_b and added tests
FairPlayer4 Sep 13, 2020
2bb5e68
Added .editorconfig for auto code formatting
FairPlayer4 Sep 13, 2020
f73c2b6
Merge pull request #34 from FairPlayer4/add_editor_config
bieniusa Sep 13, 2020
2d71c51
Merge pull request #35 from FairPlayer4/BCounter_Refactor
bieniusa Sep 13, 2020
905eb5f
Updated the config of antidote_crdt
FairPlayer4 Sep 20, 2020
ea7f752
Trying one more simplification
FairPlayer4 Sep 20, 2020
a504c84
Added proper via project_plugins
Sep 21, 2020
b3b67bc
Merge branch 'FairPlayer4-update_config_final' into master
Sep 21, 2020
e8d0baa
Implement a secure PN-Counter CRDT based on the Paillier cryptosystem
Sep 21, 2020
62b5c71
Allow CRDT type aliases
Sep 21, 2020
d0ac2f1
Use antidote_crdt module for nested type calls in the map CRDTs
Sep 22, 2020
3559fb4
Require N square parameter in all operations of the secure PN-Counter
Sep 23, 2020
2367858
Merge pull request #40 from mrshankly/secure-crdt
bieniusa Oct 8, 2020
cbf5de0
Create erlang.yml
bieniusa May 17, 2021
058fdb0
Removed wrong test targets and added proper tests
bieniusa May 17, 2021
160c096
Fixed rebar config for github workflows
May 17, 2021
4050bd9
Support for erl24 (#41)
bieniusa May 18, 2021
18edab4
Update README.md
albsch May 18, 2021
7954038
Bumped version
May 18, 2021
ae42fcb
Adds messages to conditionnaly retrieve a CRDT value.
liaud Dec 10, 2021
27371a2
Dependencies & Github Actions (#4)
bieniusa Feb 25, 2022
35e6523
https in dep url instead of git
define-null Mar 22, 2022
d670884
Merge pull request #6 from define-null/defnull/https-in-dependency-links
bieniusa Mar 22, 2022
b57dad6
Improved examples in README file (#15)
balegas Mar 24, 2022
e2c5665
Mono repository with umbrella apps structure
May 10, 2022
d5ffef4
Removed implicit deps
May 10, 2022
920f645
Added non-local dependency
May 10, 2022
0cbd61f
linting, towards coverage
May 16, 2022
294f075
Towards eunit
May 16, 2022
00cbfa8
bumped rebar3 version
May 17, 2022
01ea09e
default args
May 17, 2022
01467ca
Towards github workflows
May 17, 2022
ab7315f
uncomment lint for now
May 17, 2022
d28ee64
towards docker setup
May 17, 2022
ad158fd
deps working and linting working
May 18, 2022
67fd6aa
linting
May 19, 2022
7d772b1
Add property based tests to workflow
May 19, 2022
b0e7516
dialyzer fixes
May 19, 2022
bbdafac
Revert dialyzer fix 1
May 19, 2022
748364d
lint
May 19, 2022
07ce3bb
Ignore bad dialyzer report
May 19, 2022
673a2af
docker grafana setup and coveralls
May 19, 2022
eff8bd4
top level license file
May 19, 2022
0bc933e
Removed travis workflows
May 20, 2022
952cb2d
erlfmt formatter
May 27, 2022
952a739
removed client
May 27, 2022
a9d4929
new structure
May 27, 2022
5837fe7
Merged histories of antidote erlang client
May 27, 2022
cc40a77
format
May 27, 2022
254b9d5
apps structure
May 27, 2022
1c60478
Merge remote-tracking branch 'stats/master' into mono-apps-hist
May 27, 2022
49a0fc0
Merge pull request #15 from liaud/master
albsch May 27, 2022
d5abea3
apps repo
May 27, 2022
fdf946e
Merge remote-tracking branch 'codec/master' into mono-apps-hist
May 27, 2022
affdabc
format pb codec
May 27, 2022
15290c9
apps structure
May 27, 2022
cd922fe
Merge remote-tracking branch 'crdt/master' into mono-apps-hist
May 27, 2022
d06588c
crdt format
May 27, 2022
012cfa9
replayed permissions fix
May 27, 2022
adbb5be
apps structure
May 27, 2022
74d435b
Merge remote-tracking branch 'vect/master' into mono-apps-hist
May 27, 2022
5c8c005
Removed unneccessary files
May 27, 2022
ed3d582
format hrl files and manual format fix
May 27, 2022
7ce89a9
Remove leftovers
May 27, 2022
6ac3793
dialyzer fixes
May 27, 2022
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
2 changes: 0 additions & 2 deletions .dockerignore

This file was deleted.

17 changes: 0 additions & 17 deletions .editorconfig

This file was deleted.

2 changes: 2 additions & 0 deletions .github/workflows/erlang.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ jobs:
run: epmd -daemon
- name: Unit Tests
run: make test
- name: Property-Based Tests
run: make proper
- name: System Tests
run: make systests
- name: Coverage
Expand Down
46 changes: 14 additions & 32 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,37 +1,19 @@
_build/
*.beam
.rebar3
_*
.eunit
rel/antidote
dev
*.o
*.beam
*.plt
*.swp
*.swo
src/*.swo
dialyzer_unhandled_warnings
.local_dialyzer_plt
dialyzer_warnings
doc/
.DS_Store
logs/
logger_logs/
eunit_logs/
tags
rel/vars/*.config
docs/_site/
docs/.sass-cache/
docs/.jekyll-metadata
docs/_pdf
docs/.idea/
log/
data/
compile_commands.json
data.*/
log.*/
.erlang.cookie
ebin
log
erl_crash.dump
.rebar
logs
_build
.idea
*.iml
rebar3.crashdump
test/.rebar3/erlcinfo
.idea/
antidote.iml
edoc/
#docker local builds uses a tmp dir to fetch build scripts
docker-tmpdir*
*.coverdata
*~
1 change: 0 additions & 1 deletion LICENSE.TXT
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,3 @@ elli MIT
prometheus MIT
prometheus_process_collector MIT
elli_prometheus BSD-3
lager Apache 2.0
12 changes: 8 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ reltest: rel
# style checks
lint:
${REBAR} lint
${REBAR} fmt --check

check: distclean test reltest dialyzer lint

Expand All @@ -46,21 +47,24 @@ stage :
test:
${REBAR} eunit

proper:
${REBAR} proper

coverage:
${REBAR} cover --verbose

singledc:
ifdef SUITE
${REBAR} ct --dir test/singledc --suite ${SUITE}
${REBAR} ct --dir apps/antidote/test/singledc --suite ${SUITE}
else
${REBAR} ct --dir test/singledc --cover_export_name=singledc
${REBAR} ct --dir apps/antidote/test/singledc --cover_export_name=singledc
endif

multidc:
ifdef SUITE
${REBAR} ct --dir test/multidc --suite ${SUITE}
${REBAR} ct --dir apps/antidote/test/multidc --suite ${SUITE}
else
${REBAR} ct --dir test/multidc --cover_export_name=multidc
${REBAR} ct --dir apps/antidote/test/multidc --cover_export_name=multidc

endif

Expand Down
8 changes: 8 additions & 0 deletions apps/antidote-erlang-client/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
deps/
ebin/
_build/
*.xml
logs/
*.beam
*.o
erl_crash.dump
177 changes: 177 additions & 0 deletions apps/antidote-erlang-client/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS
Loading