分布式调度框架。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

153 KiB

EasyScheduler Proposal

Abstract

EasyScheduler is a distributed ETL scheduling engine with powerful DAG visualization interface. EasyScheduler focuses on solving the problem of 'complex task dependencies & triggers ' in data processing. Just like its name, we dedicated to making the scheduling system out of the box.

Proposal

EasyScheduler provides many easy-to-use features to accelerate the engineer enficiency on data ETL workflow job. We propose a new concept of 'instance of process' and 'instance of task' to let developers to tuning their jobs on the running state of workflow instead of changing the task's template. Its main objectives are as follows:

  • Define the complex tasks' dependencies & triggers in a DAG graph by dragging and dropping.
  • Support cluster HA.
  • Support multi-tenant and parallel or serial backfilling data.
  • Support automatical failure job retry and recovery.
  • Support many data task types and process priority, task priority and relative task timeout alarm.

For now, EasyScheduler has a fairly huge community in China. It is also widely adopted by many companies and organizations as its ETL scheduling tool.

We believe that bringing EasyScheduler into ASF could advance development of a much more stronger and more diverse open source community.

Analysys submits this proposal to donate EasyScheduler's source codes and all related documentations to Apache Software Foundation. The codes are already under Apache License Version 2.0.

Background

We want to find a data processing tool with the following features:

  • Easy to use,developers can build a ETL process with a very simple drag and drop operation. not only for ETL developers,people who can't write code also can use this tool for ETL operation such as system adminitrator.
  • Solving the problem of "complex task dependencies" , and it can monitor the ETL running status.
  • Support multi-tenant.
  • Support many task types: Shell, MR, Spark, SQL (mysql, postgresql, hive, sparksql), Python, Sub_Process, Procedure, etc.
  • Support HA and linear scalability.

For the above reasons, we realized that no existing product met our requirements, so we decided to develop this tool ourselves. We designed EasyScheduler at the end of 2017. The first internal use version was completed in May 2018. We then iterated several internal versions and the system gradually became stabilized.

Then we open the source code of EasyScheduler on March 2019. It soon gained lot's of ETL developers interest and stars on github.

Rationale

Many organizations (>30) (refer to Who is using EasyScheduler ) already benefit from running EasyScheduler to make data process pipelines more easier. More than 100 feature ideas come from EasyScheduler community. Some 3rd-party projects also plan to integrate with EasyScheduler through task plugin, such as Scriptis, waterdrop. These will strengthen the features of EasyScheduler.

Current Status

Meritocracy

EasyScheduler was incubated at Analysys in 2017 and open sourced on GitHub in March 2019. Once open sourced, we have been quickly adopted by multiple organizations,EasyScheduler has contributors and users from many companies; we have set up the Committer Team. New contributors are guided and reviewed by existed committer members. Contributions are always welcomed and highly valued.

Community

Now we have set development teams for EasyScheduler in Analysys, and we already have external developers who contributed the code. We already have a user group of more than 1,000 people. We hope to grow the base of contributors by inviting all those who offer contributions through The Apache Way. Right now, we make use of github as code hosting as well as gitter for community communication.

Core Developers

The core developers, including experienced senior developers, are often guided by mentors.

Known Risks

Orphaned products

EasyScheduler is widely adopted in China by many companies and organizations. The core developers of EasyScheduler team plan to work full time on this project. Currently there are 10 use cases with more that 1000 activity tasks per day using EasyScheduler in the user's production environment. There is very little risk of EasyScheduler getting orphaned as at least two large companies (xueqiu、fengjr) are widely using it in their production, and developers from these companies have also joined Easy Scheduler's team of contributors, EasyScheduler has eight major releases so far, and and received 373 pull requests from contributors, which further demonstrates EasyScheduler as a very active project. We also plan to extend and diversify this community further through Apache.

Thus, it is very unlikely that EasyScheduler becomes orphaned.

Inexperience with Open Source

EasyScheduler's core developers have been running it as a community-oriented open source project for some time, several of them already have experience working with open source communities, they are also active in presto, alluxio and other projects. At the same time, we will learn more open source experiences by following the Apache way in our incubator journey.

Homogenous Developers

The current developers work across a variety of organizations including Analysys, guandata and hydee; some individual developers are accepted as developers of EasyScheduler as well. Considering that fengjr and sefonsoft have shown great interests in EasyScheduler, we plan to encourage them to contribute and invite them as contributors to work together.

Reliance on Salaried Developers

At present, eight of the core developers are paid by their employer to contribute to EasyScheduler project. we also have some other developers and researchers taking part in the project, and we will make efforts to increase the diversity of the contributors and actively lobby for Domain experts in the workflow space to contribute.

Relationships with Other Apache Products

EasyScheduler integrates Apache Zookeeper as one of the service registration/discovery mechanisms. EasyScheduler is deeply integrated with Apache products. It currently support many task types like Apache Hive, Apache Spark, Apache Hadoop, and so on

A Excessive Fascination with the Apache Brand

We recognize the value and reputation that the Apache brand will bring to EasyScheduler. However, we prefer that the community provided by the Apache Software Foundation will enable the project to achieve long-term stable development. so EasyScheduler is proposing to enter incubation at Apache in order to help efforts to diversify the community, not so much to capitalize on the Apache brand.

Documentation

A complete set of EasyScheduler documentations is provided on github in both English and Simplified Chinese.

Initial Source

The project consists of three distinct codebases: core and document. The address of two existed git repositories are as follows:

Source and Intellectual Property Submission Plan

As soon as EasyScheduler is approved to join Apache Incubator, Analysys will provide the Software Grant Agreement(SGA) and intial committers will submit ICLA(s). The code is already licensed under the Apache Software License, version 2.0.

External Dependencies

As all backend code dependencies are managed using Apache Maven, none of the external libraries need to be packaged in a source distribution.

Most of dependencies have Apache compatible licenses,and the detail as follows:

Backend Dependency

Dependency License Comments
activation-1.1.jar CDDL v1.0
adal4j-1.0.0.jar Apache V2.0
ant-1.6.5.jar Apache V2.0
antlr-2.7.7.jar BSD
antlr-runtime-3.4.jar BSD License
aopalliance-1.0.jar Public Domain
apacheds-i18n-2.0.0-M15.jar Apache V2.0
apacheds-kerberos-codec-2.0.0-M15.jar Apache V2.0
apache-el-8.5.35.1.jar Apache V2.0
api-asn1-api-1.0.0-M20.jar Apache V2.0
api-util-1.0.0-M20.jar Apache V2.0
asm-3.1.jar BSD License
aspectjweaver-1.9.2.jar Eclipse Public License - v 1.0
aws-java-sdk-1.7.4.jar Apache V2.0
azure-core-0.9.3.jar Apache V2.0
azure-keyvault-0.9.3.jar Apache V2.0
bcprov-jdk15on-1.51.jar Bouncy Castle Licence
bonecp-0.8.0.RELEASE.jar Apache v2
byte-buddy-1.9.10.jar Apache V2.0
c3p0-0.9.1.1.jar GNU LESSER GENERAL PUBLIC LICENSE will remove
classmate-1.4.0.jar Apache V2.0
clickhouse-jdbc-0.1.52.jar Apache V2.0
commons-cli-1.2.jar Apache V2.0
commons-codec-1.6.jar Apache V2.0
commons-collections-3.2.2.jar Apache V2.0
commons-collections4-4.1.jar Apache V2.0
commons-compress-1.4.1.jar Apache V2.0
commons-configuration-1.10.jar Apache V2.0
commons-daemon-1.0.13.jar Apache V2.0
commons-dbcp-1.4.jar Apache V2.0
commons-email-1.2.jar Apache V2.0
commons-httpclient-3.0.1.jar Apache License
commons-io-2.4.jar Apache V2.0
commons-lang-2.3.jar Apache V2.0
commons-lang3-3.5.jar Apache V2.0
commons-logging-1.1.1.jar Apache V2.0
commons-math-2.2.jar Apache V2.0
commons-pool-1.6.jar Apache V2.0
cron-utils-5.0.5.jar Apache V2.0
curator-client-2.12.0.jar Apache V2.0
curator-framework-2.12.0.jar Apache V2.0
curator-recipes-2.12.0.jar Apache V2.0
datanucleus-api-jdo-4.2.1.jar Apache V2.0
datanucleus-core-4.1.6.jar Apache V2.0
datanucleus-rdbms-4.1.7.jar Apache V2.0
derby-10.14.2.0.jar Apache V2.0
disruptor-3.3.0.jar Apache V2.0
druid-1.1.14.jar Apache V2.0
error_prone_annotations-2.1.2.jar Apache V2.0
fastjson-1.2.29.jar Apache V2.0
fastutil-6.5.6.jar Apache V2.0
findbugs-annotations-1.3.9-1.jar Apache V2.0
freemarker-2.3.21.jar Apache V2.0
grpc-context-1.9.0.jar Apache V2.0
grpc-core-1.9.0.jar Apache V2.0
grpc-netty-1.9.0.jar Apache V2.0
grpc-protobuf-1.9.0.jar Apache V2.0
grpc-protobuf-lite-1.9.0.jar Apache V2.0
grpc-stub-1.9.0.jar Apache V2.0
gson-2.8.5.jar Apache V2.0
guava-20.0.jar Apache V2.0
guice-3.0.jar Apache V2.0
guice-assistedinject-3.0.jar Apache V2.0
guice-servlet-3.0.jar Apache V2.0
hadoop-annotations-2.7.3.jar Apache V2.0
hadoop-auth-2.7.3.jar Apache V2.0
hadoop-aws-2.7.3.jar Apache V2.0
hadoop-client-2.7.3.jar Apache V2.0
hadoop-common-2.7.3.jar Apache V2.0
hadoop-hdfs-2.7.3.jar Apache V2.0
hadoop-mapreduce-client-app-2.7.3.jar Apache V2.0
hadoop-mapreduce-client-common-2.7.3.jar Apache V2.0
hadoop-mapreduce-client-core-2.7.3.jar Apache V2.0
hadoop-mapreduce-client-jobclient-2.7.3.jar Apache V2.0
hadoop-yarn-api-2.7.3.jar Apache V2.0
hadoop-yarn-client-2.7.3.jar Apache V2.0
hadoop-yarn-common-2.7.3.jar Apache V2.0
hadoop-yarn-registry-2.7.1.jar Apache V2.0
hadoop-yarn-server-applicationhistoryservice-2.6.0.jar Apache V2.0
hadoop-yarn-server-common-2.7.3.jar Apache V2.0
hadoop-yarn-server-resourcemanager-2.6.0.jar Apache V2.0
hadoop-yarn-server-web-proxy-2.6.0.jar Apache V2.0
hbase-annotations-1.1.1.jar Apache V2.0
hbase-client-1.1.1.jar Apache V2.0
hbase-common-1.1.1.jar Apache V2.0
hbase-common-1.1.1-tests.jar Apache License Version 2.0
hbase-hadoop2-compat-1.1.1.jar Apache V2.0
hbase-hadoop-compat-1.1.1.jar Apache V2.0
hbase-prefix-tree-1.1.1.jar Apache V2.0
hbase-procedure-1.1.1.jar Apache V2.0
hbase-protocol-1.1.1.jar Apache V2.0
hbase-server-1.1.1.jar Apache V2.0
hibernate-validator-6.0.14.Final.jar Apache License 2.0
HikariCP-3.2.0.jar Apache V2.0
hive-common-2.1.0.jar Apache V2.0
hive-jdbc-2.1.0.jar Apache V2.0
hive-llap-client-2.1.0.jar Apache V2.0
hive-llap-common-2.1.0.jar Apache V2.0
hive-llap-server-2.1.0.jar Apache V2.0
hive-llap-tez-2.1.0.jar Apache V2.0
hive-metastore-2.1.0.jar Apache V2.0
hive-orc-2.1.0.jar Apache V2.0
hive-serde-2.1.0.jar Apache V2.0
hive-service-2.1.0.jar Apache V2.0
hive-service-rpc-2.1.0.jar Apache V2.0
hive-shims-0.23-2.1.0.jar Apache V2.0
hive-shims-2.1.0.jar Apache V2.0
hive-shims-common-2.1.0.jar Apache V2.0
hive-shims-scheduler-2.1.0.jar Apache V2.0
hive-storage-api-2.1.0.jar Apache V2.0
htrace-core-3.1.0-incubating.jar Apache V2.0
httpclient-4.4.1.jar Apache V2.0
httpcore-4.4.1.jar Apache V2.0
httpmime-4.5.7.jar Apache V2.0
instrumentation-api-0.4.3.jar Apache V2.0
jackson-annotations-2.9.8.jar Apache V2.0
jackson-core-2.9.8.jar Apache V2.0
jackson-core-asl-1.9.13.jar Apache V2.0
jackson-databind-2.9.8.jar Apache V2.0
jackson-datatype-jdk8-2.9.8.jar Apache V2.0
jackson-datatype-jsr310-2.9.8.jar Apache V2.0
jackson-jaxrs-1.8.3.jar GNU Lesser General Public License (LGPL), Version 2.1 Apache V2.0 will remove
jackson-mapper-asl-1.9.13.jar Apache V2.0
jackson-module-parameter-names-2.9.8.jar Apache V2.0
jackson-xc-1.8.3.jar GNU Lesser General Public License (LGPL), Version 2.1 Apache V2.0 will remove
jamon-runtime-2.3.1.jar Mozilla Public License Version 1.1 MPL1.1
jasper-compiler-5.5.23.jar Apache V2.0
javax.activation-api-1.2.0.jar CDDL/GPLv2+CE will remove
javax.annotation-api-1.3.2.jar CDDL + GPLv2 with classpath exception will remove
javax.inject-1.jar Apache V2.0
javax.jdo-3.2.0-m3.jar Apache V2.0
java-xmlbuilder-0.4.jar Apache V2.0
javax.servlet-api-3.1.0.jar CDDL + GPLv2 with classpath exception will remove
javolution-5.5.1.jar BSD License
jaxb-*.jar (CDDL 1.1) (GPL2 w/ CPE) will remove
jboss-logging-3.3.2.Final.jar Apache V2.0
jcip-annotations-1.0.jar Public
jcodings-1.0.8.jar MIT
jcommander-1.30.jar Apache V2.0
jdo-api-3.0.1.jar Apache V2.0
jersey-*-1.9.jar CDDL+GPLv2 will remove
jets3t-0.9.0.jar Apache V2.0
jettison-1.1.jar Apache V2.0
jetty-6.1.26.jar Apache V2.0,EPL 1.0
jetty-continuation-9.4.14.v20181114.jar Apache V2.0,EPL 1.0
jetty-http-9.4.14.v20181114.jar Apache V2.0,EPL 1.0
jetty-io-9.4.14.v20181114.jar Apache V2.0,EPL 1.0
jetty-security-9.4.14.v20181114.jar Apache V2.0,EPL 1.0
jetty-server-9.4.14.v20181114.jar Apache V2.0,EPL 1.0
jetty-servlet-9.4.14.v20181114.jar Apache V2.0,EPL 1.0
jetty-servlets-9.4.14.v20181114.jar Apache V2.0,EPL 1.0
jetty-sslengine-6.1.26.jar Apache V2.0
jetty-util-6.1.26.jar Apache V2.0,EPL 1.0
jetty-util-9.4.14.v20181114.jar Apache V2.0,EPL 1.0
jetty-webapp-9.4.14.v20181114.jar Apache V2.0,EPL 1.0
jetty-xml-9.4.14.v20181114.jar Apache V2.0,EPL 1.0
jline-0.9.94.jar BSD
jna-4.5.2.jar Apache V2.0,LGPL 2.1 will remove
jna-platform-4.5.2.jar Apache V2.0,LGPL 2.1 will remove
joda-time-2.10.1.jar Apache V2.0
joni-2.1.2.jar MIT
jpam-1.1.jar Apache V2.0
jsch-0.1.42.jar BSD
json-smart-1.1.1.jar Apache V2.0
json-smart-2.3.jar Apache V2.0
jsp-2.1-6.1.14.jar CDDL 1.0
jsp-api-2.x.jar CDDL,GPL 2.0 will remove
jsp-api-2.1-6.1.14.jar Apache V2.0
jsr305-3.0.0.jar Apache V2.0
jta-1.1.jar CDDL 1.0
jul-to-slf4j-1.7.25.jar MIT
lang-tag-1.4.jar Apache V2.0
leveldbjni-all-1.8.jar BSD 3-clause
libfb303-0.9.3.jar Apache V2.0
libthrift-0.9.3.jar Apache V2.0
log4j-1.2.17.jar Apache V2.0
log4j-1.2-api-2.11.2.jar Apache V2.0
log4j-api-2.11.2.jar Apache V2.0
log4j-core-2.11.2.jar Apache V2.0
log4j-web-2.11.2.jar Apache V2.0
logback-x.jar dual-license EPL 1.0,LGPL 2.1
lz4-1.3.0.jar Apache V2.0
mail-1.4.5.jar CDDL+GPLv2 will remove
mapstruct-1.2.0.Final.jar Apache V2.0
metrics-core-2.2.0.jar Apache V2.0
mssql-jdbc-6.1.0.jre8.jar MIT
mybatis-3.5.1.jar Apache V2.0
mybatis-spring-2.0.1.jar Apache V2.0
mybatis-spring-boot-autoconfigure-2.0.1.jar Apache V2.0
mybatis-spring-boot-starter-2.0.1.jar Apache V2.0
mysql-connector-java-5.1.34.jar GPL 2.0 will remove
netty-buffer-4.1.33.Final.jar Apache V2.0
netty-codec-4.1.33.Final.jar Apache V2.0
netty-codec-http2-4.1.33.Final.jar Apache V2.0
netty-codec-http-4.1.33.Final.jar Apache V2.0
netty-codec-socks-4.1.33.Final.jar Apache V2.0
netty-common-4.1.33.Final.jar Apache V2.0
netty-handler-4.1.33.Final.jar Apache V2.0
netty-handler-proxy-4.1.33.Final.jar Apache V2.0
netty-resolver-4.1.33.Final.jar Apache V2.0
netty-transport-4.1.33.Final.jar Apache V2.0
nimbus-jose-jwt-3.1.2.jar Apache V2.0
oauth2-oidc-sdk-4.5.jar Apache V2.0
opencensus-api-0.10.0.jar Apache V2.0
opencensus-contrib-grpc-metrics-0.10.0.jar Apache V2.0
opencsv-2.3.jar Apache V2.0
oshi-core-3.5.0.jar EPL 1.0
parquet-hadoop-bundle-1.8.1.jar Apache V2.0
poi-3.17.jar Apache V2.0
postgresql-42.1.4.jar BSD 2-clause
protobuf-java-3.5.1.jar BSD 3-clause
protobuf-java-util-3.5.1.jar BSD 3-clause
proto-google-common-protos-1.0.0.jar Apache V2.0
quartz-2.2.3.jar Apache V2.0
quartz-jobs-2.2.3.jar Apache V2.0
slf4j-api-1.7.5.jar MIT
slider-core-0.90.2-incubating.jar Apache V2.0
snakeyaml-1.23.jar Apache V2.0
snappy-0.2.jar Apache V2.0
spring-aop-5.1.5.RELEASE.jar Apache V2.0
spring-beans-5.1.5.RELEASE.jar Apache V2.0
spring-boot-2.1.3.RELEASE.jar Apache V2.0
spring-boot-autoconfigure-2.1.3.RELEASE.jar Apache V2.0
spring-boot-starter-2.1.3.RELEASE.jar Apache V2.0
spring-boot-starter-aop-2.1.3.RELEASE.jar Apache V2.0
spring-boot-starter-jdbc-2.1.3.RELEASE.jar Apache V2.0
spring-boot-starter-jetty-2.1.3.RELEASE.jar Apache V2.0
spring-boot-starter-json-2.1.3.RELEASE.jar Apache V2.0
spring-boot-starter-logging-2.1.3.RELEASE.jar Apache V2.0
spring-boot-starter-web-2.1.3.RELEASE.jar Apache V2.0
spring-context-5.1.5.RELEASE.jar Apache V2.0
spring-core-5.1.5.RELEASE.jar Apache V2.0
spring-expression-5.1.5.RELEASE.jar Apache V2.0
springfox-core-2.9.2.jar Apache V2.0
springfox-schema-2.9.2.jar Apache V2.0
springfox-spi-2.9.2.jar Apache V2.0
springfox-spring-web-2.9.2.jar Apache V2.0
springfox-swagger2-2.9.2.jar Apache V2.0
springfox-swagger-common-2.9.2.jar Apache V2.0
springfox-swagger-ui-2.9.2.jar Apache V2.0
spring-jcl-5.1.5.RELEASE.jar Apache V2.0
spring-jdbc-5.1.5.RELEASE.jar Apache V2.0
spring-plugin-core-1.2.0.RELEASE.jar Apache V2.0
spring-plugin-metadata-1.2.0.RELEASE.jar Apache V2.0
spring-tx-5.1.5.RELEASE.jar Apache V2.0
spring-web-5.1.5.RELEASE.jar Apache V2.0
spring-webmvc-5.1.5.RELEASE.jar Apache V2.0
stringtemplate-3.2.1.jar BSD
swagger-annotations-1.5.20.jar Apache V2.0
swagger-bootstrap-ui-1.9.3.jar Apache V2.0
swagger-models-1.5.20.jar Apache V2.0
tephra-api-0.6.0.jar Apache V2.0
tephra-core-0.6.0.jar Apache V2.0
tephra-hbase-compat-1.0-0.6.0.jar Apache V2.0
threetenbp-1.3.6.jar BSD 3-clause
transaction-api-1.1.jar CDDL1.0
twill-api-0.6.0-incubating.jar Apache V2.0
twill-common-0.6.0-incubating.jar Apache V2.0
twill-core-0.6.0-incubating.jar Apache V2.0
twill-discovery-api-0.6.0-incubating.jar Apache V2.0
twill-discovery-core-0.6.0-incubating.jar Apache V2.0
twill-zookeeper-0.6.0-incubating.jar Apache V2.0
validation-api-2.0.1.Final.jar Apache V2.0
xercesImpl-2.9.1.jar Apache V2.0
xml-apis-1.4.01.jar Apache V2.0,W3C
xz-1.0.jar Public
zookeeper-3.4.8.jar Apache

The front-end UI currently relies on many components, which we will list separately at the end of the file.

UI Dependency

Dependency License Comments
abab ISC
abbrev ISC
accepts MIT
acorn MIT
acorn-dynamic-import MIT
acorn-globals MIT
after MIT
agent-base MIT
ajv MIT
ajv-keywords MIT
align-text MIT
alphanum-sort MIT
amdefine BSD-3-Clause OR MIT
ansi-html Apache-2.0
ansi-regex MIT
ansi-styles MIT
anymatch ISC
aproba ISC
are-we-there-yet ISC
argparse MIT
arr-diff MIT
arr-flatten MIT
arr-union MIT
array-equal MIT
array-find-index MIT
array-flatten MIT
array-includes MIT
array-slice MIT
array-union MIT
array-uniq MIT
array-unique MIT
arraybuffer.slice MIT
arrify MIT
asn1 MIT
asn1.js MIT
assert MIT
assert-plus MIT
assign-symbols MIT
ast-types MIT
async MIT
async-each MIT
async-foreach MIT
async-limiter MIT
asynckit MIT
atob (MIT OR Apache-2.0)
autoprefixer MIT
aws-sign2 Apache-2.0
aws4 MIT
babel-code-frame MIT
babel-core MIT
babel-eslint MIT
babel-generator MIT
babel-helper-builder-binary-assignment-operator-visitor MIT
babel-helper-call-delegate MIT
babel-helper-define-map MIT
babel-helper-explode-assignable-expression MIT
babel-helper-function-name MIT
babel-helper-get-function-arity MIT
babel-helper-hoist-variables MIT
babel-helper-optimise-call-expression MIT
babel-helper-regex MIT
babel-helper-remap-async-to-generator MIT
babel-helper-replace-supers MIT
babel-helper-vue-jsx-merge-props MIT
babel-helpers MIT
babel-loader MIT
babel-messages MIT
babel-plugin-check-es2015-constants MIT
babel-plugin-syntax-async-functions MIT
babel-plugin-syntax-class-properties MIT
babel-plugin-syntax-dynamic-import MIT
babel-plugin-syntax-exponentiation-operator MIT
babel-plugin-syntax-jsx MIT
babel-plugin-syntax-object-rest-spread MIT
babel-plugin-syntax-trailing-function-commas MIT
babel-plugin-transform-async-to-generator MIT
babel-plugin-transform-class-properties MIT
babel-plugin-transform-es2015-arrow-functions MIT
babel-plugin-transform-es2015-block-scoped-functions MIT
babel-plugin-transform-es2015-block-scoping MIT
babel-plugin-transform-es2015-classes MIT
babel-plugin-transform-es2015-computed-properties MIT
babel-plugin-transform-es2015-destructuring MIT
babel-plugin-transform-es2015-duplicate-keys MIT
babel-plugin-transform-es2015-for-of MIT
babel-plugin-transform-es2015-function-name MIT
babel-plugin-transform-es2015-literals MIT
babel-plugin-transform-es2015-modules-amd MIT
babel-plugin-transform-es2015-modules-commonjs MIT
babel-plugin-transform-es2015-modules-systemjs MIT
babel-plugin-transform-es2015-modules-umd MIT
babel-plugin-transform-es2015-object-super MIT
babel-plugin-transform-es2015-parameters MIT
babel-plugin-transform-es2015-shorthand-properties MIT
babel-plugin-transform-es2015-spread MIT
babel-plugin-transform-es2015-sticky-regex MIT
babel-plugin-transform-es2015-template-literals MIT
babel-plugin-transform-es2015-typeof-symbol MIT
babel-plugin-transform-es2015-unicode-regex MIT
babel-plugin-transform-exponentiation-operator MIT
babel-plugin-transform-object-rest-spread MIT
babel-plugin-transform-regenerator MIT
babel-plugin-transform-remove-console MIT
babel-plugin-transform-runtime MIT
babel-plugin-transform-strict-mode MIT
babel-plugin-transform-vue-jsx MIT
babel-preset-env MIT
babel-register MIT
babel-runtime MIT
babel-template MIT
babel-traverse MIT
babel-types MIT
babylon MIT
backo2 MIT
balanced-match MIT
base MIT
base64-arraybuffer MIT
base64-js MIT
base64id MIT
batch MIT
bcrypt-pbkdf BSD-3-Clause
better-assert MIT
big.js MIT
binary-extensions MIT
blob MIT
block-stream ISC
bluebird MIT
bn.js MIT
body-parser MIT
bonjour MIT
boolbase ISC
bootstrap MIT
brace-expansion MIT
braces MIT
brorand MIT
browserify-aes MIT
browserify-cipher MIT
browserify-des MIT
browserify-rsa MIT
browserify-sign ISC
browserify-zlib MIT
browserslist MIT
browserstack MIT
browserstack-local MIT
buffer MIT
buffer-alloc MIT
buffer-alloc-unsafe MIT
buffer-fill MIT
buffer-from MIT
buffer-indexof MIT
buffer-xor MIT
builtin-status-codes MIT
bytes MIT
cacache ISC
cache-base MIT
call-me-maybe MIT
caller-callsite MIT
caller-path MIT
callsite MIT
callsites MIT
camel-case MIT
camelcase MIT
camelcase-keys MIT
caniuse-api MIT
caniuse-db CC-BY-4.0
caniuse-lite CC-BY-4.0
canvg MIT
caseless Apache-2.0
center-align MIT
chalk MIT
chokidar MIT
chownr ISC
cipher-base MIT
circular-json MIT
clap MIT
class-utils MIT
clean-css MIT
clipboard MIT
cliui ISC
clone MIT
clone-deep MIT
co MIT
coa MIT
code-frame MIT
code-point-at MIT
codemirror MIT
coffee MIT
coffee-requirejs MIT
collection-visit MIT
color MIT
color-convert MIT
color-name MIT
color-string MIT
colormin MIT
colors MIT
combine-lists MIT
combined-stream MIT
commander MIT
commondir MIT
component-bind MIT
component-emitter MIT
component-inherit MIT
compressible MIT
compression MIT
concat-map MIT
concat-stream MIT
connect MIT
connect-history-api-fallback MIT
console-browserify MIT
console-control-strings ISC
consolidate MIT
constants-browserify MIT
content-disposition MIT
content-type MIT
convert-source-map MIT
cookie MIT
cookie-signature MIT
copy-concurrently ISC
copy-descriptor MIT
copy-webpack-plugin MIT
core-js MIT
core-util-is MIT
cosmiconfig MIT
create-ecdh MIT
create-hash MIT
create-hmac MIT
cross-env MIT
cross-spawn MIT
crypto-browserify MIT
css-color-names MIT
css-declaration-sorter MIT
css-loader MIT
css-select BSD-like
css-select-base-adapter MIT
css-selector-tokenizer MIT
css-tree MIT
css-unit-converter MIT
css-what BSD-2-Clause
cssesc MIT
cssnano MIT
cssnano-preset-default MIT
cssnano-util-get-arguments MIT
cssnano-util-get-match MIT
cssnano-util-raw-cache MIT
cssnano-util-same-parent MIT
csso MIT
cssom MIT
cssstyle MIT
currently-unhandled MIT
custom-event MIT
cyclist MIT
d ISC
d3 BSD-3-Clause
dashdash MIT
date-format MIT
date-now MIT
dateformat MIT
dayjs MIT
de-indent MIT
debug MIT
decamelize MIT
decode-uri-component MIT
deep-equal MIT
deep-is MIT
define-properties MIT
define-property MIT
defined MIT
del MIT
delayed-stream MIT
delegate MIT
delegates MIT
depd MIT
des.js MIT
destroy MIT
detect-indent MIT
detect-node ISC
di MIT
diffie-hellman MIT
dir-glob MIT
dns-equal MIT
dns-packet MIT
dns-txt MIT
dom-converter MIT
dom-serialize MIT
dom-serializer MIT
domain-browser MIT
domelementtype BSD-2-Clause
domhandler BSD-2-Clause
domutils BSD-2-Clause
dot-prop MIT
dotenv BSD-2-Clause
duplexer BSD-2-Clause
duplexify MIT
ecc-jsbn MIT
echarts Apache License Version 2.0
ee-first MIT
ejs Apache-2.0
electron-to-chromium ISC
elliptic MIT
emojis-list MIT
encodeurl MIT
end-of-stream MIT
engine.io MIT
engine.io-client MIT
engine.io-parser MIT
enhanced-resolve MIT
ent MIT
entities BSD-2-Clause
env-parse ISC
errno MIT
error-ex MIT
es-abstract MIT
es-to-primitive MIT
es5-ext ISC
es6-iterator MIT
es6-map MIT
es6-promise MIT
es6-promisify MIT
es6-set MIT
es6-symbol MIT
es6-templates Apache 2
es6-weak-map ISC
escape-html MIT
escape-string-regexp MIT
escodegen BSD-2-Clause
escope BSD-2-Clause
eslint-scope BSD-2-Clause
eslint-visitor-keys Apache-2.0
esprima BSD-2-Clause
esrecurse BSD-2-Clause
estraverse BSD
esutils BSD-2-Clause
etag MIT
event-emitter MIT
event-stream MIT
eventemitter3 MIT
events MIT
eventsource MIT
evp_bytestokey MIT
execa MIT
expand-braces MIT
expand-brackets MIT
expand-range MIT
extend MIT
extend-shallow MIT
extglob MIT
extract-text-webpack-plugin MIT
extsprintf MIT
fast-deep-equal MIT
fast-glob MIT
fast-json-stable-stringify MIT
fast-levenshtein MIT
fastparse MIT
faye-websocket Apache-2.0
file-loader MIT
fill-range MIT
finalhandler MIT
find-cache-dir MIT
find-up MIT
flatted ISC
flatten MIT
flush-write-stream MIT
follow-redirects MIT
for-in MIT
for-own MIT
forever-agent Apache-2.0
form-data MIT
forwarded MIT
fragment-cache MIT
fresh MIT
from MIT
from2 MIT
fs-access MIT
fs-write-stream-atomic ISC
fs.realpath ISC
fs.stat MIT
fstream ISC
function-bind MIT
gauge ISC
gaze MIT
generator MIT
get-caller-file ISC
get-stdin MIT
get-stream MIT
get-value MIT
getpass MIT
glob ISC
glob-parent ISC
glob-to-regexp BSD
globals MIT
globby MIT
globule MIT
good-listener MIT
graceful-fs ISC
handle-thing MIT
handlebars MIT
har-schema ISC
har-validator MIT
has MIT
has-ansi MIT
has-binary2 MIT
has-cors MIT
has-flag MIT
has-symbols MIT
has-unicode ISC
has-value MIT
has-values MIT
hash-base MIT
hash-sum MIT
hash.js MIT
he MIT
helper-function-name MIT
helper-get-function-arity MIT
helper-split-export-declaration MIT
hex-color-regex MIT
highlight MIT
hmac-drbg MIT
home-or-tmp MIT
hosted-git-info ISC
hpack.js MIT
hsl-regex MIT
hsla-regex MIT
html-comment-regex MIT
html-entities MIT
html-loader MIT
html-minifier MIT
html-webpack-ext-plugin MIT
html-webpack-plugin MIT
html2canvas MIT
htmlparser2 MIT
http-deceiver MIT
http-errors MIT
http-parser-js MIT
http-proxy MIT
http-proxy-middleware MIT
http-signature MIT
https-browserify MIT
https-proxy-agent MIT
iconv-lite MIT
icss-replace-symbols ISC
icss-utils ISC
ieee754 BSD-3-Clause
iferr MIT
ignore MIT
import-cwd MIT
import-fresh MIT
import-from MIT
import-local MIT
imurmurhash MIT
in-publish ISC
indent-string MIT
indexes-of MIT
indexof MIT
inflight ISC
inherits ISC
internal-ip MIT
interpret MIT
invariant MIT
invert-kv MIT
ip MIT
ipaddr.js MIT
is-absolute-url MIT
is-accessor-descriptor MIT
is-arrayish MIT
is-binary-path MIT
is-buffer MIT
is-callable MIT
is-color-stop MIT
is-data-descriptor MIT
is-date-object MIT
is-descriptor MIT
is-directory MIT
is-extendable MIT
is-extglob MIT
is-finite MIT
is-fullwidth-code-point MIT
is-glob MIT
is-number MIT
is-obj MIT
is-path-cwd MIT
is-path-in-cwd MIT
is-path-inside MIT
is-plain-obj MIT
is-plain-object MIT
is-regex MIT
is-resolvable ISC
is-running BSD
is-stream MIT
is-svg MIT
is-symbol MIT
is-typedarray MIT
is-utf8 MIT
is-windows MIT
is-wsl MIT
isarray MIT
isbinaryfile MIT
isexe ISC
isobject MIT
isstream MIT
istanbul BSD-3-Clause
jasmine-core MIT
jquery MIT
js-base64 BSD-3-Clause
js-tokens MIT
js-yaml MIT
jsbn MIT
jsdom MIT
jsesc MIT
json-loader MIT
json-parse-better-errors MIT
json-schema cv2.1,BSD
json-schema-traverse MIT
json-stringify-safe ISC
json3 MIT
json5 MIT
jsplumb (MIT OR GPL-2.0)
jsprim MIT
karma MIT
karma-browserstack-launcher MIT
karma-chrome-launcher MIT
karma-coverage MIT
karma-jasmine MIT
karma-sourcemap-loader MIT
karma-spec-reporter MIT
karma-webpack MIT
killable ISC
kind-of MIT
last-call-webpack-plugin MIT
lazy-cache MIT
lcid MIT
levn MIT
load-json-file MIT
loader-runner MIT
loader-utils MIT
locate-path MIT
lodash MIT
lodash.camelcase MIT
lodash.memoize MIT
lodash.tail MIT
lodash.uniq MIT
log-symbols MIT
log4js Apache-2.0
loglevel MIT
loglevelnext MIT
longest MIT
loose-envify MIT
loud-rejection MIT
lower-case MIT
lru-cache ISC
make-dir MIT
map-cache MIT
map-obj MIT
map-stream MIT
map-visit MIT
math-expression-evaluator MIT
md5.js MIT
mdn-data CC0-1.0
media-typer MIT
mem MIT
memory-fs MIT
meow MIT
merge-descriptors MIT
merge2 MIT
methods MIT
micromatch MIT
miller-rabin MIT
mime MIT
mime-db MIT
mime-types MIT
mimic-fn MIT
minimalistic-assert ISC
minimalistic-crypto-utils MIT
minimatch ISC
minimist MIT
mississippi BSD-2-Clause
mixin-deep MIT
mixin-object MIT
mkdirp MIT
move-concurrently ISC
ms MIT
multicast-dns MIT
multicast-dns-service-types MIT
multirepo MIT
mylib ISC
nan MIT
nanomatch MIT
negotiator MIT
neo-async MIT
next-tick MIT
nice-try MIT
no-case MIT
node-forge (BSD-3-Clause OR GPL-2.0)
node-gyp MIT
node-libs-browser MIT
node-releases MIT
node-sass MIT
nopt ISC
normalize-package-data BSD-2-Clause
normalize-path MIT
normalize-range MIT
normalize-url MIT
npm-run-path MIT
npmlog ISC
nth-check BSD-2-Clause
null-check MIT
num2fraction MIT
number-is-nan MIT
nwmatcher MIT
oauth-sign Apache-2.0
object-assign MIT
object-component MIT
object-copy MIT
object-keys MIT
object-visit MIT
object.assign MIT
object.getownpropertydescriptors MIT
object.pick MIT
object.values MIT
obuf MIT
on-finished MIT
on-headers MIT
once ISC
opn MIT
optimist MIT/X11
optimize-css-assets-webpack-plugin MIT
optionator MIT
original MIT
os-browserify MIT
os-homedir MIT
os-locale MIT
os-tmpdir MIT
osenv ISC
p-finally MIT
p-limit MIT
p-locate MIT
p-map MIT
p-try MIT
package-a MIT
package-b MIT
pako (MIT AND Zlib)
parallel-transform MIT
param-case MIT
parse-asn1 ISC
parse-json MIT
parse5 MIT
parseqs MIT
parseuri MIT
parseurl MIT
pascalcase MIT
path-browserify MIT
path-dirname MIT
path-exists MIT
path-is-absolute MIT
path-is-inside (WTFPL OR MIT)
path-key MIT
path-parse MIT
path-to-regexp MIT
path-type MIT
pause-stream MIT,Apache2
pbkdf2 MIT
performance-now MIT
pify MIT
pinkie MIT
pinkie-promise MIT
pkg-dir MIT
portfinder MIT
posix-character-classes MIT
postcss MIT
postcss-calc MIT
postcss-colormin MIT
postcss-convert-values MIT
postcss-discard-comments MIT
postcss-discard-duplicates MIT
postcss-discard-empty MIT
postcss-discard-overridden MIT
postcss-discard-unused MIT
postcss-filter-plugins MIT
postcss-load-config MIT
postcss-load-options MIT
postcss-load-plugins MIT
postcss-loader MIT
postcss-merge-idents MIT
postcss-merge-longhand MIT
postcss-merge-rules MIT
postcss-message-helpers MIT
postcss-minify-font-values MIT
postcss-minify-gradients MIT
postcss-minify-params MIT
postcss-minify-selectors MIT
postcss-modules-extract-imports ISC
postcss-modules-local-by-default MIT
postcss-modules-scope ISC
postcss-modules-values ISC
postcss-normalize-charset MIT
postcss-normalize-display-values MIT
postcss-normalize-positions MIT
postcss-normalize-repeat-style MIT
postcss-normalize-string MIT
postcss-normalize-timing-functions MIT
postcss-normalize-unicode MIT
postcss-normalize-url MIT
postcss-normalize-whitespace MIT
postcss-ordered-values MIT
postcss-reduce-idents MIT
postcss-reduce-initial MIT
postcss-reduce-transforms MIT
postcss-selector-parser MIT
postcss-svgo MIT
postcss-unique-selectors MIT
postcss-value-parser MIT
postcss-zindex MIT
prelude-ls MIT
prepend-http MIT
prettier MIT
pretty-error MIT
private MIT
process MIT
process-nextick-args MIT
promise-inflight ISC
proxy-addr MIT
prr MIT
ps-tree MIT
pseudomap ISC
psl MIT
public-encrypt MIT
pump MIT
pumpify MIT
punycode MIT
q MIT
qjobs MIT
qs BSD-3-Clause
query-string MIT
querystring MIT
querystring-es3 MIT
querystringify MIT
randombytes MIT
randomfill MIT
range-parser MIT
raw-body MIT
read-pkg MIT
read-pkg-up MIT
readable-stream MIT
readdir-enhanced MIT
readdirp MIT
recast MIT
redent MIT
reduce-css-calc MIT
reduce-function-call MIT
regenerate MIT
regenerator-runtime MIT
regenerator-transform BSD
regex-not MIT
regexpu-core MIT
regjsgen MIT
regjsparser BSD
relateurl MIT
remove-trailing-separator ISC
renderkid MIT
repeat-element MIT
repeat-string MIT
repeating MIT
request Apache-2.0
require-directory MIT
require-from-string MIT
require-main-filename ISC
requires-port MIT
resolve MIT
resolve-cwd MIT
resolve-from MIT
resolve-url MIT
ret MIT
rfdc MIT
rgb-regex MIT
rgba-regex MIT
rgbcolor MIT OR SEE LICENSE IN FEEL-FREE.md
right-align MIT
rimraf ISC
ripemd160 MIT
run-queue ISC
safe-buffer MIT
safe-regex MIT
safer-buffer MIT
sass-graph MIT
sass-loader MIT
sax ISC
schema-utils MIT
scss-tokenizer MIT
select MIT
select-hose MIT
selfsigned MIT
semver ISC
send MIT
serialize-javascript BSD-3-Clause
serve-index MIT
serve-static MIT
set-blocking ISC
set-value MIT
setimmediate MIT
setprototypeof ISC
sha.js (MIT AND BSD-3-Clause)
shallow-clone MIT
shebang-command MIT
shebang-regex MIT
signal-exit ISC
simple-swizzle MIT
slash MIT
snapdragon MIT
snapdragon-node MIT
snapdragon-util MIT
socket.io MIT
socket.io-adapter MIT
socket.io-client MIT
socket.io-parser MIT
sockjs MIT
sockjs-client MIT
sort-keys MIT
source-list-map MIT
source-map BSD-3-Clause
source-map-resolve MIT
source-map-support MIT
source-map-url MIT
spdx-correct Apache-2.0
spdx-exceptions CC-BY-3.0
spdx-expression-parse MIT
spdx-license-ids CC0-1.0
spdy MIT
spdy-transport MIT
split MIT
split-string MIT
sprintf-js BSD-3-Clause
sshpk MIT
ssri ISC
stable MIT
stackblur-canvas MIT
static-extend MIT
statuses MIT
stdout-stream MIT
stream-browserify MIT
stream-combiner MIT
stream-each MIT
stream-http MIT
stream-shift MIT
streamroller MIT
strict-uri-encode MIT
string-width MIT
string_decoder MIT
strip-ansi MIT
strip-bom MIT
strip-eof MIT
strip-indent MIT
stylehacks MIT
supports-color MIT
svgo MIT
symbol-tree MIT
tapable MIT
tar ISC
temp-fs MIT
template MIT
through MIT
through2 MIT
thunky MIT
time-stamp MIT
timers-browserify MIT
timsort MIT
tiny-emitter MIT
tmp MIT
to-array MIT
to-arraybuffer MIT
to-fast-properties MIT
to-object-path MIT
to-regex MIT
to-regex-range MIT
toidentifier MIT
tools MIT
toposort MIT
tough-cookie BSD-3-Clause
tr46 MIT
traverse MIT
trim-newlines MIT
trim-right MIT
true-case-path Apache-2.0
tty-browserify MIT
tunnel-agent Apache-2.0
tweetnacl The Unlicense
type ISC
type-check MIT
type-is MIT
typedarray MIT
types MIT
uglify-es BSD-2-Clause
uglify-js BSD-2-Clause
uglify-to-browserify MIT
uglifyjs-webpack-plugin MIT
ultron MIT
union-value MIT
uniq MIT
uniqs MIT
unique-filename ISC
unique-slug ISC
unpipe MIT
unquote MIT
unset-value MIT
upath MIT
upper-case MIT
uri-js BSD-2-Clause
urix MIT
url MIT
url-join MIT
url-loader MIT
url-parse MIT
use MIT
useragent MIT
util MIT
util-deprecate MIT
util.promisify MIT
utila MIT
utils-merge MIT
uuid MIT
validate-npm-package-license Apache-2.0
vary MIT
vendors MIT
verror MIT
vm-browserify MIT
void-elements MIT
vue MIT
vue-hot-reload-api MIT
vue-loader MIT
vue-router MIT
vue-style-loader MIT
vue-template-compiler MIT
vue-template-es2015-compiler MIT
vuex MIT
vuex-router-sync MIT
watchpack MIT
wbuf MIT
webidl-conversions BSD-2-Clause
webpack MIT
webpack-dev-middleware MIT
webpack-dev-server MIT
webpack-log MIT
webpack-merge MIT
webpack-sources MIT
websocket-driver Apache-2.0
websocket-extensions MIT
whatwg-url MIT
whet.extend MIT
which ISC
which-module ISC
wide-align ISC
window-size MIT
wordwrap MIT/X11
worker-farm MIT
wrap-ansi MIT
wrappy ISC
ws MIT
xml-name-validator WTFPL
xmldom MIT,LGPL will remove
xmlhttprequest-ssl MIT
xtend MIT
y18n ISC
yallist ISC
yargs MIT
yargs-parser ISC
yeast MIT
zrender BSD

Required Resources

Git Repositories

Issue Tracking

The community would like to continue using GitHub Issues.

Continuous Integration tool

Jenkins

Mailing Lists

  • EasyScheduler-dev: for development discussions
  • EasyScheduler-private: for PPMC discussions
  • EasyScheduler-notifications: for users notifications

Initial Committers

Affiliations

  • Analysys Inc: William-GuoWei,Zhanwei Qiao,Liang Bao,Gang Li,Jun Gao,Lidong Dai

  • Hydee Inc: Zijian Gong

  • Guandata Inc: Baoqi Wu

Sponsors

Champion

Mentors

Sponsoring Entity

We are expecting the Apache Incubator could sponsor this project.