Skip to content

complete nirvai/boat #6

@noahehall

Description

@noahehall

C

  • logic in Nirv scripts has become too mission-critical for bash
  • Boat should be used instead, especially for hashistack related scripts

T

  • ADRs
    • can create and execute Duties
    • can create and execute Pipelines
    • can install packages, especially through transport
    • can create Decks, especiialy for development
  • Sanity check
    • high probability the functionality in nirvai/scripts can be ported to boat with light boat rework
      • focus on hashistack related scripts
  • quickies
    • deal with the growing list of asides
    • remember to clean up the doc comments
    • remember to clean up the inlined todos
    • ADRs need to be refreshed
    • add bddAsync to bdd: we'll need it for fetching remote files and other things down stream
    • ensure procs have runnableExamples
    • update github action to not auto run for Draft prs
    • figure out why docgen reports 404 when loading html files from root/_._/something/here.html
      • might be something with github pages, not sure if _._ is valid for a uri, dunno
      • create a ticket with nimlang if unable to figure out / its actually a bug and not somethign stupid we did
    • you merged dependabot without setting it up lol
    • reduce the amount of case of statements in procs, and instead use overloads
      • push this off until somewhere close to the end, and after you take a look at the program interface in general

A


# from config round 1

--- 
DONE
remember self.use maybe different than the effective path

    e.g. user provides a directory
    e.g. user provides a remote location

this should follow the existing pattern of proc(self: config, path = self.use)
- if self.use != path we know captains log should point all requests for self.use to path
-- this issue only surfaces when self.use points to a directory, as remote URIs must point to a manifest
-- ^ when this is encountered we should mutate self.use to self.use / manifestName
-- ^ if the directory doesnt contain a manifest.nim.ini the existing logic with throw

---
TODO
we didnt spend enough time thinking through the caching strategy
it should look like

    captainslog
        contains > actions taken that impact runtime logic
        points to > cachedDir/cached files
        etc

the idea is not to bloat captains log as it will likely be write & read heavy at runtime

    anything thats not critical to runtime usage should be in a separate cached file
        e.g. all the intialization logic in Config
update ADRs to include a breakdown of Boat's lifecycle
that will help cement what needs to go where

---
TODO
; confirm $HOME can be parsed to absolute path
; ^ FYI: $HOME wont be available for accounts without a $HOME dir (e.g. some sys accounts)
; ^^ supporting these accounts will likely increase scope
; ^^ check implementation of nimlangs getHomeDir() which may have already solved this problem
; ^^^ else move this to a post-alpha issue on the project board
---
---
TODO
- [ ] all the methods in manifest.nim log warnings
  - e.g. `manifest.nim(45, 8) Warning: method has lock level <unknown>, but another method has 0 [LockLevel]` 
 ---

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    SLOW lane

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions