Apache DevLake is an effort undergoing incubation at The Apache Software
Foundation (ASF), sponsored by the Apache Incubator PMC.

Incubation is required of all newly accepted projects until a further review
indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects.

While incubation status is not necessarily a reflection of the completeness or stability of the code,
it does indicate that the project has yet to be fully endorsed by the ASF.

Some of the incubating project’s releases may not be fully compliant with ASF policy.
For example, releases may have incomplete or un-reviewed licensing conditions.
What follows is a list of issues the project is currently aware of (this list is likely to be incomplete):

 * Releases may have incomplete licensing conditions.

If you are planning to incorporate this work into your product/project, please be aware that you will
need to conduct a thorough licensing review to determine the overall implications of including this work.
For the current status of this project through the Apache Incubator,
visit: https://incubator.apache.org/projects/devlake.html
