We are excited to announce the release of source{d} Engine 0.12. Follow this link to upgrade to source{d} Engine 0.12 and receive notifications about new releases, features, security updates as well as tutorials and guides.

The cutting-edge version can also be found directly on source{d}'s GitHub where we invite you all to contribute with documentation, code, and issues.

Please don't hesitate to reach out to devrel@sourced.tech if you have product feedback or requests that you do not feel comfortable sharing directly on our GitHub repository.

New Features & Support

C# Language Support

We have added language support for parsing & querying C# files and codebases via the Babelfish project which powers the source{d} Engine. You can now return the native AST, Universal AST (UAST) and annotated UAST of C# files. To see all the currently supported languages and their stage of maturity, head to Babelfish language support.

Note: C# support is currently affected by a known issue on language detection, but we offer a workaround while we fix it.

SQL Querying

The custom REPL SQL shell we used is now replaced with a standard MySQL client you know and trust. This means you get many features like switching to display results per column, paging, and others that were not previously available (#154).

Port Management

Port management and custom configuration were introduced in source{d} Engine 0.11, allowing users to set custom ports for components managed via a configuration file. In source{d} 0.12 you can list the container exposed ports in the srcd components list output (#300).

Significant Improvements & Fixes

Performance

Performance on language parsing on all platforms got significant improvements, up to 100% increase in speed thanks to Babelfish project improvements.

macOS and Windows: We have changed how we deal with mounted volumes and this brings an improvement in SQL queries performance from 100% to up to 10 times (#330).

User experience

You can now expect much more friendly and useful error messages (#252, #258, #272, #291, #294, #295, #326).

Data Persistence

In this release we have changed how source{d} Engine stores the gitbase index data. In previous releases, we stored this data in ~/.srcd/gitbase . From now on they will be managed as docker volumes. This change has 2 implications:

  • If you had created an index for your data you will need to recreate them after source{d} Engine is updated.
  • The files in ~/.srcd/gitbase are not used anymore, and you need to clean them manually: rm -rf ~/.srcd/gitbase
    Note: in Linux you may need to run the command as root.

This manual cleanup will not be necessary after you install this version. From now on, the srcd prune command will delete volumes containing the gitbase index data.

Fixes & other improvements

Other fixes and general improvements included in 0.12:

  • Fix the gRCP ResourceExhausted error for srcd parse uast with big files (#271).
  • When running the web UI with srcd web sql, it will wait till gitbase is ready to accept queries, even if the workdir contains a lot of Git repositories (#284).
  • If the daemon container crashes or is stopped directly by the user, the following `srcd `commands will restart it and will use the working directory used when srcd init /path/workdir was called. It is now done recovering previous state as saved in  ~/.srcd/.state.json (#372).
  • All anonymous volumes that were unnecessarily created on gitbase initialization and that were not attached to any container will be deleted by srcd prune (#371).

Learn more about the new features and improvements from our latest features by attending our Online Meetup taking place on May 9th at 9:30am PT.

Sign up now!

Next Steps

Want to learn more about the source{d} Engine and it can benefit your community, enterprise or university? You can go to: