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

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

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

UI Dependency

DependencyLicenseComments
ababISC
abbrevISC
acceptsMIT
acornMIT
acorn-dynamic-importMIT
acorn-globalsMIT
afterMIT
agent-baseMIT
ajvMIT
ajv-keywordsMIT
align-textMIT
alphanum-sortMIT
amdefineBSD-3-Clause OR MIT
ansi-htmlApache-2.0
ansi-regexMIT
ansi-stylesMIT
anymatchISC
aprobaISC
are-we-there-yetISC
argparseMIT
arr-diffMIT
arr-flattenMIT
arr-unionMIT
array-equalMIT
array-find-indexMIT
array-flattenMIT
array-includesMIT
array-sliceMIT
array-unionMIT
array-uniqMIT
array-uniqueMIT
arraybuffer.sliceMIT
arrifyMIT
asn1MIT
asn1.jsMIT
assertMIT
assert-plusMIT
assign-symbolsMIT
ast-typesMIT
asyncMIT
async-eachMIT
async-foreachMIT
async-limiterMIT
asynckitMIT
atob(MIT OR Apache-2.0)
autoprefixerMIT
aws-sign2Apache-2.0
aws4MIT
babel-code-frameMIT
babel-coreMIT
babel-eslintMIT
babel-generatorMIT
babel-helper-builder-binary-assignment-operator-visitorMIT
babel-helper-call-delegateMIT
babel-helper-define-mapMIT
babel-helper-explode-assignable-expressionMIT
babel-helper-function-nameMIT
babel-helper-get-function-arityMIT
babel-helper-hoist-variablesMIT
babel-helper-optimise-call-expressionMIT
babel-helper-regexMIT
babel-helper-remap-async-to-generatorMIT
babel-helper-replace-supersMIT
babel-helper-vue-jsx-merge-propsMIT
babel-helpersMIT
babel-loaderMIT
babel-messagesMIT
babel-plugin-check-es2015-constantsMIT
babel-plugin-syntax-async-functionsMIT
babel-plugin-syntax-class-propertiesMIT
babel-plugin-syntax-dynamic-importMIT
babel-plugin-syntax-exponentiation-operatorMIT
babel-plugin-syntax-jsxMIT
babel-plugin-syntax-object-rest-spreadMIT
babel-plugin-syntax-trailing-function-commasMIT
babel-plugin-transform-async-to-generatorMIT
babel-plugin-transform-class-propertiesMIT
babel-plugin-transform-es2015-arrow-functionsMIT
babel-plugin-transform-es2015-block-scoped-functionsMIT
babel-plugin-transform-es2015-block-scopingMIT
babel-plugin-transform-es2015-classesMIT
babel-plugin-transform-es2015-computed-propertiesMIT
babel-plugin-transform-es2015-destructuringMIT
babel-plugin-transform-es2015-duplicate-keysMIT
babel-plugin-transform-es2015-for-ofMIT
babel-plugin-transform-es2015-function-nameMIT
babel-plugin-transform-es2015-literalsMIT
babel-plugin-transform-es2015-modules-amdMIT
babel-plugin-transform-es2015-modules-commonjsMIT
babel-plugin-transform-es2015-modules-systemjsMIT
babel-plugin-transform-es2015-modules-umdMIT
babel-plugin-transform-es2015-object-superMIT
babel-plugin-transform-es2015-parametersMIT
babel-plugin-transform-es2015-shorthand-propertiesMIT
babel-plugin-transform-es2015-spreadMIT
babel-plugin-transform-es2015-sticky-regexMIT
babel-plugin-transform-es2015-template-literalsMIT
babel-plugin-transform-es2015-typeof-symbolMIT
babel-plugin-transform-es2015-unicode-regexMIT
babel-plugin-transform-exponentiation-operatorMIT
babel-plugin-transform-object-rest-spreadMIT
babel-plugin-transform-regeneratorMIT
babel-plugin-transform-remove-consoleMIT
babel-plugin-transform-runtimeMIT
babel-plugin-transform-strict-modeMIT
babel-plugin-transform-vue-jsxMIT
babel-preset-envMIT
babel-registerMIT
babel-runtimeMIT
babel-templateMIT
babel-traverseMIT
babel-typesMIT
babylonMIT
backo2MIT
balanced-matchMIT
baseMIT
base64-arraybufferMIT
base64-jsMIT
base64idMIT
batchMIT
bcrypt-pbkdfBSD-3-Clause
better-assertMIT
big.jsMIT
binary-extensionsMIT
blobMIT
block-streamISC
bluebirdMIT
bn.jsMIT
body-parserMIT
bonjourMIT
boolbaseISC
bootstrapMIT
brace-expansionMIT
bracesMIT
brorandMIT
browserify-aesMIT
browserify-cipherMIT
browserify-desMIT
browserify-rsaMIT
browserify-signISC
browserify-zlibMIT
browserslistMIT
browserstackMIT
browserstack-localMIT
bufferMIT
buffer-allocMIT
buffer-alloc-unsafeMIT
buffer-fillMIT
buffer-fromMIT
buffer-indexofMIT
buffer-xorMIT
builtin-status-codesMIT
bytesMIT
cacacheISC
cache-baseMIT
call-me-maybeMIT
caller-callsiteMIT
caller-pathMIT
callsiteMIT
callsitesMIT
camel-caseMIT
camelcaseMIT
camelcase-keysMIT
caniuse-apiMIT
caniuse-dbCC-BY-4.0
caniuse-liteCC-BY-4.0
canvgMIT
caselessApache-2.0
center-alignMIT
chalkMIT
chokidarMIT
chownrISC
cipher-baseMIT
circular-jsonMIT
clapMIT
class-utilsMIT
clean-cssMIT
clipboardMIT
cliuiISC
cloneMIT
clone-deepMIT
coMIT
coaMIT
code-frameMIT
code-point-atMIT
codemirrorMIT
coffeeMIT
coffee-requirejsMIT
collection-visitMIT
colorMIT
color-convertMIT
color-nameMIT
color-stringMIT
colorminMIT
colorsMIT
combine-listsMIT
combined-streamMIT
commanderMIT
commondirMIT
component-bindMIT
component-emitterMIT
component-inheritMIT
compressibleMIT
compressionMIT
concat-mapMIT
concat-streamMIT
connectMIT
connect-history-api-fallbackMIT
console-browserifyMIT
console-control-stringsISC
consolidateMIT
constants-browserifyMIT
content-dispositionMIT
content-typeMIT
convert-source-mapMIT
cookieMIT
cookie-signatureMIT
copy-concurrentlyISC
copy-descriptorMIT
copy-webpack-pluginMIT
core-jsMIT
core-util-isMIT
cosmiconfigMIT
create-ecdhMIT
create-hashMIT
create-hmacMIT
cross-envMIT
cross-spawnMIT
crypto-browserifyMIT
css-color-namesMIT
css-declaration-sorterMIT
css-loaderMIT
css-selectBSD-like
css-select-base-adapterMIT
css-selector-tokenizerMIT
css-treeMIT
css-unit-converterMIT
css-whatBSD-2-Clause
cssescMIT
cssnanoMIT
cssnano-preset-defaultMIT
cssnano-util-get-argumentsMIT
cssnano-util-get-matchMIT
cssnano-util-raw-cacheMIT
cssnano-util-same-parentMIT
cssoMIT
cssomMIT
cssstyleMIT
currently-unhandledMIT
custom-eventMIT
cyclistMIT
dISC
d3BSD-3-Clause
dashdashMIT
date-formatMIT
date-nowMIT
dateformatMIT
dayjsMIT
de-indentMIT
debugMIT
decamelizeMIT
decode-uri-componentMIT
deep-equalMIT
deep-isMIT
define-propertiesMIT
define-propertyMIT
definedMIT
delMIT
delayed-streamMIT
delegateMIT
delegatesMIT
depdMIT
des.jsMIT
destroyMIT
detect-indentMIT
detect-nodeISC
diMIT
diffie-hellmanMIT
dir-globMIT
dns-equalMIT
dns-packetMIT
dns-txtMIT
dom-converterMIT
dom-serializeMIT
dom-serializerMIT
domain-browserMIT
domelementtypeBSD-2-Clause
domhandlerBSD-2-Clause
domutilsBSD-2-Clause
dot-propMIT
dotenvBSD-2-Clause
duplexerBSD-2-Clause
duplexifyMIT
ecc-jsbnMIT
echartsApache License Version 2.0
ee-firstMIT
ejsApache-2.0
electron-to-chromiumISC
ellipticMIT
emojis-listMIT
encodeurlMIT
end-of-streamMIT
engine.ioMIT
engine.io-clientMIT
engine.io-parserMIT
enhanced-resolveMIT
entMIT
entitiesBSD-2-Clause
env-parseISC
errnoMIT
error-exMIT
es-abstractMIT
es-to-primitiveMIT
es5-extISC
es6-iteratorMIT
es6-mapMIT
es6-promiseMIT
es6-promisifyMIT
es6-setMIT
es6-symbolMIT
es6-templatesApache 2
es6-weak-mapISC
escape-htmlMIT
escape-string-regexpMIT
escodegenBSD-2-Clause
escopeBSD-2-Clause
eslint-scopeBSD-2-Clause
eslint-visitor-keysApache-2.0
esprimaBSD-2-Clause
esrecurseBSD-2-Clause
estraverseBSD
esutilsBSD-2-Clause
etagMIT
event-emitterMIT
event-streamMIT
eventemitter3MIT
eventsMIT
eventsourceMIT
evp_bytestokeyMIT
execaMIT
expand-bracesMIT
expand-bracketsMIT
expand-rangeMIT
extendMIT
extend-shallowMIT
extglobMIT
extract-text-webpack-pluginMIT
extsprintfMIT
fast-deep-equalMIT
fast-globMIT
fast-json-stable-stringifyMIT
fast-levenshteinMIT
fastparseMIT
faye-websocketApache-2.0
file-loaderMIT
fill-rangeMIT
finalhandlerMIT
find-cache-dirMIT
find-upMIT
flattedISC
flattenMIT
flush-write-streamMIT
follow-redirectsMIT
for-inMIT
for-ownMIT
forever-agentApache-2.0
form-dataMIT
forwardedMIT
fragment-cacheMIT
freshMIT
fromMIT
from2MIT
fs-accessMIT
fs-write-stream-atomicISC
fs.realpathISC
fs.statMIT
fstreamISC
function-bindMIT
gaugeISC
gazeMIT
generatorMIT
get-caller-fileISC
get-stdinMIT
get-streamMIT
get-valueMIT
getpassMIT
globISC
glob-parentISC
glob-to-regexpBSD
globalsMIT
globbyMIT
globuleMIT
good-listenerMIT
graceful-fsISC
handle-thingMIT
handlebarsMIT
har-schemaISC
har-validatorMIT
hasMIT
has-ansiMIT
has-binary2MIT
has-corsMIT
has-flagMIT
has-symbolsMIT
has-unicodeISC
has-valueMIT
has-valuesMIT
hash-baseMIT
hash-sumMIT
hash.jsMIT
heMIT
helper-function-nameMIT
helper-get-function-arityMIT
helper-split-export-declarationMIT
hex-color-regexMIT
highlightMIT
hmac-drbgMIT
home-or-tmpMIT
hosted-git-infoISC
hpack.jsMIT
hsl-regexMIT
hsla-regexMIT
html-comment-regexMIT
html-entitiesMIT
html-loaderMIT
html-minifierMIT
html-webpack-ext-pluginMIT
html-webpack-pluginMIT
html2canvasMIT
htmlparser2MIT
http-deceiverMIT
http-errorsMIT
http-parser-jsMIT
http-proxyMIT
http-proxy-middlewareMIT
http-signatureMIT
https-browserifyMIT
https-proxy-agentMIT
iconv-liteMIT
icss-replace-symbolsISC
icss-utilsISC
ieee754BSD-3-Clause
iferrMIT
ignoreMIT
import-cwdMIT
import-freshMIT
import-fromMIT
import-localMIT
imurmurhashMIT
in-publishISC
indent-stringMIT
indexes-ofMIT
indexofMIT
inflightISC
inheritsISC
internal-ipMIT
interpretMIT
invariantMIT
invert-kvMIT
ipMIT
ipaddr.jsMIT
is-absolute-urlMIT
is-accessor-descriptorMIT
is-arrayishMIT
is-binary-pathMIT
is-bufferMIT
is-callableMIT
is-color-stopMIT
is-data-descriptorMIT
is-date-objectMIT
is-descriptorMIT
is-directoryMIT
is-extendableMIT
is-extglobMIT
is-finiteMIT
is-fullwidth-code-pointMIT
is-globMIT
is-numberMIT
is-objMIT
is-path-cwdMIT
is-path-in-cwdMIT
is-path-insideMIT
is-plain-objMIT
is-plain-objectMIT
is-regexMIT
is-resolvableISC
is-runningBSD
is-streamMIT
is-svgMIT
is-symbolMIT
is-typedarrayMIT
is-utf8MIT
is-windowsMIT
is-wslMIT
isarrayMIT
isbinaryfileMIT
isexeISC
isobjectMIT
isstreamMIT
istanbulBSD-3-Clause
jasmine-coreMIT
jqueryMIT
js-base64BSD-3-Clause
js-tokensMIT
js-yamlMIT
jsbnMIT
jsdomMIT
jsescMIT
json-loaderMIT
json-parse-better-errorsMIT
json-schemacv2.1,BSD
json-schema-traverseMIT
json-stringify-safeISC
json3MIT
json5MIT
jsplumb(MIT OR GPL-2.0)
jsprimMIT
karmaMIT
karma-browserstack-launcherMIT
karma-chrome-launcherMIT
karma-coverageMIT
karma-jasmineMIT
karma-sourcemap-loaderMIT
karma-spec-reporterMIT
karma-webpackMIT
killableISC
kind-ofMIT
last-call-webpack-pluginMIT
lazy-cacheMIT
lcidMIT
levnMIT
load-json-fileMIT
loader-runnerMIT
loader-utilsMIT
locate-pathMIT
lodashMIT
lodash.camelcaseMIT
lodash.memoizeMIT
lodash.tailMIT
lodash.uniqMIT
log-symbolsMIT
log4jsApache-2.0
loglevelMIT
loglevelnextMIT
longestMIT
loose-envifyMIT
loud-rejectionMIT
lower-caseMIT
lru-cacheISC
make-dirMIT
map-cacheMIT
map-objMIT
map-streamMIT
map-visitMIT
math-expression-evaluatorMIT
md5.jsMIT
mdn-dataCC0-1.0
media-typerMIT
memMIT
memory-fsMIT
meowMIT
merge-descriptorsMIT
merge2MIT
methodsMIT
micromatchMIT
miller-rabinMIT
mimeMIT
mime-dbMIT
mime-typesMIT
mimic-fnMIT
minimalistic-assertISC
minimalistic-crypto-utilsMIT
minimatchISC
minimistMIT
mississippiBSD-2-Clause
mixin-deepMIT
mixin-objectMIT
mkdirpMIT
move-concurrentlyISC
msMIT
multicast-dnsMIT
multicast-dns-service-typesMIT
multirepoMIT
mylibISC
nanMIT
nanomatchMIT
negotiatorMIT
neo-asyncMIT
next-tickMIT
nice-tryMIT
no-caseMIT
node-forge(BSD-3-Clause OR GPL-2.0)
node-gypMIT
node-libs-browserMIT
node-releasesMIT
node-sassMIT
noptISC
normalize-package-dataBSD-2-Clause
normalize-pathMIT
normalize-rangeMIT
normalize-urlMIT
npm-run-pathMIT
npmlogISC
nth-checkBSD-2-Clause
null-checkMIT
num2fractionMIT
number-is-nanMIT
nwmatcherMIT
oauth-signApache-2.0
object-assignMIT
object-componentMIT
object-copyMIT
object-keysMIT
object-visitMIT
object.assignMIT
object.getownpropertydescriptorsMIT
object.pickMIT
object.valuesMIT
obufMIT
on-finishedMIT
on-headersMIT
onceISC
opnMIT
optimistMIT/X11
optimize-css-assets-webpack-pluginMIT
optionatorMIT
originalMIT
os-browserifyMIT
os-homedirMIT
os-localeMIT
os-tmpdirMIT
osenvISC
p-finallyMIT
p-limitMIT
p-locateMIT
p-mapMIT
p-tryMIT
package-aMIT
package-bMIT
pako(MIT AND Zlib)
parallel-transformMIT
param-caseMIT
parse-asn1ISC
parse-jsonMIT
parse5MIT
parseqsMIT
parseuriMIT
parseurlMIT
pascalcaseMIT
path-browserifyMIT
path-dirnameMIT
path-existsMIT
path-is-absoluteMIT
path-is-inside(WTFPL OR MIT)
path-keyMIT
path-parseMIT
path-to-regexpMIT
path-typeMIT
pause-streamMIT,Apache2
pbkdf2MIT
performance-nowMIT
pifyMIT
pinkieMIT
pinkie-promiseMIT
pkg-dirMIT
portfinderMIT
posix-character-classesMIT
postcssMIT
postcss-calcMIT
postcss-colorminMIT
postcss-convert-valuesMIT
postcss-discard-commentsMIT
postcss-discard-duplicatesMIT
postcss-discard-emptyMIT
postcss-discard-overriddenMIT
postcss-discard-unusedMIT
postcss-filter-pluginsMIT
postcss-load-configMIT
postcss-load-optionsMIT
postcss-load-pluginsMIT
postcss-loaderMIT
postcss-merge-identsMIT
postcss-merge-longhandMIT
postcss-merge-rulesMIT
postcss-message-helpersMIT
postcss-minify-font-valuesMIT
postcss-minify-gradientsMIT
postcss-minify-paramsMIT
postcss-minify-selectorsMIT
postcss-modules-extract-importsISC
postcss-modules-local-by-defaultMIT
postcss-modules-scopeISC
postcss-modules-valuesISC
postcss-normalize-charsetMIT
postcss-normalize-display-valuesMIT
postcss-normalize-positionsMIT
postcss-normalize-repeat-styleMIT
postcss-normalize-stringMIT
postcss-normalize-timing-functionsMIT
postcss-normalize-unicodeMIT
postcss-normalize-urlMIT
postcss-normalize-whitespaceMIT
postcss-ordered-valuesMIT
postcss-reduce-identsMIT
postcss-reduce-initialMIT
postcss-reduce-transformsMIT
postcss-selector-parserMIT
postcss-svgoMIT
postcss-unique-selectorsMIT
postcss-value-parserMIT
postcss-zindexMIT
prelude-lsMIT
prepend-httpMIT
prettierMIT
pretty-errorMIT
privateMIT
processMIT
process-nextick-argsMIT
promise-inflightISC
proxy-addrMIT
prrMIT
ps-treeMIT
pseudomapISC
pslMIT
public-encryptMIT
pumpMIT
pumpifyMIT
punycodeMIT
qMIT
qjobsMIT
qsBSD-3-Clause
query-stringMIT
querystringMIT
querystring-es3MIT
querystringifyMIT
randombytesMIT
randomfillMIT
range-parserMIT
raw-bodyMIT
read-pkgMIT
read-pkg-upMIT
readable-streamMIT
readdir-enhancedMIT
readdirpMIT
recastMIT
redentMIT
reduce-css-calcMIT
reduce-function-callMIT
regenerateMIT
regenerator-runtimeMIT
regenerator-transformBSD
regex-notMIT
regexpu-coreMIT
regjsgenMIT
regjsparserBSD
relateurlMIT
remove-trailing-separatorISC
renderkidMIT
repeat-elementMIT
repeat-stringMIT
repeatingMIT
requestApache-2.0
require-directoryMIT
require-from-stringMIT
require-main-filenameISC
requires-portMIT
resolveMIT
resolve-cwdMIT
resolve-fromMIT
resolve-urlMIT
retMIT
rfdcMIT
rgb-regexMIT
rgba-regexMIT
rgbcolorMIT OR SEE LICENSE IN FEEL-FREE.md
right-alignMIT
rimrafISC
ripemd160MIT
run-queueISC
safe-bufferMIT
safe-regexMIT
safer-bufferMIT
sass-graphMIT
sass-loaderMIT
saxISC
schema-utilsMIT
scss-tokenizerMIT
selectMIT
select-hoseMIT
selfsignedMIT
semverISC
sendMIT
serialize-javascriptBSD-3-Clause
serve-indexMIT
serve-staticMIT
set-blockingISC
set-valueMIT
setimmediateMIT
setprototypeofISC
sha.js(MIT AND BSD-3-Clause)
shallow-cloneMIT
shebang-commandMIT
shebang-regexMIT
signal-exitISC
simple-swizzleMIT
slashMIT
snapdragonMIT
snapdragon-nodeMIT
snapdragon-utilMIT
socket.ioMIT
socket.io-adapterMIT
socket.io-clientMIT
socket.io-parserMIT
sockjsMIT
sockjs-clientMIT
sort-keysMIT
source-list-mapMIT
source-mapBSD-3-Clause
source-map-resolveMIT
source-map-supportMIT
source-map-urlMIT
spdx-correctApache-2.0
spdx-exceptionsCC-BY-3.0
spdx-expression-parseMIT
spdx-license-idsCC0-1.0
spdyMIT
spdy-transportMIT
splitMIT
split-stringMIT
sprintf-jsBSD-3-Clause
sshpkMIT
ssriISC
stableMIT
stackblur-canvasMIT
static-extendMIT
statusesMIT
stdout-streamMIT
stream-browserifyMIT
stream-combinerMIT
stream-eachMIT
stream-httpMIT
stream-shiftMIT
streamrollerMIT
strict-uri-encodeMIT
string-widthMIT
string_decoderMIT
strip-ansiMIT
strip-bomMIT
strip-eofMIT
strip-indentMIT
stylehacksMIT
supports-colorMIT
svgoMIT
symbol-treeMIT
tapableMIT
tarISC
temp-fsMIT
templateMIT
throughMIT
through2MIT
thunkyMIT
time-stampMIT
timers-browserifyMIT
timsortMIT
tiny-emitterMIT
tmpMIT
to-arrayMIT
to-arraybufferMIT
to-fast-propertiesMIT
to-object-pathMIT
to-regexMIT
to-regex-rangeMIT
toidentifierMIT
toolsMIT
toposortMIT
tough-cookieBSD-3-Clause
tr46MIT
traverseMIT
trim-newlinesMIT
trim-rightMIT
true-case-pathApache-2.0
tty-browserifyMIT
tunnel-agentApache-2.0
tweetnaclThe Unlicense
typeISC
type-checkMIT
type-isMIT
typedarrayMIT
typesMIT
uglify-esBSD-2-Clause
uglify-jsBSD-2-Clause
uglify-to-browserifyMIT
uglifyjs-webpack-pluginMIT
ultronMIT
union-valueMIT
uniqMIT
uniqsMIT
unique-filenameISC
unique-slugISC
unpipeMIT
unquoteMIT
unset-valueMIT
upathMIT
upper-caseMIT
uri-jsBSD-2-Clause
urixMIT
urlMIT
url-joinMIT
url-loaderMIT
url-parseMIT
useMIT
useragentMIT
utilMIT
util-deprecateMIT
util.promisifyMIT
utilaMIT
utils-mergeMIT
uuidMIT
validate-npm-package-licenseApache-2.0
varyMIT
vendorsMIT
verrorMIT
vm-browserifyMIT
void-elementsMIT
vueMIT
vue-hot-reload-apiMIT
vue-loaderMIT
vue-routerMIT
vue-style-loaderMIT
vue-template-compilerMIT
vue-template-es2015-compilerMIT
vuexMIT
vuex-router-syncMIT
watchpackMIT
wbufMIT
webidl-conversionsBSD-2-Clause
webpackMIT
webpack-dev-middlewareMIT
webpack-dev-serverMIT
webpack-logMIT
webpack-mergeMIT
webpack-sourcesMIT
websocket-driverApache-2.0
websocket-extensionsMIT
whatwg-urlMIT
whet.extendMIT
whichISC
which-moduleISC
wide-alignISC
window-sizeMIT
wordwrapMIT/X11
worker-farmMIT
wrap-ansiMIT
wrappyISC
wsMIT
xml-name-validatorWTFPL
xmldomMIT,LGPLwill remove
xmlhttprequest-sslMIT
xtendMIT
y18nISC
yallistISC
yargsMIT
yargs-parserISC
yeastMIT
zrenderBSD

Required Resources

Git Repositories

Issue Tracking

The community would like to continue using GitHub Issues.

Continuous Integration tool

Travis

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.