Skip to content

Instantly share code, notes, and snippets.

@nyaray
Created October 27, 2012 18:16
Show Gist options
  • Save nyaray/3965573 to your computer and use it in GitHub Desktop.
Save nyaray/3965573 to your computer and use it in GitHub Desktop.

erm-tools, 2012-10-27

Notes from a starting... erm (no pun intended), meeting.

Rebar mistakes

  • No documentation
  • Making it an escript
  • Packaging it with every erlang app
  • Not recording anything previously completed

Ambitions

A prioritised list, but also the order in which steps to carry out sub-projects should be taken.

  • Create useful and relevant documentation
  • Create a toolbox of orthogonal tools/scripts that help developers with specific tasks
  • Keep the tools out of the projects they manage
  • Maintain some sort of state to track what has been built (or infer it from timestamps)

High Level Overview

The following is a growing list.

Erlang

  • Building [Specify Multi-architecture]
  • Version [Register Version for Assignability]
    • Assignability meaning pairs of (erlang, deps) that work
  • Architecture OS for cross building

OTP Libs

Does this mean that you should be able to selectively include otp libs or what?

  • Erlang Version [Matching version exists]

Projects

  • Release
    • Building
    • Upgrading
      • Generate appups
      • Downgrading (when possible)
  • Application and Dependencies
    • Building
      • Generate Emakefiles
      • Register Version Usage
      • Sub Application
        • Register Base Application
      • Building
        • Register Version Dependency < register where? mnesia?
          • Already versioned? Changes Present?
      • Basic Dependency
      • Cross Dependency < A dependency used by multiple projects
        • Register Projects < this should be for limiting scope
          • Automatically? Can it be done?
          • Probably, once a project dependency matches name
          • You could optionally select what projects it should be shared with, in doing so, you could then modify it from a singular point, otherwise the iterative development goes something like, commit, push, go to each dependency and update, or use the poorly named rebar update-deps, which should be called slow-deps-update-maybe lol
    • Rebuilding
      • Check projects apps/deps index
        • What are the minimum applications, necessary
        • to perform a compile and reload of all effected
        • applications/beams, should possibly work off time
      • Check if Emakefiles have changed
      • Have beams

Testing

What about distributed testing? ct_master? etc

  • Projects
    • Tools
      • Dialyzer
      • XRef
      • TypEr
      • Wrangler
    • Suites
      • EUnit
      • Common Test
      • PropEr/QuickCheck/eqc
    • Tools should also be handled as Dependency but different (run QC tests only if you have it installed/registered) should also suggest tools, maybe

Test integration for automatically cheching erlang + deps

@nyaray
Copy link
Author

nyaray commented Oct 27, 2012

@nyaray
Copy link
Author

nyaray commented Oct 27, 2012

Thought I'd massage the text a bit and store it a bit more permanently :)

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