Eve is a set of tools to help us think. Currently, those tools include a database, a temporal logic query language, and an IDE.
Eve relies on TypeScript, Rust Nightly, and multirust. You'll want these installed, though our run.sh will attempt to install them for you.
bash run.sh
we're working on a nice experience for windows, but we suggest trying to use cygwin and doing the above for now
In version 0, Eve includes a database server, a language compiler, a form-based data editor, and a node-based query editor. There's still a lot missing though:
- No UI Editor
- No state
- No version control / multiple people working together
- No security
- It's slow
This list will get smaller over time and some of it should disappear quickly, but this is definitely an early version and it's meant more for people to play around with than it is anything else at this point. It is going to continue to change pretty dramatically, but it's at a point where it's at least interesting to poke around in.
DO NOT TRY TO BUILD PRODUCTION SOFTWARE WITH THIS - It's full of dragons and other things that will eat your lunch, laundry, and any other l.*'s you have lying around.
By contributing code to Eve, you are agreeing to release it under the Apache 2.0 License.
Eve is moving fast, so before contributing make sure to talk to us so that we can help guide you in the right direction and prevent you from working on something that we might be switching gears on.
When contributing:
- Check out issues that are ready to be worked on. Feel free to ping a contributor if you need help along the way.
- For any other contributions, please discuss with us as early as possible. We want your work to count.
- We are not currently seeking refactoring contributions or code convention tweaks e.g. whitespace. This may change at a later point when we have automated tests and an explicit code convention.
When filing a bug on GitHub, please help us help you by including the following:
- Steps to reproduce the bug.
- Include a gist of the database in the issue (You can use the settings gear at the bottom, open the save panel, and hit the
save to gist
button to do this magically). - Your operating system and Eve version.
If you manage to bring down the server, you can use one of the tools below to create a test and then submit it as a pull request.
If you just have questions, shoot those to the mailing list!
There are also a few simple internal tools that we've created to help create tests when things are broken.
Take a working events file and add a test that asserts that the output doesn't change in future versions:
cargo run --release --bin=migrate make_regression_test
Take a broken events file and add a test that asserts that it doesn't crash:
cargo run --release --bin=migrate make_bug_test
Remove all changes to a view from all events files:
cargo run --release --bin=migrate remove_view 'block field'
Remove a specific row from a view from all events files:
cargo run --release --bin=migrate remove_row 'tag' '["block field", "editor"]'
##License
Eve is licensed under the Apache 2.0 license, see LICENSE for details.
failed to run custom build command for openssl-sys v0.6.5
src/openssl_shim.c:1:10: fatal error: 'openssl/hmac.h' file not found
Solution: In a terminal, run:
brew link --force openssl
Additionally, OSX El Capitan no longer ships with the required headers, so you might have to download and link to them:
export OPENSSL_INCLUDE_DIR=/usr/local/opt/openssl/include
See sfackler/rust-openssl#255 for more details
Eve requires tsc version "1.6.0-dev.20150731" but "" is installed.
Solution: This is not actually an error with the Typescript install, but a linking error with Node. In Ubuntu, the standard Node.js package is called nodejs, whereas on every other platform it is called node. Creating a symlink from nodejs to node solves the issues. e.g.
sudo ln -s /usr/bin/nodejs /usr/bin/node