smee icon indicating copy to clipboard operation
smee copied to clipboard

Proposed Boots roadmap

Open jacobweinstock opened this issue 4 years ago • 3 comments

The following is a proposed roadmap of work items for Boots. They are not ordered in terms of priority. I don't know if we can get a Github project created in this repo to maybe track these. If so, I can create all the tickets.

  • [x] define design philosophy
  • [x] turn up golangci-lint
  • [ ] document coding style guide
  • [x] document data model relationship to code logic
  • [x] installer registration explicit
  • [x] all environment vars defined in func main
  • [x] use github.com/peterbourgon/ff for flags, env vars, config file
  • [x] reorg package structure
  • [x] proper context passing
  • [x] document versioning strategy for the codebase
  • [ ] incorporate goreleaser
  • [ ] customizable DHCP options
  • [x] customizable kernel args
  • [x] move default git branch to main
  • [x] move all panics to func main
  • [x] move logging to github.com/go-logr/logr
  • [x] move osie installer to hook
  • [x] add DHCPProxy functionality
  • [ ] add DHCP pools
  • [ ] add hardware discovery functionality
  • [x] add custom ipxe script with network retries and custom user-class name
  • [x] add stack stand up capability
  • [x] remove/avoid global/package level variables
  • [x] remove cacher dependency
  • [x] remove git-lfs dependency
  • [x] remove installers other than a default
  • [ ] remove syslog
  • [x] remove hardware discovery endpoint
  • [x] remove Equinix Metal specific code
    • [x] dual provisioner lookup
    • [x] hollow
    • [x] EM api calls
    • [x] EM specific http endpoints
    • [x] etc
  • [x] refactor to make all funcs/methods explicitly require their dependencies
  • [ ] add functional testing
  • [x] Increased unit testing
  • [x] #210

jacobweinstock avatar Aug 05 '21 15:08 jacobweinstock

I think https://github.com/tinkerbell/boots/issues/210 is worthy too :-)

rgl avatar Oct 09 '21 21:10 rgl

@jacobweinstock I think we should create trackable issues for each of these items (although some items may fit into the same issue). This roadmap issue contains items that could extend for sometime. The bulleted items are missing context that would be provided in a dedicated issue. Those issues can be linked to in the bulleted list above. I think we could then create a meaningful epic of this issue, targeting a specific goal achievable by completing some set of the bulleted items (roadmap is not a specific goal). As you point out, instead of using a tracking issue, we could make a project geared towards specific goals if we have a clear goal and a path to achieve it.

I don't have the option of creating a project, but I can create a milestone and I think this could work well enough for now.

Since we are currently at v0.6.0, we could create v0.7.0, v0.8.0, and v1.0.0 milestones. These issues could be placed in the slot that seems most likely to match efforts. If something is 'broken' it should land in v0.7.0. If it requires more thinking or coordination, it can land in a later milestone. We can move items around as releases happen and we fit features in or need to push them back.

image

displague avatar Feb 03 '22 13:02 displague

When linking items in this list, let's link to issues rather than pull requests. Pull requests have a tendency to be too broad or incomplete towards resolving any one issue, PRs can also be revertible and misguided.

Let's let issues represent the ask and pull requests represent some effort that may or may not fulfill some asks. In the issues that we create we need to do a better job of defining what it means to be done. For example, I replaced the last item in the bulleted list with #210, but looking back at this issue I have no idea how to suggest a user take advantage of this feature. We didn't track a need for documentation to be provided before the issue could be closed.

displague avatar Feb 03 '22 14:02 displague