tvkitchen / countertop

The entry point for developers who want to set up a TV Kitchen.
https://tv.kitchen
GNU Lesser General Public License v3.0
6 stars 2 forks source link

Reorganize as countertop package #88

Closed slifty closed 4 years ago

slifty commented 4 years ago

Description

This PR is a significant change: it moves this repository from being a standalone "application" that can be cloned, configured, and run into being a "countertop" package that a TVK implementation will import (alongside the other appliances / components that it wants to use).

This is the culmination of a series of discussions about what the TVK entry point should look like.

It means we no longer have a src/components directory, since this is only the countertop. The countertop classes are now in a src/classes directory instead.

We expose all of the classes at the package level, so developers will do things like:

import { CountertopCoordinator } from `@tvkitchen/countertop`
const countertop = new CountertopCoordinator()

Questions for the room:

  1. Should CountertopCoordinator just be called Countertop (very important)
  2. Is src/classes the right directory (less important)
  3. Is @tvkitchen/countertop an appropriate package name (last call to change it!).

Due Diligence Checklist

Steps to Test

  1. yarn test

Deploy Notes

None -- deployment is no longer really a thing here.

Related Issues

Resolves #85 Related to #66 Related to #80

slifty commented 4 years ago

NOTE: part of merging this PR is going to be renaming the repository to countertop

reefdog commented 4 years ago

Should CountertopCoordinator just be called Countertop (very important)

Yes!

I think CountertopCoordinator is like saying "we wanted to go with the metaphor, but found the name illegible, so what it really is is a coordinator, so we'll call it both". I'd say call it either the Countertop or the ApplianceCoordinator (or whatever thing/action it is coordinating). IIRC it's doing enough general coordinating that adding a subject could go out of date quickly, so, Countertop works as a general name that's clear enough and whose legibility is quickly established once you grok the architecture.

Is src/classes the right directory (less important)

I have no opinion! Semantically it makes sense, but I don't know if there's an idiomatic reason to go with another name!

Is @tvkitchen/countertop an appropriate package name (last call to change it!).

Yes!