Git Product home page Git Product logo

deps.cloud's Issues

Build project cleanroom

The basic idea would be to have a single repository with configuration use to scaffold out a cleanroom environment for testing. Ideally, we'd be able to test:

  • each integration (GitHub, GitLab, BitBucket, Nexus, jFrog)
  • each database driver (sqlite, mysql, postgres)
  • HTTP and SSH clone support

I imagine this being a git-ops style repository containing kubernetes manifests. These manifests can be applied to a minikube cluster during github-action runs. Looks like there is a plugin for being able to do something like that.

https://github.com/marketplace/actions/setup-minikube-kubernetes-cluster

KinD might even be an option: https://github.com/marketplace/actions/kind-kubernetes-in-docker-action

Update CLI installation instructions

Now that we have Homebrew and APT packages available, we need to update the documentation on how to install the CLI.

For apt on Ubuntu:

$ echo "deb [trusted=yes] https://apt.fury.io/depscloud/ /" | sudo tee /etc/apt/sources.list.d/depscloud.list
$ sudo apt-get update
$ sudo apt-get install depscloud-cli
$ deps --help

For brew on OSX:

$ brew tap depscloud/tap
$ brew install depscloud-cli
$ deps --help

The binary can still be downloaded through the releases section, but this will be the preferred way.

Create Webook

It would be nice to have a webhook to be able to pro-actively update state when changes are made to projects.

Level up documentation

The site has largely been a kitchen sink up to this point. It's a good chance to really evaluate the content, pair it down to relevant sections, and focus on the main points.

Introduce monitoring

No project integrates monitoring right now. This means that we need to leverage application logs to get a sense of what is going on in a system. By having something like statsd or prometheus monitoring, we would be able to better monitor the systems over time.

My proposal would be to leverage statsd as the main stat emission protocol, but then leverage prometheus sidecar containers to advertise the metrics. This should fit in rather nicely to many existing stat collection tools, like prometheus and datadog, without being too opinionated about which ones companies are using.

Hook in health checks

Currently, health checks do not hook into any active / passive signals. As a result, services occasionally report healthy when the underlying connections are halted. This will require some pre-work from me to list dependencies.

Monorepo discussion

Right now, a lot of the code is scattered across a few repositories. While this has been nice from a separation of concerns perspective, it's made getting started a bit harder and some additional process and project management. I'd like to start a thread around moving to two monorepos.

The depscloud repository would merge part of api, dockerfiles, gateway, extractor, indexer, part of tracker, and potentially deploy. This would move all business logic under a single location and enable project private "libraries" for common logic. This would require some careful project structuring as it would container code for TypeScript (api, extractor, ui), Python (api), and Golang (api, gateway, indexer, tracker).

The graphstore repository would pull the graph database-specific elements out of the api and tracker projects. It would work to provide a generic graph database solution that runs on top of existing SQL solutions. This has largely been done through packaging, but this would be a distinct segmentation of code. This would likely require "independent" project management, treating depscloud as just one use case.

Start a blog

Part of the goals I laid out for this year was to start a blog to be able to do regular release updates as well as start to include some other content that we've learned as well. This should be pretty easy to do since we're already using Hugo.

Using this issue to start a thread of possible post ideas and to start in on some blog frameworking.

Add content for python sdk

From gh-53

The page for this is currently stubbed out. We should add some user guides on how to get started with the python sdk.

Add section on terminology

There's a lot of jargon used throughout the project. Let's add a section to help clarify some terms. Some examples of this include:

  • dependency graph
  • manifest files
  • organization
  • module
  • source
  • dependency
  • dependent

This should be added to the /docs/concept/ page once gh-53 is merged

Add content for nodejs sdk

From gh-53

The page for this is currently stubbed out. We should add some user guides on how to get started with the nodejs sdk.

Create CLI tool for exploring API more easily

Some notes I scribbled on a napkin:

# simple alias to binary
$ alias dcc=depcloud-cli

# list sources
$ dcc get sources

# list sources for module
$ dcc get sources --organization <> --module <>

# list modules for source
$ dcc get modules --source <>

# list dependents for source
$ dcc get dependents --organization <> --module <>

# list dependencies for source
$ dcc get dependencies --organization <> --module <>

Add support for HPA

The extractor and tracker processes can easily be scaled using an HPA. This requires work for monitoring to be done and associated HPA definitions to be added to the charts.

Write blog post on producing a public facing gRPC service

gRPC services are often thought of as private services and only accessible by other projects. With some advancements from cloud providers and tools like Kubernetes, leveraging gRPC for a public service can be really useful. Shouldn't be hard to throw together a quick blog post.

This might turn into a part one of sorts.

Add content on dependency graphs

From gh-53

The page for this content has already been stubbed out. We should add some educational information about what a dependency graph is, why it's valuable, and the types of problems it's well suited to solve.

Build system refactor

Right now, the build and publication system is kinda a mess.

  • Travis CI is responsible for handling the building and releasing of resources.
  • When a new version is released, I need to await CI completion to build and publish the docker images
  • Once CI is complete, I use buildx to create multi-arch images and push them to docker

It's a rather toilsome process and there have been some significant shifts recently that I think can help clean up this workflow.

  • Most of what I'm doing in Travis CI can be done easily in GitHub Actions without requiring the provisioning of an API key.
  • GitHub Actions also support buildx now making it easy to build and publish multi-arch images

During the process, we should preserve all existing artifacts.

Move to goreleaser for all projects

I've long use tools like gox and simple asset uploads to deploy binaries. There are some nice things that come along with goreleaser such as a programmatic changelog, checksums, and more.

Rename GitHub Group

Current: deps-cloud
Proposal: depscloud

Why?

  • Consistency
  • Some systems don't allow special characters in their group name backing distributions difficult to remember.

Places to change:

Support extracting source URLs

Changes to deps-cloud/api

  • proto needs to be update to include source url
  • .d.ts file needs to be updated to include source url field

Changes to deps-cloud/extractor

  • version bump api
  • Update extractors to attach a sourceUrl where found

Changes to deps-cloud/tracker

  • version bump api
  • if a source is provided as part of the dependency management file, include as part of the update to the graph.

Changes to deps-cloud/indexer

  • version bump api

Migrate docs to using Hugo

Right now, most of the documentation is manually laid out. If we leveraged gitbooks, we can get some more structure to the documentation.

Setup CLAs

At one point I had these on the project but removed them. This time, we'll add an individual and corporate agreement with some directions for both.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

github-actions
.github/workflows/branch.yaml
  • actions/checkout v3
  • peaceiris/actions-gh-pages v3
npm
package.json
  • postcss 8.3.0
  • autoprefixer 9.8.8
  • postcss-cli 9.1.0

  • Check this box to trigger a request for Renovate to run again on this repository

Add content for golang sdk

From gh-53

The page for this is currently stubbed out. We should add some user guides on how to get started with the golang sdk.

Replace Gitter with Slack

When Gitter added support for message threads, their mobile app has gotten a lot less usable. Let's just move to Slack.

Build template project

Alright, this has now bitten me a couple of times in migrations where I've forgotten to add some basic bits of information. It should be pretty easy to build a template project that contains the minimal amount of information.

  • LICENSE
  • DCO
  • README.md
  • renovate.json

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.