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
    No fields configured for issues without a type.

    Projects

    Status
    SLOW lane

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions