[New Process Improvement Need]: Software Repository Hygiene
riverma opened this issue · comments
Checked for duplicates
Yes - I've already checked
Category
Governance
Describe the need
Once a software project gets rolling, there are aspects important to maintaining the software repository that can aid the health and maintenance of the project. What we need is a clear set of guidelines / checklists for project maintainers to be cognizant of at a recurring interval - to ensure the software repository is following best practices.
Some ideas on hygiene topics:
- If the project hasn't been updated in a year or more, it should consider being archived and / or deprecated.
- Responding to pull requests in a timely fashion. Contributors are much less likely to consider helping your project if their pull requests stay ignored for months.
- Responding to issue ticket conversations / triaging tickets in a timely fashion, including ensuring issue tickets are properly labeled and have assigned projects / milestones / etc. Same reason as above.
- Responding to discussions in a timely fashion. Same reason as above.
- Ensuring issue tickets are properly labeled and have assigned projects / milestones / etc.
- Cleaning out old / merged branches. A giant list of branches can be very confusing to contributors.
- Ensuring documentation / README has been updated as the software evolves.
Some ideas to help:
- A checklist a developer can run through to ensure compliance with recommendations
- A GitHub Action(s) that automatically gets triggered to check for hygiene topics like: stale PRs, tickets, discussion topics, etc. Or an action that gets called on a schedule to ask the lead developer to run through the checklist (say every six months?)
CC @NASA-AMMOS/slim-tsc @NASA-AMMOS/slim-psc thoughts?
Here are some additional suggestions on software repository hygiene (I believe that several of those were already addressed in the other issue tickets.):
Continuous Integration and Testing:
- Integrate automated testing and continuous integration (CI) into the repository to catch issues early. Ensure that CI pipelines are maintained and functional.
Versioning and Release Management:
- Follow a clear versioning strategy (e.g., Semantic Versioning) to indicate the significance of software changes.
- Maintain a release history or changelog to document notable changes in each version.
Contributor Guidelines:
- Provide clear contributor guidelines in the repository to help newcomers understand how to contribute effectively.
- Offer guidance on coding standards, code review processes, and issue/PR templates.
Security Vulnerabilities:
- Regularly check for and address security vulnerabilities in project dependencies. Use tools like Dependabot to automate dependency updates.
Analytics and Performance:
- Monitor software performance and usage. Use analytics to identify areas for improvement.
- Optimize code and resources for better performance.
Regular Audits:
- Periodically conduct repository audits to assess compliance with best practices and hygiene standards.
- Use automated tools or scripts to perform these audits.
Thanks for these suggestions @yunks128 - looks great! There's certainly a lot of overlap with some other SLIM tickets, so you're right, we'll want to limit the scope of this ticket in a way. Thanks!
@riverma I have been looking around the SLIM repository and guides for a set of recommended issue labels and how to apply them. This issue in particular seems to be the most on topic - "triaging tickets in a timely fashion" implies "how to triage tickets". Can I request the labelling concept be added to this issue, or should I make a separate on? It is definitely more straightforward on it's own.
@rpuncel This is a great observation and comment. The original description of the ticket covers both labeling and triaging, e.g. Ensuring issue tickets are properly labeled and have assigned projects / milestones / etc.
Labeling seems appropriate here and in context. Please proceed, and if it is decided later to be out of context or a large topic we can always break it out then. Thank you.
@riverma is out through the first week in December but may check in occasionally.
@rpuncel @jpl-jengelke - I like that. It adds more specificity to what's needed for triaging tickets. I've updated the ticket description above to include your comment, thank you!