npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

sodo

v0.0.1

Published

SODO is a software utility that organizes and automates the hundreds of tools today’s developers need to ship code to production. SODO enables software developers to come up to speed with all aspects of a project very quickly, and quantitatively scores e

Downloads

6

Readme

THIS FILE IS A BRAIN DUMP OF SHIT.

IGNORE IT. OR TRY AND CONSUME IT.

BUT DON'T EXPECT ANYTHING STRUCTURED AT THIS POINT.

API

brew install sodo ...

sodo init

sodo validate

sodo list

sodo score

This is the big one. So here we will calculate a score if there are integrations in place that is a higher score. If it's all manual steps (which is OK) then there is a smaller score. If there is absence of items, no score.

sodo ci

Are there any continuous integration systems defined in the configuration, if there are what platform are they using and have they been verified and authenticated.

If they have users are asked to create and account or their account is automatically added.

sodo cd

Are there any continuos deployment tools set up that push code through to integration.

sodo containers

sodo swagger

Is the API defined anywhere in docs such as swagger.

sodo database

Does the application have a database layer

sodo caching

Does the application use caching, if so which and what is the configuration

sodo describe

Provides the full read out of what the application is going to need to require.

sodo envs

Provides a full list of environments (beta, integ, prod, etc).

sodo releases

Provides a list of releases across applications.

sodo prod

sodo integ

sodo backlog

sodo tickets

sodo arch

sodo oncall

sodo logs

sodo dashboard

sodo health

sodo change

sodo walkthrough

sodo developers

sodo developers add -git duffymeister sodo developers add -email [email protected]

sodo announce

sodo infrastructure

output:

There are currently three infrastructure configurations on AWS. Two are active and one is production.

  (1) ...
  (2) ...
  (3) ...

sodo tests

sodo source

sodo build

sodo events

sodo issues

sodo cliffnotes

sodo readme


easter eggs.

sodo does-mark-have-a-chair


Enterprise functions

sodo approvals


Onboarding functions

sodo

File structure for sodo command.

(a) All commands are a javascript file with the children loaded in dynamically. (b) All commands are base type command and that object has some simple interfaces. (c) All commands have a basic type with is text and reports a score. (d) All commands query or mutate a particular portion of the config.

(e) The config contains activities and resources (f) Activities are in a separate directory

Named activities are like build steps (npm test) ... Activity: onboard, { steps } Activity: remove, { steps }

(i) Activities are commands on the resource object, by default add user, remove user etc. but custom commands are supported. (ii)

JIRA = new Resource();

JIRA.actions {

}

JIRA.activities {

}

Why are activities and actions different?

add is a default action for example.

jira.add(endpoint, board, ...)

jira.addUser(endpoint, board, ...)

jira.addTicket(endpoint, board, ...)

jira.createBoard(endpoint, boardname)

jira.getTickets(endpoint, boardname)

jira.map(...)

Resources: Backlog, JIRA, Etc. Resources: Source, github. Resources: Oncall, pagerduty. Resources: Docs, confluence, Resources: Docs, google Resources: Docs, etc. Resources: ci, CircleCI Resources: guide, steps.

"activities": { "onboard": { "form":{ "id": "onboardform", // Smarts on the server here to know what form type that is. }, "checklist":{ ... } "email":{ "addUser": {}

  }
}
"offboard":

} "resources":{ "backlog": { "type": "jira", "settings": { "endpoint": "http://foo" "board": "zimbra" } }, "tests": { "type": "manual", "description":"blah blah blah" } }

JIRA = new Resource(); JIRA.key = "jira"; JIRA.types = ["backlog", "tickets", "etc"]; JIRA.add = function(){} // Overrides the base class JIRA.nnn = function(){} // Named functions that can be called on the resource (sodo backlog list)

sodo.backlog.open();

sodo backlog add

$ sodo backlog add jira [opts] Jira added as the backlog, we've not connected that yet, visit shipday.one to connect to your jira instance.

$ sodo ci add circleci [opts] CircleCI added as the CI provider, we've not connected that yet.

$ sodo docs add google-docs [opts] Google Docs added as the documentation provider, we've not added that yet.

$ sodo score Your sodo score is 10/100 you can help get developers shipping on day on by: [x] Connect CircleCI, JIRA and Google documents [x] Add an architecture diagram [x] Add an oncall rotation [x] ...

[switch to UI and authenticate]

$ sodo onboard

New developers on this project need to complete the following:

1. Request access to CircleCI and follow the getting started guide here.
2. Request access to JIRA
3. Request access to the following google doc.
4. Download and install node
5. Download and install kubernetes

SODO Tip: Add integrations to speed up onboarding.

// Once

$ sodo onboard [email protected]

We've sent a simple email to [email protected] but we could do so much more if you connected you apps at shipday.one.

  • OR -

New developer added to the project. We are getting them cooking in no time at all. With a sodo score of 90/100 I'd bet a pizza they ship on day one.

$ sodo checklist

Give the user a checklist of what steps remain to get on-boarded

[√] Add CircleCI to your environment
[√] Add Artifactory

etc.

var Resource = require('./resource').Resource;

Trello = new Resource(); Trello.key = "trello"; Trello.types = ["backlog", "tickets"]

Trello.add (); Trello.summary(); Trello.help();

GitHub.add(); GitHub.summary(); GitHub.help = function(){};

sodo onboard

Welcome to MyAwesomeApp, let's get you started.

GitHub username (duffmeister) Google account ([email protected]) Trello account ([email protected]) CircleCI () NewRelic ([email protected]) AWS () Dockerhub ()

// Onboarding can be done via the command line for now.

// Approvals -- other member // Approvals -- manager // Approvals -- named

GitHub.onboard = function(){ // Pre-requisites // Github user name //

}

GitHub.offboard = function(){

}

sodo onboard [email protected]

Email sent to that user with instructions on how to install sodo and start setting up repository for development.

sodo add source github help sodo add tickets github sodo add ci circleci

sodo ci

var init = new Resource({ score: {}, commands: ["run"] });

init.summary = function(){

}

init.run = function(){ // Check for a config file. // Look for everything else // }

var backlog = new Type({ score: { none: 0, manual: 1, connected: 2 }, commands: ["add", "remove", "usage", "list", "summary"] });

var file = new Resource({

});

sodo backlog add file ./backlog.md

var score = new Type({

})

var score = new Command({

});

var init = new Command({

});

var tips = new Command({

});

var login = new Command({

});

// How is this different from file? var link = new Resource({

})

// Remember to add to onboard/offboard when you add or remove the setting.

// Question can anything mutate the onboard/offboard list directly.

//

/*

Let's look at backlog adding trello or jira.


sodo backlog add trello https://trello.com/b/dGYFPPyE

sodo ci add circleci

sodo tests add mocha

sodo env add aws

sodo repo add artifactory

sodo docs add readme

sodo docs add google

sodo config add puppet

sodo tickets add

sodo dashboard add datadog

sodo oncall add pagerduty

sodo logs add file

sodo readme add file

GoogleDocs = new Resource(); GoogleDocs.key = "google-docs"; GoogleDocs.types = ["arcitecture", "requirements", "opsguide", "sop"];

{ "account_id": "xxx", "access_key": "xxx-should-be-env-xxx", "type": "developer", "event": "xxx", "approvals": [{ "type": "manager" }], "introductions": [ "@duffy", "@schoonover", "@carla" ] "sodo-checklist": [ // List of items (working-backwards) ], "activities": [ { "type": projectmanagement, "name": "Add the user to JIRA", "strain": "jira", "config": { "board": "sodo", }, "activities": [{ "type": "tasklist", "type": "event", "type": "notification" }] "type": task, "strain" type: "repository" strain: "github"

    type: "timetracking"

    type: "cd",
    type: "ci",

    type: "documents",
    type: "etc",

    type: "input"

    type: "approval"

    type: "tests"
    strain: "link"

    type: "infrastructure"
    strain: "docker"

    integration environment
    production environment
    dashboards and links

    sodo: {
      env
    }

  }
]