We want to make contributing to this project as easy and transparent as possible.
-
dialect
- Contains SQL and Gremlin code used by the generated code.dialect/sql/schema
- Auto migration logic resides there.
-
schema
- User schema API.schema/{field, edge, index, mixin}
- provides schema builders API.schema/field/gen
- Templates and codegen for numeric builders.
-
entc
- Codegen ofent
.entc/load
-entc
loader API for loading user schemas into a Go objects at runtime.entc/gen
- The actual code generation logic resides in this package (and itstemplates
package).integration
- Integration tests forentc
.
-
privacy
- Runtime code for privacy layer. -
doc
- Documentation code forentgo.io
(uses Docusaurus).doc/md
- Markdown files for documentation.doc/website
- Website code and assets.
In order to test your documentation changes, run
npm start
from thedoc/website
directory, and open localhost:3000.
If you touch any file in entc
, run the following command in entc
:
go generate ./...
Then, in entc/integration
run docker-compose
in order to spin-up all database containers:
docker-compose -f docker-compose.yaml up -d
Then, run go test -tags json1 ./...
to run all integration tests.
We actively welcome your pull requests.
- Fork the repo and create your branch from
master
. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Make sure your code lints.
- If you haven't already, complete the Contributor License Agreement ("CLA").
In order to accept your pull request, we need you to submit a CLA. You only need to do this once to work on any of Facebook's open source projects.
Complete your CLA here: https://code.facebook.com/cla
We use GitHub issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue.
Facebook has a bounty program for the safe disclosure of security bugs. In those cases, please go through the process outlined on that page and do not file a public issue.
By contributing to ent, you agree that your contributions will be licensed under the LICENSE file in the root directory of this source tree.