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

a #13

Closed
wants to merge 211 commits into from
Closed

a #13

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
211 commits
Select commit Hold shift + click to select a range
18aba06
Fix docker run command
Jun 12, 2015
c017149
Merge pull request #1 from wmorin/fix-command-typo
puckel Jun 12, 2015
8310bd4
Configuration to test a complete architecture with MySQL and RabbitMQ…
puckel Jun 18, 2015
8a020b9
Fix issue Error connected to database #2
puckel Aug 4, 2015
af92478
Release 1.4.0
puckel Aug 23, 2015
003cc25
Update README
puckel Aug 24, 2015
c2a60b8
Release 1.4.1
puckel Aug 27, 2015
3e0f364
Update README.md
puckel Aug 28, 2015
8301193
Fix tabulation
puckel Aug 28, 2015
9b13b9a
Add fernet_key generation for Encrypt passwords
puckel Sep 7, 2015
3da72d2
Bump to release 1.5.1
puckel Sep 7, 2015
b22217e
Add circle.yml
puckel Sep 8, 2015
25dfe70
Update circle.yml
puckel Sep 8, 2015
295ef8a
Add CircleCI status badge
puckel Sep 8, 2015
21eb19a
Add scheduler to docker-compose.yml and have it wait until mysql is r…
lamroger Sep 10, 2015
4cfdb90
Merge branch 'mrlamroger-feature/scheduler'
puckel Sep 11, 2015
1ff4ba6
Add a check for rabbitmq availability at startup
puckel Sep 12, 2015
10578f4
Fix previous commit
puckel Sep 12, 2015
851c2a6
Add a user airflow
puckel Oct 5, 2015
3d4a558
Use container_name esthetic commit
puckel Oct 5, 2015
8b88292
Use curly brackets in Dockerfile
puckel Oct 5, 2015
dc8fca2
Fix issue #6
puckel Oct 5, 2015
9e21d10
Add AIRFLOW_HOME ENV_VARIABLE in docker-compose.yml
puckel Oct 5, 2015
551ca4b
Merge pull request #7 from puckel/create-airflow-user
puckel Oct 5, 2015
63b8754
Example to add custom dags with a volume definition
puckel Oct 16, 2015
ca7c38e
Remove trailing whitespace
puckel Oct 16, 2015
a35e560
Bump to v1.5.2
puckel Oct 26, 2015
013869f
Rename mysqldb to mysql
puckel Oct 26, 2015
a33b010
Move to the official rabbitmq container
puckel Oct 26, 2015
a11b25f
Fix mysql links
puckel Oct 26, 2015
f39f1c3
Add loop counter in init script
puckel Oct 26, 2015
1434f70
Limit the initdb command to webserver container
puckel Oct 26, 2015
f45be11
Fix links between container
puckel Oct 26, 2015
7461a59
Bump circle to v1.5.2
puckel Oct 28, 2015
203ea8a
Merge pull request #8 from puckel/v1.5.2
puckel Oct 28, 2015
e4422b8
Change to v1.6.0
puckel Nov 13, 2015
1dac2d8
Update README
puckel Nov 13, 2015
4952ca4
Remove container name in docker-compose.yml
puckel Nov 13, 2015
d86cfc1
Rename DB_LOOP to TRY_LOOP
puckel Nov 13, 2015
f6c70b4
Set locale
puckel Nov 13, 2015
d60f65a
Remove locale definition
puckel Nov 13, 2015
89f7b79
Merge pull request #9 from puckel/1.6.0
puckel Nov 13, 2015
ec3c850
v1.6.1
puckel Nov 16, 2015
ac2515c
Update readme for adhoc query informations
puckel Nov 16, 2015
c1ed105
Merge pull request #11 from puckel/1.6.1
puckel Nov 16, 2015
6ea438e
Update README.md
puckel Dec 7, 2015
cdd3b52
v1.6.2
puckel Jan 7, 2016
494ee2a
Merge pull request #14 from puckel/1.6.2
puckel Jan 7, 2016
08dcfdf
fix some ssl/certificate errors
Jan 8, 2016
29f27ab
Merge pull request #15 from jwmarshall/ssl-fixes
puckel Jan 14, 2016
d635f47
Migrate to Debian Jessie
puckel Jan 28, 2016
3794aff
Merge pull request #17 from puckel/move-to-debian_jessie
puckel Jan 28, 2016
3d382d6
Update readme
puckel Jan 28, 2016
15645b7
Fix issue #19
puckel Mar 24, 2016
7085004
Bump to version 1.7.0
puckel Mar 29, 2016
ac9b76a
Merge pull request #20 from puckel/1.7.0
puckel Mar 29, 2016
0b2a8a2
Update README.md
puckel Mar 31, 2016
050dfa1
Release v1.7.1.2
puckel May 23, 2016
9708f5d
Use Docker 1.10 in CircleCI
puckel May 23, 2016
c62d1e2
Merge pull request #21 from puckel/1.7.1
puckel May 23, 2016
8e3c321
Update README.md badges
puckel May 30, 2016
e081205
Added missing packages
Jun 2, 2016
3ea4491
Only use the first argument
Jun 2, 2016
ef5a60c
Merge branch 'fix-fixed-the-entry-script' of https://github.com/fokko…
Jun 2, 2016
5885476
Merge pull request #23 from Fokko/fix-dockerfile-missing-packages
puckel Jun 2, 2016
e93d6ed
Merge pull request #24 from Fokko/fix-fixed-the-entry-script
puckel Jun 2, 2016
8c0085a
Replaced MySQL with Postgresql
Jun 6, 2016
c25f546
Merge branch 'master' of https://github.com/puckel/docker-airflow int…
Jun 6, 2016
3a64b97
Merge pull request #25 from Fokko/fix-replaced-mysql
puckel Jun 14, 2016
9470f4f
Bump Airflow version to 1.7.1.3
puckel Jun 14, 2016
4c558ba
Update circleci version
puckel Jun 14, 2016
06a21a9
Merge pull request #26 from puckel/1.7.1.3
puckel Jun 14, 2016
3ddf7a8
Clean Dockerfile
puckel Jun 21, 2016
9171280
compose: bump to v2 file
jbdalido Jul 19, 2016
9ca7284
Merge pull request #32 from jbdalido/master
puckel Jul 20, 2016
bdd1b70
Add Links section
puckel Jul 26, 2016
6f47c91
Update docker-compose.yml for webserver
hadsed-genapsys Jul 27, 2016
7584530
Merge pull request #34 from hadsed-genapsys/master
puckel Aug 4, 2016
f8010c8
Modify entrypoint.sh to select the type of executor.
puckel Aug 12, 2016
9839fca
Add test case for cmd version (circleCi testà
puckel Aug 12, 2016
9f33f0c
Merge pull request #35 from puckel/refacto_executor
puckel Aug 16, 2016
c179c4f
Update README.md
puckel Aug 22, 2016
129ffd6
Adding Cython to the Dockerfile install list
Oct 5, 2016
39d1c0a
Merge pull request #40 from Antonhansel/fix_panda_cython_error
puckel Oct 11, 2016
e4fd5a6
Add pip install at run for custom python package without rebuild
puckel Oct 14, 2016
2ba7a95
Merge pull request #42 from puckel/custom-pip-p
puckel Oct 15, 2016
5477ea7
Fix issue #39
puckel Oct 17, 2016
8f3189e
Merge pull request #43 from puckel/fernet-key-as-env
puckel Oct 17, 2016
52f60e3
Fix issue #48
puckel Nov 14, 2016
de3803d
Update airflow.cfg
puckel Nov 14, 2016
ce463e1
Bump to v1.7.1.3-5
puckel Nov 16, 2016
26c2dca
Fix issue #45 and #49
puckel Nov 16, 2016
7a26f7d
Set external images version
puckel Nov 16, 2016
fd55a69
Add FERNET_KEY in docker-compose files
puckel Nov 16, 2016
fdf60ee
Speedup restart using `nc -z` (scan mode)
darkk Dec 6, 2016
7a9ac51
Fix stale link & point pythonhosted.org links to https
darkk Dec 6, 2016
3527b8e
Fix typo
darkk Dec 8, 2016
e196c85
Make entrypoint.sh root-owned
darkk Dec 8, 2016
f1ff6a8
Merge pull request #52 from darkk/master
puckel Dec 8, 2016
e8de28d
Move from rabbitmq to Redis
puckel Feb 2, 2017
28e0ab9
Merge pull request #63 from puckel/rmq-to-redis
puckel Feb 2, 2017
98f4334
Bump to 1.7.1.3-7
puckel Feb 2, 2017
7318083
Try Airflow branch 1.8-stable
puckel Feb 16, 2017
4727c44
Fix version
puckel Feb 16, 2017
ba9a084
Rollback to python2 (issue with hdfs client). Optimize entrypoint out…
puckel Feb 17, 2017
5aaf70f
Airflow rc4
puckel Feb 17, 2017
b319ff9
Update readme
puckel Feb 17, 2017
1262247
Set version to rc4
puckel Feb 20, 2017
d4636f9
Fix issue #60 - Run the scheduler and webserver on the same container
puckel Feb 22, 2017
45e861f
Use home foler as volume path for dags
puckel Feb 22, 2017
fbbf504
Update fernet_key in compose file
puckel Feb 27, 2017
aa44b8e
Update fernet_key in compose file
puckel Feb 27, 2017
c4668a1
Fix #69 - Specify via ENV variable postgresql and redis variable
puckel Mar 1, 2017
e5ff7f2
Bump to rc5
puckel Mar 14, 2017
2e4fee5
Bump to rc5
puckel Mar 14, 2017
8354ea6
Use Postgres Port env var when building connection string
mendhak Mar 21, 2017
445c438
Merge pull request #73 from mendhak/v180-postgres-port
puckel Mar 21, 2017
748c009
Bump to 1.8.0
puckel Mar 21, 2017
d178d0b
Merge branch 'master' into v1.8.0
puckel Mar 21, 2017
a2a55ef
Merge pull request #74 from puckel/v1.8.0
puckel Mar 21, 2017
c24b09c
minor grammar changes in Readme.md
kristi Mar 25, 2017
38e3da6
Merge pull request #76 from kristi/patch-1
puckel Mar 26, 2017
238b9ed
Bump to 1.8.1
puckel May 10, 2017
e884e04
Merge pull request #83 from puckel/1.8.1
puckel May 10, 2017
ccb73bd
Update README.md
puckel May 11, 2017
73de181
Add support for setting redis password with REDIS_PASSWORD
ianburrell May 9, 2017
5b52b28
Change REDIS_PASSWORD to set REDIS_PREFIX
ianburrell May 11, 2017
9ef5f55
Update README.md
puckel May 16, 2017
dddf13a
Merge pull request #84 from ianburrell/redis-password
puckel May 29, 2017
9c647c8
Update README.md
puckel Jun 22, 2017
62009f2
Change base to debian:stretch
ianburrell Jun 29, 2017
5f9cb15
Update README.md
puckel Jul 27, 2017
4a0085a
Merge pull request #97 from ianburrell/debian-stretch
puckel Jul 27, 2017
87db6f5
Update to python 3
puckel Jul 27, 2017
9085909
Create LICENSE
puckel Aug 8, 2017
c104e2b
Update README.md
puckel Aug 17, 2017
60c2a64
purge the depends of packages like build-essential
eshizhan Aug 29, 2017
d062774
Merge pull request #112 from eshizhan/patch-1
puckel Aug 29, 2017
f423735
Bump to 1.8.2
puckel Sep 5, 2017
39516f1
Merge pull request #114 from puckel/v1.8.2
puckel Sep 5, 2017
0131e6a
Adds rsync as a default package
odannyc Sep 13, 2017
19c93b7
Update python base image
Sep 28, 2017
650f5f4
Add options to compose file
mhousley Sep 29, 2017
f0711af
Merge pull request #120 from emirot/c/update_readme
puckel Nov 29, 2017
305a90f
Quote variables to remove shellcheck warnings.
ashb Sep 7, 2017
48e7b77
Set Airflow config via environment variables, rather than sed
ashb Sep 7, 2017
f0e5b34
Merge pull request #115 from annalect/env-vars-not-sed
puckel Dec 19, 2017
fab44cd
Add a healthcheck to the webserver
ajhodges Dec 20, 2017
9c01d95
Add a healthcheck to the webserver
ajhodges Dec 20, 2017
4a8c02d
Generalize the wait for port
ashb Sep 8, 2017
e343d0d
Entrypoint now supports running `bash` or other airflow subcommands.
ashb Sep 8, 2017
51c969e
Merge pull request #140 from annalect/support-other-commands
puckel Dec 22, 2017
3cabd57
Merge pull request #138 from ajhodges/patch-1
puckel Dec 22, 2017
55d9a2b
Merge pull request #121 from mhousley/compose-boilerplate
puckel Dec 22, 2017
ea9a036
Merge pull request #117 from odannyc/patch-1
puckel Dec 22, 2017
c8f0361
Update to Apache Airflow 1.9
Jan 3, 2018
f4cf78c
v1.9.0
puckel Jan 3, 2018
b7fe215
Merge branch 'master' into update-to-airflow-19
puckel Jan 3, 2018
27b83eb
Merge branch 'master' into update-to-airflow-19
puckel Jan 3, 2018
017f07b
Merge pull request #143 from Fokko/update-to-airflow-19
puckel Jan 3, 2018
9621055
Adding support and documentation for airflow plugins
theodoresiu Jan 12, 2018
6a60c0b
Small fixes after testing
theodoresiu Jan 12, 2018
caec3fa
custome->custom
maxcountryman Jan 17, 2018
9297218
Merge pull request #148 from maxcountryman/patch-1
puckel Jan 17, 2018
9734cc6
Merge pull request #146 from theodoresiu/add_plugin_support
puckel Jan 24, 2018
a7ab312
Fix celery result_backend config variable
diraol Jan 29, 2018
7a99885
Fix typo
diraol Jan 29, 2018
3dc5a0f
Remove duplicated ENV and simplify pip usage on Dockerfile
diraol Jan 29, 2018
0835f21
Also upgrade docker image on docker build
diraol Jan 29, 2018
321bc42
Merge pull request #152 from diraol/celery_backend
puckel Jan 30, 2018
7872cf1
Fix celery variable on entrypoint
diraol Jan 31, 2018
18bb158
Merge pull request #153 from diraol/celery_backend
puckel Feb 1, 2018
bcd9c6c
fix CELERY_RESULT_BACKEND env var name
rootcss Feb 19, 2018
7eafd87
Merge pull request #161 from rootcss/master
puckel Mar 1, 2018
45fc751
Rollback PR#152
puckel Mar 1, 2018
ef712bc
Bump to 1.9.0-2
puckel Mar 1, 2018
b70f484
Add packages which allow Airflow mysql hook (#158)
arihantsurana Mar 29, 2018
41faa78
Update broken Airflow docs link for Extra packages (#171)
kaxil Apr 11, 2018
678d932
Fix the Airflow doc Extra package link (#172)
kaxil Apr 12, 2018
49401a7
Remove unnecessary packages (#174)
edrzmr Apr 17, 2018
9f00550
Fix issue running docker-airflow without compose (SequentialExecutor)
puckel May 15, 2018
d709f54
Fix instructions for running with SequentialExecutor (#191)
ashb Jun 7, 2018
4aa9038
Update Dockerfile. Fixed Package 'libmysqlclient-dev'. (#188)
achm6174 Jun 7, 2018
132307f
Update celery to 4.1.1 hotfix for kombu 4.2 (#186)
ryanrussell Jun 7, 2018
15699d7
add default arg for docker run to be webserver (#190)
msn1444 Jun 7, 2018
cc6b083
Bump to 1.9.0-4
puckel Jun 7, 2018
05e31dd
Update README.md
puckel Jun 8, 2018
6dc31a2
Update README.md
puckel Jun 14, 2018
fc4e3cd
Bump to Airflow 1.10.0
puckel Aug 29, 2018
45ecb23
renamed celery_result_backend to result_backend (#227)
AdamUnger Aug 31, 2018
fd2da36
Bump to 1.10.0-2
puckel Aug 31, 2018
4076e23
migrate to circleci 2.0 (#243)
ttaschke Oct 9, 2018
e16a6b4
Update config.yml
puckel Oct 9, 2018
27bed36
Optionally install extra airflow and python dependencies. (#232)
jmcarp Oct 22, 2018
c5f9f95
Drop cython (#239)
jmcarp Oct 22, 2018
f6c73e8
Bump to 1.10.0-3
puckel Oct 22, 2018
74968fc
Update README.md
puckel Oct 22, 2018
66bf591
Add airflow extras ssh group
puckel Oct 23, 2018
03eb3b9
Bump to 1.10.0-4
puckel Oct 23, 2018
79c6ea7
Update README.md
puckel Oct 23, 2018
e154033
(#118) Added missing packages for mssql integration (#205)
JaviOverflow Oct 25, 2018
e152be2
Remove unnecessary packages
puckel Nov 7, 2018
42bc4ba
Bump to 1.10.0-5
puckel Nov 7, 2018
52165dc
Drop build packages (#262)
jmcarp Nov 7, 2018
42902d0
Bump to 1.10.1
puckel Nov 22, 2018
40cfa94
Update config.yml
puckel Nov 22, 2018
024cf2d
Bump airflow version (#2) (#304)
medmrgh Jan 28, 2019
dc54b81
Update Dockerfile
Gushono May 27, 2019
43dcfaf
Update Dockerfile
Gushono May 27, 2019
51855b9
Update entrypoint.sh
Gushono May 27, 2019
62472af
Update Dockerfile
Gushono May 27, 2019
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
24 changes: 24 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
version: 2

jobs:
build_and_test:
docker:
- image: docker:18.06.1-ce-git
working_directory: ~/CircleCI/docker-airflow
steps:
- checkout
- setup_remote_docker:
docker_layer_caching: true
- run:
name: Build docker image
command: |
docker build -t puckel/docker-airflow .
- run:
name: Test docker image
command: |
docker run puckel/docker-airflow version |grep '1.10.2'
workflows:
version: 2
build_and_test:
jobs:
- build_and_test
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,6 @@ Session.vim

# sftp configuration file
sftp-config.json

# Python
__pycache__
92 changes: 70 additions & 22 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,37 +1,85 @@
# VERSION 1.0
# VERSION 1.10.1
# AUTHOR: Matthieu "Puckel_" Roisil
# DESCRIPTION: Basic Airflow container
# BUILD: docker build --rm -t puckel/docker-airflow
# BUILD: docker build --rm -t puckel/docker-airflow .
# SOURCE: https://github.com/puckel/docker-airflow

FROM debian:wheezy
MAINTAINER Puckel_
FROM python:3.6-slim
LABEL maintainer="Puckel_"

# Never prompts the user for choices on installation/configuration of packages
ENV DEBIAN_FRONTEND noninteractive
ENV TERM linux
# Work around initramfs-tools running on kernel 'upgrade': <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=594189>
ENV INITRD No

ENV AIRFLOW_HOME /usr/local/airflow
# Airflow
ARG AIRFLOW_VERSION=1.10.1
ARG AIRFLOW_HOME=/usr/local/airflow
ARG AIRFLOW_DEPS=""
ARG PYTHON_DEPS=""
ENV AIRFLOW_GPL_UNIDECODE yes

RUN apt-get update -yqq \
# Define en_US.
ENV LANGUAGE en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LC_ALL en_US.UTF-8
ENV LC_CTYPE en_US.UTF-8
ENV LC_MESSAGES en_US.UTF-8

RUN set -ex \
&& buildDeps=' \
freetds-dev \
libkrb5-dev \
libsasl2-dev \
libssl-dev \
libffi-dev \
libpq-dev \
git \
' \
&& apt-get update -yqq \
&& apt-get upgrade -yqq \
&& apt-get install -yqq --no-install-recommends \
python-pip \
python-dev \
build-essential \
&& mkdir /usr/local/airflow \
&& pip install airflow \
&& airflow initdb \
$buildDeps \
freetds-bin \
build-essential \
default-libmysqlclient-dev \
apt-utils \
curl \
rsync \
netcat \
locales \
&& sed -i 's/^# en_US.UTF-8 UTF-8$/en_US.UTF-8 UTF-8/g' /etc/locale.gen \
&& locale-gen \
&& update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 \
&& useradd -ms /bin/bash -d ${AIRFLOW_HOME} airflow \
&& pip install -U pip setuptools wheel \
&& pip install pytz \
&& pip install pyOpenSSL \
&& pip install ndg-httpsclient \
&& pip install jsondiff \
&& pip install deepdiff \
&& pip install pyasn1 \
&& pip install apache-airflow[crypto,celery,postgres,hive,jdbc,mysql,ssh${AIRFLOW_DEPS:+,}${AIRFLOW_DEPS}]==${AIRFLOW_VERSION} \
&& pip install 'redis>=2.10.5,<3' \
&& if [ -n "${PYTHON_DEPS}" ]; then pip install ${PYTHON_DEPS}; fi \
&& apt-get purge --auto-remove -yqq $buildDeps \
&& apt-get autoremove -yqq --purge \
&& apt-get clean \
&& rm -rf \
/var/lib/apt/lists/* \
/tmp/* \
/var/tmp/* \
/usr/share/man \
/usr/share/doc \
/usr/share/doc-base
/var/lib/apt/lists/* \
/tmp/* \
/var/tmp/* \
/usr/share/man \
/usr/share/doc \
/usr/share/doc-base

COPY script/entrypoint.sh /entrypoint.sh
COPY config/airflow.cfg ${AIRFLOW_HOME}/airflow.cfg

RUN chown -R airflow: ${AIRFLOW_HOME}

EXPOSE 8080
EXPOSE 8080 5555 8793

CMD ["airflow","webserver","-p","8080"]
USER airflow
WORKDIR ${AIRFLOW_HOME}
ENTRYPOINT ["/entrypoint.sh"]
CMD ["webserver"] # set default arg for entrypoint
201 changes: 201 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright 2017 Matthieu "Puckel_" Roisil

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Loading