Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Repo organization ADR #3205

Closed
5 tasks
widal001 opened this issue Dec 12, 2024 · 2 comments
Closed
5 tasks

Repo organization ADR #3205

widal001 opened this issue Dec 12, 2024 · 2 comments
Assignees
Labels
docs: adr Architecture decision record ticket

Comments

@widal001
Copy link
Collaborator

widal001 commented Dec 12, 2024

Summary

We’ve described HHS/simpler-grants-gov as a “monorepo” but there are currently several other HHS repositories that also store code and track work related to the SimplerGrants initiative:

We should adopt a more formal strategy for organizing our work and code within the SimplerGrants initiative and ensure that each repository has a clear purpose and structure.

Options

There are many different ways we can organize our work into repos but they generally fall into the following buckets:

  • Monorepo: All code and issues are migrated to HHS/simpler-grants-gov
  • Workstream-based repos: Only maintain a few top-level repositories that combine multiple related services managed by the same workstream or team, e.g. one for work on Simpler.Grants.gov and one for work on SimplerNOFOs.
  • Repo per service: Create separate repositories for subsets of the SimplerGrants architecture that can be maintained separately.

Decision Criteria

  • Limited overhead: Minimize the amount of overhead required to manage code and track work related to the SimplerGrants initiative.
  • Internal code reusability: We have the ability to reuse shared application logic across different components of our architecture.
  • Internal infra reusability: We have the ability to reuse shared infrastructure across different components of our architecture.
  • Open source reusability: Members of the open source community can reuse and extend parts of the SimplerGrants codebase or architecture for their own work.
  • Separation of concerns: Teams working on various services within the SimplerGrants initiative can manage their code and work in ways that are loosely coupled with other parts of the SimplerGrants ecosystem.
  • Centralized view: Program-level staff and leadership can monitor progress and track dependencies across the entire SimplerGrants initiative in a centralized way.
  • Access control: We have fine-grained control over access to issues and other privileges in the code base.

Approvers

Acceptance criteria

  • The approvers for this decision have been identified (ideally before work on the ADR starts)
  • The ADR is created and stored in documentation/wiki/decisions/adr with status "Accepted"
  • The ADR has been reviewed and approved by the approvers listed above
  • The ADR satisfies requirements that are outlined in the ADR template
  • Any follow-up tickets have been created (if necessary)
@widal001
Copy link
Collaborator Author

widal001 commented Jan 7, 2025

This is the associated change request in GitBook

@widal001
Copy link
Collaborator Author

widal001 commented Jan 7, 2025

Merged in the change request to close this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs: adr Architecture decision record ticket
Projects
Development

No branches or pull requests

1 participant