Skip to content

Instantly share code, notes, and snippets.

@meowsbits
Last active December 4, 2018 18:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save meowsbits/b1cba2c7ca85db08533bd4efd61d8118 to your computer and use it in GitHub Desktop.
Save meowsbits/b1cba2c7ca85db08533bd4efd61d8118 to your computer and use it in GitHub Desktop.
Development team infrastructure, etc. / Phase 1

Remote version control

  • Github org (/etclabs, /bestwisdom?)
    • Membership at reader/writer (admin+) level for all developers

CI pipelines

  • CircleCI account (possibly Pro)

    Handles OSX and Linux tests and builds and integrates seamlessly w/ Github

  • Appveyor account (possibly Pro)

    Handle Windows tests and builds

These accounts should provide admin access to all developer team members. Probably this can be accomplished thru Github x-authentication, but should be ensured.

Builds: archive tools, storage, and distribution

  • Mechanism to sign and ship nightly and tagged software builds
    • needs to handle authentication schemes for storage write permissions
  • Storage location (eg. Google CP, Amazon S3) for these archived builds

isaac: for tagged (@semver.minor+?) builds, it would be clever to add a feature to this mechanism that would ensure that the tag and tagged commit (HEAD) was signed with a GPG key belonging to a known and publicly registered team member credentials with adequate permissions relating to the development team.

https://github.com/etcdevteam/janus was a tool designed for this at ETCDEV. Cons of reuse:

  • it handles semver formatting and gcp uploads; a very opinionated bundle
  • the semver formatting is brittle; for example, v.1.2.3-dirty-alpha breaks it
  • it's own verison control and tests are ugly, incorporating an ugly git submodule scenario

Pros of reuse:

  • handles symmetric an asymmetric signatures
  • proven to work, with many implementation examples
  • Distribution:

Tooling

  • ETCDEV Jetbrains IDE License set to expire tomorrow (Dec. 4 2018)
    • They've also changed their open source license offerings, and now license will be paid if developers are paid

Documentation infrastructure

  • Tooling for documentation generation (eg. Gitbook, Docusaurus, reathedocs.io ... -> Stev)
  • Hosting for documentation (github pages, self hosted...)
  • Bonus points: make code and documentation tightly coupled
  • Bonus points: integrate documentation rollout with CI

Developer-developer and developer-community communication channels

  • Gitter rooms, accounts

    These are associated by github org and repo, I believe

  • Slack

  • Discord

  • Zoom, or another video conferencing medium

  • Email (@etcdevteam/protonmail might die)

_isaac_: IMO this should be primary domain for team communications, for the sake of transparency and community accessibility and engagement.
This doesn't mean that all rooms should be publicly writable, but at every reasonable chance should be publicly readable.

Daily developer routine practices and policies

  • Stand ups? When? In person?
  • Mutual time-available zones?
  • Scheduled architectural and design discussions?
  • Scheduled sprint routines?
  • Scheduled code review sessions?

Developer expense practices and policies

  • Standard monthly allowance for hardware and compute infrastructure costs (eg. VPS rent, hardware wallet)
  • Standard allowance for "Oh, shit" hardware and compute infrastructure costs (eg. replace SSD)
  • Standard allowance for do-ocracy principles and independent research (eg. buy an Arduino, make a blockchain flamethrower)
@meowsbits
Copy link
Author

... assuming we won't have https://github.com/etclabs 😜

@darcyreno
Copy link

What about the Brew setup - Who's "owns" and administers that?

@meowsbits
Copy link
Author

meowsbits commented Dec 4, 2018

The homebrew formulas (https://github.com/ethereumproject/homebrew-classic) for geth and emerald-vault belong to https://github.com/ethereumproject, so theoretically "community" administered.

I'll modify the Build archive tools and storage section to include Distrubution channels

@meowsbits
Copy link
Author

Also thinking this should be formatted as a table.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment