Create repository to centralize shared Go libraries
We have two concurrent work streams written in Go (gogru
and bbctl
) that often are solving many of the same issues. It would be useful to allow sharing code between the two repositories as much as possible so that we can reduce duplicated efforts, increase test coverage of code, and increase developer familiarity between the two projects.
Prime candidates for this would be:
-
YAML
marshalling code https://repo1.dso.mil/big-bang/team/tools/gogru/-/merge_requests/25#cb349adc0de2eadfcc8006f8d9dd4ce33f75a29c !215 (merged) - Cypress runner code (to be scoped in big-bang&303)
- API Clients from
bbctl
'sutil/
directory (as needed) - Credential Helpers, so
gogru
andbbctl
can read passwords (like gitlab tokens)
Acceptance Criteria
- Create a new public project under the Tool's team to house shared code
- Migrate existing YAML library to the new repo
- Update
bbctl
andgogru
to import it (go get https://repo1.dso.mil/big-bang/team/tools/libraries/yamler@v1.2.3
or whatever) and verify functionality - Create a fun name for the library repo
- Put a giant, flashing red alert somewhere in the README to make sure everyone knows that that repo is public and to not put private code in it
- Set the CODEOWNERs to the tools team and update the
team-charter
accordingly
Considerations
- Do we want a repo for each project? Or one shared repo with multiple, discrete libraries within it?
Out of scope
- Setting up CI and pipelines for testing and coverage (we'll make a future issue for this)
- Any new library shared implementation. Just migrate what we've got for now.
Edited by Daniel Dides