Abstract

Copalm is a task diagnosis platform for bigdata, which is implemented to analyze computing engine and scheduler issues.

Proposal

Copalm implements job diagnostics for computing engines and schedulers , it is designed to solve problems when different developers' jobs are abnormal, which reduces the time and complexity of tuning. The key features are as follows:

  • Non-invasive, in-time diagnosis, no need to modify the original platform code.

  • Supports diagnostics for multiple mainstream scheduling platforms such as Apache DolphinScheduler, Apache Airflow, self-developed, etc.

  • Supports diagnostics for multiple computing engines such as Apache Spark,Apache Flink, MapReduce, etc.

  • Compatible with multiple version for different componts such Apache Spark 2.x~3.x、Apache Flink 1.2.x~1.7.x、Apache Hadoop 2.x~3.x, Apache DolphinScheduler 2.x~, Apache Airflow, etc.

  • Supports diagnostics for kinds of scheduling job issues, such as failure, abnormal elapsed time, abnormal baseline, etc.

  • Supports diagnostics for kinds of engine task issues, such as data skew, big table scan, memory waste, long tail task, etc.

  • Supports diagnostics for capturing log exception and offers advise or solutions.

Its primary goal is to detect problems and help to improve the performance of jobs, make jobs run smoothly, free developers rather than falling into the abyss of problems.

Background

Nowaday, With the rapid development of big data, more and more excellent projects spring up like mushrooms such as Apache Spark, Apache Flink, Apache Hadoop, Apache DolphinScheduler, Trino, data processing needs to be done accross among these components(projects), and the larger the scale of data and users, the more difficult is to deal the data problem. We summarize the current situation as follows:

  • Problem location efficiency is relatively low. The components of big data from upstream to downstream are too many, there is a large amount of user job logs, which can not be connected together and it is difficult to correlate the problem context. Not all of users are R & D staffs, their abilities of self-analysis are limited and require assistance from the maintainers of platform. Communication and problem location only increase the workload of both parties; there is a lack of automated tool for troubleshooting, it is time-consuming to locate problem by manpower.

  • Categories of abnormal problems are too many. From the job scheduling task system to the computing engine layer, common abnormal problems are late traceability, high-frequency failures, long running time, data skew, big table scanning, shuffle failure, memory overflow, cpu & memory waste, other exception, etc.

  • There is no reuse of existing solution based on effective knowledge. Lacking of storing knowledge, that are solutions for troubleshooting, it may take more time to analyze the root cause. Taking full advantage of knowledge base can greately increase the efficiency, just like standing on the shoulders of giants, users do not need to worry about falling into troubleshooting traps too much.

We developed Copalm in OPPO and made it open source in April, 2023 to provide a good solution to solve the issues above.

Rationale

Copalm fills a need for a performance tuning and troubleshooting tool for computing engine and scheduler on big data ecosystem, which supports diagnostics for Hadoop MR, Spark, Flink, Trino(developing) , Airflow,DolphinScheduler, etc. It automatically gathers metrics and logs, synchronizes metadata from engine and schduler by cdc(change data capture), runs analysis on them, and display diagnosis view for users. It runs with a rule-based heuristic way to detect job or task problem, which locates the cause of the trouble and provides diagnostic advice based on knowledge base, therefore it improves the efficiency of the performance of job or task and decreases the elapsed time for locating root cause.

Initial goals

The initial goal is to grow and diversify Copalm community in the Apache Way.
The most important things are following ASF's governance module, and integrating with Apache development process.
Migrate the existing codebase and documentation to Apache-hosted infrastructure.

Current Status

Copalm has been in service for large-scale metrics and logs detection of different engines for more than 2 years at OPPO. It was open sourced in April 2023. Within a few months, at least 4 companies are using Copalm in their big data platform and more than 10 companies are evaluting it when we discuss features and issues in community, also some of them have been contributing code to the project.

Meritocracy

This proposal intends to start build a community around Copalm following the ASF meritocracy model. We put a lot of effort into ensuring that help is available to all who wish to contribute.
Users and new contributors will be respected and welcomed.
They will earn credit by participating in the community and providing quality contributions to move the project forward,the contributions not only include the code contributions but also the non-code contributions(documentation, testing, events, community development, etc.)
Those who make long-term and high quality contributions will be encouraged to become committers.

Community

Our hope is that our existing code, features and capabilities will attract a large community of both developers and users. We know that several developers previously worked on the code, are looking forward to participating in the Open Source effects. We also believe that other organizations will find this project interesting and relevant, and contribute resources with the guideline The Apache Way.

The user community of Copalm is like the back garden of other communities such Apache Spark, Apache Flink, Apache Hadoop, Apache DolphinScheduler, Apache Airflow, etc. They may interact with each other a lot.

Users

Copalm is applied as diagnostic system around big data ecosystem, there are some users are using now. As far as we know, the companies who got touch with us through community includes iQiYI, Haier, 4399, Golden Arch(formerly McDonald's), Kugou,Bilibili, Juneyao Airlines, ZHEJIANG DAHUA TECHNOLOGY CO.,LTD, Cherry Lion Tech, Lexin(NASDAQ:LX), etc, and some of them are joining the community to discuss issues and commit code to the project.

Core Developers

Copalm has been initially developed at OPPO, after having open-sourced the project there have been contribution from developers from several external companies.

Alignment

Copalm is desgined to diagnose big data components including computing engines and shedulers, as we know that Spark, Hadoop, Flink, Dolphinscheduler are excellent Apache projects, it is a particularly good fit for Apache because the ecosystem of big data is almost Apache softwares.
We are looking forward to working in conjunction with Apache community, to strengthen development teams with insights of data.

Known Risks

Project Name

Copalm is a name for the sweet-gum tree, which leaves are five-pointed star-shaped, similar to maple leaves. Root word "co-" means together, while "palm" means hands, the name is as the old saying goes, "many hands make light work". Copalm project is to solve and optimize big data issues as mentioned in the previous background section, and we know that not every issue is the same for different user, we hope Copalm can give back to the community better under community collaboration. The term copalm is legal to use according to research of legal affairs.

Orphaned Products

First, the core developers will continue to work on Copalm, the first batch of users including development teams are from various tech companies such as OPPO, Haier, PingAn. In addition, since Copalm was open-sourced on Github in April 2023, it has received almost 240 stars and been forked more than 80 times in a few months and received many feedbacks from researchers and users outside OPPO, the risk of Copalm becoming an orphaned product is very low.

Inexperience with Open Source

Some of Copalm contributors are already familiar with open source process, two of them are contributors on other Apache projects, one is Wang Zhen(github ID: wForget, email: wangzhen@apache.org), the other is Deng An(github ID:packyan, Apache Kyuubi Contributor). We will be actively working with experienced Apache community members to impove our project.

Length of Incubation

We expect that Copalm can graduate from the incubator about two years.

Homogenous Developers

The initial committers are employed by different companies including OPPO, Haier, DaHua, iQiYI. We hope to grow the community and to include additional committers based on their contributions to the project.

Reliance on Salaried Developers

It is expected that Copalm development will happend on both salaried time and voluntary time after geting off work. The majority of initial commiters are paid by their employer to contribute to this project. Hower, Copalm is useful to their projects, which may or may not be for salary, we are committed to recruiting additional committees, including non-salaried developers in order to diversify the community.

Relationships with Other Apache Products

As mentioned in the Rationale section, Copalm is running with Apache Kafka, OpenSearch and Apache Zookeeper.it is ongoing to integrate with other Apache projects such Apache Spark, Apache Flink, Apache Hadoop, Apache DolphinScheduler and Apache AirFlow, etc. We are looking forward to collaborating with those communities, as well as other Apache communities.

An Excessive Fascination with the Apache Brand

The purpose of Copalm being proposed to enter the Apache incubation is to diversify the committer-base, not to take advantage of the Apache Brand. The Copalm project has been deployed in production in OPPO, the scenarios of which are limited, and is not expected to an OPPO product for external companies, but to integrate community scenarios and become a product used by everyone. Therefore, the Copalm project is for community collaboration on demand and not for Apache brand.

Documentation

The project name in codebase hasn't been renamed to Copalm yet, and we will rename it if the incubation proposal is approved.

InitialSource

The intial source code for Copalm is hosted at: https://github.com/cubefs/compass.

Source and Intellectual Property Submission Plan

The Copalm source code in Github is currently under Apache License v2.0 and the copyright is assigned to OPPO. If Copalm fulfills and passes the conditions for being an Incubator project in the ASF, OPPO will transition the source ownership to the Apache Software Foundation via the Software Grant Agreement and all commiters will sign their ICLAs .

External Dependencies

Apache Licence 2.0
- ch.qos.reload4j:reload4j:1.2.22
- com.alibaba:druid:1.2.15
- com.alibaba:druid-spring-boot-starter:1.2.15
- com.alibaba.fastjson2:fastjson2:2.0.23
- com.baomidou:dynamic-datasource-spring-boot-starter:3.1.0
- com.carrotsearch:hppc:0.8.1
- com.fasterxml:classmate:1.5.1
- com.fasterxml.jackson.core:jackson-annotations:2.13.4
- com.fasterxml.jackson.core:jackson-core:2.13.4
- com.fasterxml.jackson.core:jackson-databind:2.13.4.2
- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.13.4
- com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.13.4
- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.4
- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.4
- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.4
- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:2.13.4
- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.13.4
- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.13.4
- com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.4
- com.fasterxml.woodstox:woodstox-core:5.4.0
- com.github.jsqlparser:jsqlparser:4.5
- com.github.spullara.mustache.java:compiler:0.9.10
- com.github.stephenc.jcip:jcip-annotations:1.0-1
- com.google.code.findbugs:jsr305:3.0.2
- com.google.code.gson:gson:2.9.1
- com.google.errorprone:error_prone_annotations:2.11.0
- com.google.guava:failureaccess:1.0.1
- com.google.guava:guava:31.1-jre
- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
- com.google.j2objc:j2objc-annotations:1.3
- com.jayway.jsonpath:json-path:2.7.0
- com.unfbx:chatgpt-java:jar:1.1.3
- commons-beanutils:commons-beanutils:1.9.4
- commons-cli:commons-cli:1.2
- commons-codec:commons-codec:1.15
- commons-collections:commons-collections:3.2.2
- commons-io:commons-io:2.8.0
- commons-logging:commons-logging:1.1.3
- commons-net:commons-net:3.9.0
- com.nimbusds:nimbus-jose-jwt:9.8.1
- com.oppo.cloud:task-common:v1.1.0
- com.oppo.cloud:task-flink-core:v1.1.0
- com.oppo.cloud:task-mbg:v1.1.0
- com.oppo.cloud:task-ui:v1.1.0
- com.squareup.okhttp3:okhttp:4.9.3
- com.squareup.okhttp3:logging-interceptor:4.9.3
- com.squareup.okio:okio:2.8.0
- com.squareup.retrofit2:retrofit:2.9.0
- com.squareup.retrofit2:converter-jackson:2.9.0
- com.squareup.retrofit2:adapter-rxjava2:2.9.0
- com.tdunning:t-digest:3.2
- com.vaadin.external.google:android-json:0.0.20131108.vaadin1
- com.zaxxer:HikariCP:4.0.3
- cn.hutool:hutool-all:jar:5.8.12
- io.lettuce:lettuce-core:6.1.10.RELEASE
- io.micrometer:micrometer-core:1.9.7
- io.netty:netty-buffer:4.1.87.Final
- io.netty:netty-codec:4.1.87.Final
- io.netty:netty-common:4.1.87.Final
- io.netty:netty-handler:4.1.87.Final
- io.netty:netty-resolver:4.1.87.Final
- io.netty:netty-transport:4.1.87.Final
- io.netty:netty-transport-classes-epoll:4.1.87.Final
- io.netty:netty-transport-native-epoll:4.1.87.Final
- io.netty:netty-transport-native-unix-common:4.1.87.Final
- io.projectreactor:reactor-core:3.4.26
- io.reactivex.rxjava2:rxjava:2.2.21
- io.springfox:springfox-bean-validators:3.0.0
- io.springfox:springfox-boot-starter:3.0.0
- io.springfox:springfox-core:3.0.0
- io.springfox:springfox-data-rest:3.0.0
- io.springfox:springfox-oas:3.0.0
- io.springfox:springfox-schema:3.0.0
- io.springfox:springfox-spi:3.0.0
- io.springfox:springfox-spring-web:3.0.0
- io.springfox:springfox-spring-webflux:3.0.0
- io.springfox:springfox-spring-webmvc:3.0.0
- io.springfox:springfox-swagger2:3.0.0
- io.springfox:springfox-swagger-common:3.0.0
- io.springfox:springfox-swagger-ui:3.0.0
- io.swagger.core.v3:swagger-annotations:2.1.2
- io.swagger.core.v3:swagger-models:2.1.2
- io.swagger:swagger-annotations:1.5.20
- io.swagger:swagger-models:1.5.20
- jakarta.validation:jakarta.validation-api:2.0.2
- joda-time:joda-time:2.12.2
- net.bytebuddy:byte-buddy:1.12.22
- net.bytebuddy:byte-buddy-agent:1.12.22
- net.java.dev.jna:jna:5.5.0
- net.minidev:accessors-smart:2.4.8
- net.minidev:json-smart:2.4.8
- org.apache.avro:avro:1.11.1
- org.apache.commons:commons-compress:1.21
- org.apache.commons:commons-configuration2:2.1.1
- org.apache.commons:commons-lang3:3.12.0
- org.apache.commons:commons-math3:3.1.1
- org.apache.commons:commons-pool2:2.11.1
- org.apache.commons:commons-text:1.4
- org.apache.curator:curator-client:4.2.0
- org.apache.curator:curator-framework:4.2.0
- org.apache.curator:curator-recipes:4.2.0
- org.apache.hadoop:hadoop-annotations:3.3.4
- org.apache.hadoop:hadoop-auth:3.3.4
- org.apache.hadoop:hadoop-client:3.3.4
- org.apache.hadoop:hadoop-common:3.3.4
- org.apache.hadoop:hadoop-hdfs-client:3.3.4
- org.apache.hadoop:hadoop-mapreduce-client-common:3.3.4
- org.apache.hadoop:hadoop-mapreduce-client-core:3.3.4
- org.apache.hadoop:hadoop-mapreduce-client-jobclient:3.3.4
- org.apache.hadoop:hadoop-yarn-api:3.3.4
- org.apache.hadoop:hadoop-yarn-client:3.3.4
- org.apache.hadoop:hadoop-yarn-common:3.3.4
- org.apache.hadoop.thirdparty:hadoop-shaded-guava:1.1.1
- org.apache.hadoop.thirdparty:hadoop-shaded-protobuf_3_7:1.1.1
- org.apache.httpcomponents:httpasyncclient:4.1.5
- org.apache.httpcomponents:httpclient:4.5.14
- org.apache.httpcomponents:httpcore:4.4.16
- org.apache.httpcomponents:httpcore-nio:4.4.16
- org.apache.kafka:kafka-clients:3.4.0
- org.apache.kerby:kerb-admin:1.0.1
- org.apache.kerby:kerb-client:1.0.1
- org.apache.kerby:kerb-common:1.0.1
- org.apache.kerby:kerb-core:1.0.1
- org.apache.kerby:kerb-crypto:1.0.1
- org.apache.kerby:kerb-identity:1.0.1
- org.apache.kerby:kerb-server:1.0.1
- org.apache.kerby:kerb-simplekdc:1.0.1
- org.apache.kerby:kerb-util:1.0.1
- org.apache.kerby:kerby-asn1:1.0.1
- org.apache.kerby:kerby-config:1.0.1
- org.apache.kerby:kerby-pkix:1.0.1
- org.apache.kerby:kerby-util:1.0.1
- org.apache.kerby:kerby-xdr:1.0.1
- org.apache.kerby:token-provider:1.0.1
- org.apache.logging.log4j:log4j-api:2.17.2
- org.apache.logging.log4j:log4j-to-slf4j:2.17.2
- org.apache.lucene:lucene-analyzers-common:8.10.1
- org.apache.lucene:lucene-backward-codecs:8.10.1
- org.apache.lucene:lucene-core:8.10.1
- org.apache.lucene:lucene-grouping:8.10.1
- org.apache.lucene:lucene-highlighter:8.10.1
- org.apache.lucene:lucene-join:8.10.1
- org.apache.lucene:lucene-memory:8.10.1
- org.apache.lucene:lucene-misc:8.10.1
- org.apache.lucene:lucene-queries:8.10.1
- org.apache.lucene:lucene-queryparser:8.10.1
- org.apache.lucene:lucene-sandbox:8.10.1
- org.apache.lucene:lucene-spatial3d:8.10.1
- org.apache.lucene:lucene-spatial-extras:8.10.1
- org.apache.lucene:lucene-suggest:8.10.1
- org.apache.tomcat.embed:tomcat-embed-core:9.0.71
- org.apache.tomcat.embed:tomcat-embed-el:9.0.71
- org.apache.tomcat.embed:tomcat-embed-websocket:9.0.71
- org.apache.yetus:audience-annotations:0.12.0
- org.apache.zookeeper:zookeeper:3.7.1
- org.apache.zookeeper:zookeeper-jute:3.7.1
- org.apiguardian:apiguardian-api:1.1.2
- org.assertj:assertj-core:3.22.0
- org.codehaus.jackson:jackson-core-asl:1.9.2
- org.codehaus.jackson:jackson-jaxrs:1.9.2
- org.codehaus.jackson:jackson-mapper-asl:1.9.13
- org.codehaus.jackson:jackson-xc:1.9.2
- org.codehaus.jettison:jettison:1.5.3
- org.eclipse.jetty:jetty-client:9.4.50.v20221201
- org.eclipse.jetty:jetty-http:9.4.50.v20221201
- org.eclipse.jetty:jetty-io:9.4.50.v20221201
- org.eclipse.jetty:jetty-security:9.4.50.v20221201
- org.eclipse.jetty:jetty-server:9.4.50.v20221201
- org.eclipse.jetty:jetty-servlet:9.4.50.v20221201
- org.eclipse.jetty:jetty-util:9.4.50.v20221201
- org.eclipse.jetty:jetty-util-ajax:9.4.50.v20221201
- org.eclipse.jetty:jetty-webapp:9.4.50.v20221201
- org.eclipse.jetty:jetty-xml:9.4.50.v20221201
- org.eclipse.jetty.websocket:websocket-api:9.4.50.v20221201
- org.eclipse.jetty.websocket:websocket-client:9.4.50.v20221201
- org.eclipse.jetty.websocket:websocket-common:9.4.50.v20221201
- org.hibernate.validator:hibernate-validator:6.2.5.Final
- org.jboss.logging:jboss-logging:3.4.3.Final
- org.jetbrains:annotations:13.0
- org.jetbrains.kotlin:kotlin-stdlib:1.6.21
- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21
- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21
- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21
- org.lz4:lz4-java:1.8.0
- org.mapstruct:mapstruct:1.3.1.Final
- org.mybatis.generator:mybatis-generator-core:1.4.0
- org.mybatis:mybatis:3.5.11
- org.mybatis:mybatis-spring:2.0.7
- org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.2.2
- org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2
- org.objenesis:objenesis:3.2
- org.opensearch.client:opensearch-rest-client:1.3.12
- org.opensearch.client:opensearch-rest-high-level-client:1.3.12
- org.opensearch:opensearch:1.3.12
- org.opensearch:opensearch-cli:1.3.12
- org.opensearch:opensearch-core:1.3.12
- org.opensearch:opensearch-geo:1.3.12
- org.opensearch:opensearch-secure-sm:1.3.12
- org.opensearch:opensearch-x-content:1.3.12
- org.opensearch.plugin:aggs-matrix-stats-client:1.3.12
- org.opensearch.plugin:lang-mustache-client:1.3.12
- org.opensearch.plugin:mapper-extras-client:1.3.12
- org.opensearch.plugin:parent-join-client:1.3.12
- org.opensearch.plugin:rank-eval-client:1.3.12
- org.opentest4j:opentest4j:1.2.0
- org.skyscreamer:jsonassert:1.5.1
- org.springframework.boot:spring-boot:2.7.8
- org.springframework.boot:spring-boot-actuator:2.7.8
- org.springframework.boot:spring-boot-actuator-autoconfigure:2.7.8
- org.springframework.boot:spring-boot-autoconfigure:2.7.8
- org.springframework.boot:spring-boot-starter:2.7.8
- org.springframework.boot:spring-boot-starter-actuator:2.7.8
- org.springframework.boot:spring-boot-starter-aop:2.7.8
- org.springframework.boot:spring-boot-starter-data-redis:2.7.8
- org.springframework.boot:spring-boot-starter-jdbc:2.7.8
- org.springframework.boot:spring-boot-starter-json:2.7.8
- org.springframework.boot:spring-boot-starter-logging:2.7.8
- org.springframework.boot:spring-boot-starter-security:2.7.8
- org.springframework.boot:spring-boot-starter-test:2.7.8
- org.springframework.boot:spring-boot-starter-tomcat:2.7.8
- org.springframework.boot:spring-boot-starter-validation:2.7.8
- org.springframework.boot:spring-boot-starter-web:2.7.8
- org.springframework.boot:spring-boot-test:2.7.8
- org.springframework.boot:spring-boot-test-autoconfigure:2.7.8
- org.springframework.data:spring-data-commons:2.7.7
- org.springframework.data:spring-data-keyvalue:2.7.7
- org.springframework.data:spring-data-redis:2.7.7
- org.springframework.kafka:spring-kafka:2.9.0
- org.springframework.plugin:spring-plugin-core:2.0.0.RELEASE
- org.springframework.plugin:spring-plugin-metadata:2.0.0.RELEASE
- org.springframework.retry:spring-retry:1.3.4
- org.springframework.security:spring-security-config:5.7.6
- org.springframework.security:spring-security-core:5.7.6
- org.springframework.security:spring-security-crypto:5.7.6
- org.springframework.security:spring-security-web:5.7.6
- org.springframework:spring-aop:5.3.25
- org.springframework:spring-beans:5.3.25
- org.springframework:spring-context:5.3.25
- org.springframework:spring-context-support:5.3.25
- org.springframework:spring-core:5.3.25
- org.springframework:spring-expression:5.3.25
- org.springframework:spring-jcl:5.3.25
- org.springframework:spring-jdbc:5.3.25
- org.springframework:spring-messaging:5.3.25
- org.springframework:spring-oxm:5.3.25
- org.springframework:spring-test:5.3.25
- org.springframework:spring-tx:5.3.25
- org.springframework:spring-web:5.3.25
- org.springframework:spring-webmvc:5.3.25
- org.xerial.snappy:snappy-java:1.1.8.2
- org.xerial.snappy:snappy-java:1.1.8.4
- org.xmlunit:xmlunit-core:2.9.1
- org.yaml:snakeyaml:1.33

MulanPSL2
- cn.hutool:hutool-all:5.8.12

Eclipse Public License 1.0
- ch.qos.logback:logback-classic:1.2.11
- ch.qos.logback:logback-core:1.2.11

Eclipse Public License 2.0
- org.junit.jupiter:junit-jupiter:5.8.2
- org.junit.jupiter:junit-jupiter-api:5.8.2
- org.junit.jupiter:junit-jupiter-engine:5.8.2
- org.junit.jupiter:junit-jupiter-params:5.8.2
- org.junit.platform:junit-platform-commons:1.8.2
- org.junit.platform:junit-platform-engine:1.8.2
- jakarta.annotation:jakarta.annotation-api:1.3.5

BSD License
- org.hamcrest:hamcrest:2.2
- org.hamcrest:hamcrest-core:2.2
- org.ow2.asm:asm:9.1
- org.hdrhistogram:HdrHistogram:2.1.12
- com.google.protobuf:protobuf-java:3.21.12
- com.jcraft:jsch:0.1.55
- dnsjava:dnsjava:2.1.7
- org.codehaus.woodstox:stax2-api:4.2.1
- org.jline:jline:3.9.0
- com.github.luben:zstd-jni:1.5.2-1
- org.postgresql:postgresql:42.6.0

MIT License
- org.mockito:mockito-core:4.3.1
- org.mockito:mockito-junit-jupiter:4.3.1
- org.slf4j:jul-to-slf4j:1.7.36
- org.slf4j:slf4j-api:1.7.36
- com.github.pagehelper:pagehelper:5.3.2
- io.github.classgraph:classgraph:4.8.83
- net.sf.jopt-simple:jopt-simple:5.0.4
- org.projectlombok:lombok:1.18.24
- org.reactivestreams:reactive-streams:1.0.4
- com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.4.5
- com.github.pagehelper:pagehelper-spring-boot-starter:1.4.5
- org.checkerframework:checker-qual:3.12.0
- org.mockito:mockito-inline:4.3.1
- com.auth0:java-jwt:4.2.2
- com.knuddels:jtokkit:0.5.0

CDDL License
- com.sun.jersey:jersey-client:1.19 (CDDL 1.1,GPL2 w/ CPE)
- com.sun.jersey:jersey-core:1.19 (CDDL 1.1,GPL2 w/ CPE)
- com.sun.jersey:jersey-json:1.19 (CDDL 1.1,GPL2 w/ CPE)
- com.sun.jersey:jersey-server:1.19 (CDDL 1.1,GPL2 w/ CPE)
- com.sun.jersey:jersey-servlet:1.19 (CDDL 1.1,GPL2 w/ CPE)
- javax.activation:javax.activation-api:1.2.0 (CDDL/GPLv2+CE)
- javax.servlet:javax.servlet-api:4.0.1 (CDDL + GPLv2 with classpath exception)
- javax.ws.rs:jsr311-api:1.1.1 (CDDL License)
- javax.xml.bind:jaxb-api:2.3.1 (CDDL 1.1,GPL2 w/ CPE)
- javax.servlet.jsp:jsp-api:2.1 (CDDL,GPL 2.0)

Public Domain
- org.latencyutils:LatencyUtils:2.0.3

The Go license
- com.google.re2j:re2j:1.1

UI-Dependency
MIT License
- @antfu/eslint-config0.25.2
- @antv/g64.7.9
- @intlify/vite-plugin-vue-i18n6.0.0
- @types/markdown-it-link-attributes3.0.1
- @types/nprogress0.2.0
- @unocss/reset0.45.8
- @vitejs/plugin-vue3.0.1
- @vue/test-utils2.0.2
- @vueuse/head0.7.9
- axios0.27.2
- cross-env7.0.3
- cypress10.4.0
- element-plus2.2.16
- ESLint8.21.0
- eslint-plugin-cypress2.12.1
- markdown-it-link-attributes4.0.0
- markdown-it-shiki0.5.1
- nprogress0.2.0
- pinia2.0.17
- pnpm7.8.0
- sass1.54.9
- taze0.7.6
- unocss0.45.5
- unplugin-auto-import0.11.0
- unplugin-vue-components0.22.0
- vite-plugin-inspect0.6.0
- vite-plugin-pages0.25.0
- vite-plugin-pwa0.12.3
- vite-plugin-vue-layouts0.7.0
- vite-plugin-vue-markdown0.21.1
- vite-ssg0.20.2
- vite-ssg-sitemap0.3.1
- vitest0.21.0
- vue-i18n9.2.2
- vue-router4.1.3
- vue-tsc0.39.5
- Vue.js3.2.37

Apache License 2.0
- @iconify-json/carbon1.1.7
- critters0.0.16
- ECharts Charting Library5.4.0
- TypeScript4.7.4

Git Repository

Issue Tracking
Copalm currently uses Github to track issues. Would like to continue do so while we discuss migration possibilities with the ASF Infra committee.

Initial Committers

  • Zebo Zhuang (from OPPO, GitHub ID: zebozhuang)

  • Xiaoyou Wang (from OPPO, Github ID: nilnon)

  • Yves Yuan (from OPPO, Github ID: Yves-yuan)

  • Zhen Wang (from iQiYI, Github ID: wForget)

  • Deng An (From DahuaTech, Github ID: packyan)

Sponsors

Champion
Gang Li (lgcareer@apache.org)

Nominated Mentors
Ning (Willem) Jiang (ningjiang@apache.org)
Yu Li (liyu@apache.org)
Lidong Dai (lidongdai@apache.org)
Gang Li (lgcareer@apache.org)

Sponsoring Entity

We are requesting the Incubator to sponsor this project.

  • No labels