Giter Site home page Giter Site logo

bobheadxi / timelines Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 1.16 MB

🏷 Historical analysis of Git repositories and Git host activity as a service

Home Page: https://bobheadxi.dev/timelines-recap

License: Apache License 2.0

Go 71.22% HTML 0.52% CSS 5.01% Makefile 1.11% TypeScript 19.37% SQL 1.06% Shell 0.94% JavaScript 0.78%

timelines's Introduction

timelines's People

Contributors

bobheadxi avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

timelines's Issues

db: add postgres

will probably need it for users, projects, etc. that wont be indexed all the time

deployment: set up postgres, worker on a separate vps's

heroku provides 10k rows free, which is almost certainly not enough. might use for dev, but probably host separately on launch - admin might be painful but whatever

digital ocean

DO offers nicer and more understandable pricing, but no free tier.

image

google cloud

has free tier

image

image

alternatively, g1-small is ~$14/mo and n1-standard is ~$24/mo

image

github: scaling for large, large repos

At 5000 requests per hour, a repo like https://github.com/Microsoft/vscode will take more than 14 hours to sync all 70,000+ issues and PRs (at time of writing). Some things to do:

  • if rate limit is hit, need to put the job back on the queue, to be picked up after an hour
  • improve how PRs are fetched (right now we list all issues, which is pretty efficient, but if an issue is a PR a separate API request is made to grab it. repos with 5000+ PRs will hit the limit fast)

also:

  • probably can't naively sync everything per sync - will probably have to leverage webhooks, and only ever do a full sync exactly once (#39)

deployment: set up Procfile

for now, try deploying both to a single heroku instance, ie with 2 procs. if that doesn't perform too well, can run:

  • server on heroku dyno
  • worker(s) on some other cloud instnaces, using Inertia

db: drop existing analysis on insert (?)

still pondering if old analysis are worth holding onto. each on generates a lot of rows however, and old data is of dubious usefulness (since scaling ticks will render the bands / samples incomparable)

for now, might be a good idea to drop any old data before analysis

analysis: scaling burndowns for short-term (eg hackathon) vs long-term (eg linux) projects

will need to scale timelines dynamically.

  • implement src-d/hercules#238 (PR at src-d/hercules#245) (pulled in 013252a)
  • project "duration" detection of some sort - need to work out how commits are clustered
    • for now, probably just go with the implementation in f22e174 etc - commit cluster detection can come later, if it's actually an issue
  • update DB to account for potentially volatile timescales

store: set up redis

redis as job queue, can later use as rate limiter as well - probs more versatile overall

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.