Skip to content

Instantly share code, notes, and snippets.

@cz
Last active August 29, 2015 14:01
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 cz/de6057f29754cdd0c6a1 to your computer and use it in GitHub Desktop.
Save cz/de6057f29754cdd0c6a1 to your computer and use it in GitHub Desktop.
Alyx MVP Todos

Oustanding info/functionality

All Services

  • List of all multiverse services
  • Property on each service saying whether it's starred by the current user
  • Endpoint to star/unstar services
  • Recent activity across all services (last 5?)

My Services

  • List of my starred services
  • Recent activity across my services (last 5?)

Service pages

  • Active note, if any
  • Endpoint to CRUD notes (see below)
  • Last-deployed branch
  • Status of all active branches (see below)

Branch pages

  • Status of branch
  • Active note, if any
  • Endpoint to CRUD notes
  • Endpoint to manually mark/unmark branches "Verified"
    • i.e. toggle them between stages 4 and 5 (see below)
  • Endpoint to trigger a new build/stage/test process
  • Endpoint to just rerun tests?
  • Thor URL, if any
  • Pull request URL and content, if any
  • Build status, if any
  • Test status, if any
  • Recent activity (last 5)

Activity page

This will be a new page that just displays a paginated list of activity items. Defaults to all activity across all services, but can accept params for service and branch as well and filters by those. E.g.:

/activity/ /activity/recruit/ /activity/recruit/rec_somthingbranch

This view would power the 'All ->' links for the activity area throughout the app.

Might be interesting to also be able to pass it a user and see all their actions.

Additional information

Branch status

I imagine a branch moving through its lifecycle in 6 stages. Within each stage, the branch has a status.

  1. Built
    • success: build succeeded, move automatically to stage 2
    • warning: build in progress
    • error: build failed
  2. Staged
    • success: deployed to Thor, move automatically to stage 3
    • warning: deploy in progress
    • error: deployment error
  3. Tested
    • success: tests passed, move automatically to stage 4
    • warning: tests in progress
    • error: tests failed
  4. Ready for QA
    • success: everything up to date
    • warning: Thor/repo not on same revision
    • error: n/a
  5. Verified
    • success: automerge possible
    • warning: new commit since verified?
    • error: cannot automerge
  6. Merged
    • success: branch tip deployed to prod
    • warning: branch tip not yet deployed
    • error: build/deploy error

A branch that's been staged and is being actively developed will cycle between steps 1-4 regularly as new commits are made and then deployed.

So wherever I get branch info, I want to know its stage and its status:

name: REC_Whatever
stage: 4
status: success

Notes

Notes can be posted to a service or to a branch. We should have the following info for every note:

  • Author
  • Content
  • Date
  • Status

Status can be active or inactive. A branch or service can only have one active note at a time. Posting a new note deactivates any other active notes.

We probably just need a single endpoint for creating/editing notes. Users can only edit their own notes (but I can deactivate someone else's existing active note as a side effect of creating a new note of my own).

@tysonstewart
Copy link

This is helpful. Questions:

  • What do you see as the highest priority or priorities?
  • Minor, but can we use something more descriptive than a number for the stage?
  • Have you given any thought to deployment status? I think we'll need some kind of progress indicator and a way to communicate errors and resulting actions.

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