This project is completely managed on GitHub using its issue tracker and project boards.
Anyone can contribute, be it by coding, improving docs or just proposing a new feature. Look for tasks having a "help wanted" tag. When picking up an existing issue, please let us know in the issue comment. Don't hesitate to reach out for guidance or to discuss a solution proposal!
When creating a Pull Request for code changes, please check that you cover the following:
- Include tests for the changes you introduce. See the test folder for examples.
- Formatted the code using
dartfmt -l 120
. You can configure your IDE to do this automatically, e.g. VS Code needs the project-specific settings"editor.defaultFormatter": "Dart-Code.dart-code"
and"dart.lineLength": 120
. - Update the
## latest
section in theCHANGELOG.md
- add a single-line comment what changes. This only applies if the change is "external", i.e. it affects objectbox-dart library users.
Issues on the project board are referred to as "cards" which move from left to right:
- New cards start in the "To Do" column. Within the column, cards are ordered: more important tasks should be above less important ones.
- Once somebody starts on a task, the according card is moved to "In progress". Also, please assign yourself to the issue.
- Once a task is considered complete (e.g. PR is made), put it in the "Review" column.
- Once another person had a look and is happy, the task is finally moved to "Done" and its closed.
ObjectBox offers a C API which can be called by Dart FFI. The C API is is also used by the ObjectBox language bindings for Go, Swift, and Python. These language bindings currently serve as an example for this Dart implementation. Internally, ObjectBox uses FlatBuffers to store objects.