RSS

< Back to Blog

v0.3.5 released

Over the last few weeks I’ve been making a handful of modifications to the project. There was some restructuring to make things easier to navigate but as usual… I missed something in the process. Hence the multiples of releases. Below, I call out to a summary of the versions and known issues.

  • 0.3.2 - issues with extractor and tracker startup.
  • 0.3.3 - issues with tracker startup for read-only deployments
  • 0.3.4 - Stable
  • 0.3.5 - Stable

Features

feat(gh-301): add tree command

Occasionally, software systems encounter cycles in the graph. When this happens, the deps.cloud topology query truncates silently (not great). To help give more information to callers, we added a “tree” command that will return the entire subtree (nodes and edges included). With the addition of this new tree command, we’ve updated the topology command to write an error when it encounters a cycle. Users will still be able to obtain partial orders… but will need to handle the err message at the end.

feat(gh-15): support field indexes

Data stored in deps.cloud now has some minor indexing support to improve exploration. This mostly started as an idea, but was able to grow into a useful implemenation rather quick. In order to support indexes, we did need to refactor some elements around the database layer. We currently index a handful of fields (namely, url on sources and language and name for modules). This allows clients to quickly search for nodes in their graph and use subsequent calls for traversals.

New Endpoints

By adding support for field indexes, we were able to implement the following endpoints in REST and gRPC.

Description Endpoints
List languages deps.cloud has modules for. grpc - depscloud.api.v1beta.LanguageService#List
rest - /v1beta/languages
cli - deps get languages
Search modules containing the provided name part. grpc - depscloud.api.v1beta.ModuleService#Search
rest - /v1beta/modules/search?like.name=xxx
cli - deps search modules
Search sources containing the provided url part. grpc - depscloud.api.v1beta.SourceService#Search
rest - /v1beta/sources/search?like.url=xxx
cli - deps search sources

feat(gh-228): move off gogo protobuf

For better compatibility with the standard tooling provided by the community, we moved from the gogo to upstream protobuf. From a usage perspective, you shouldn’t notice a difference. A big benefit to the project is that we should be able to leverage the reflection API instead of managing a static routing table in gateway.

Upgrade to Node 16

We’ve upgraded the extractor process to use NodeJS 16. This is a pretty major upgrade considering the last version we were running on was NodeJS 12. For the most part, not much changed that impacted the extractor process. There were some minor modifications, but nothing that appeared to impact the overall functionality.

Notable Fixes

  • fix: refactor the database layer (#293) 3547dc0
  • fix: use repo url to infer vendor.conf files f84759a
  • fix: cleanup remaining references to older terminology pairs 49d4fcf
  • fix: remove warning output for healthcheck a74639f
  • fix: guard against npe 1ac61b9a
  • fix: upgrade express-prometheus-middleware 122c3305