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

[New Process Improvement Need]: Software Repository Hygiene #111

Open
riverma opened this issue Oct 2, 2023 · 6 comments
Open

[New Process Improvement Need]: Software Repository Hygiene #111

riverma opened this issue Oct 2, 2023 · 6 comments
Assignees
Labels
governance Process improvements involving coordinating, delegating, estimating, organizing / running projects

Comments

@riverma
Copy link
Collaborator

riverma commented Oct 2, 2023

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.
@riverma riverma self-assigned this Oct 2, 2023
@riverma riverma added the governance Process improvements involving coordinating, delegating, estimating, organizing / running projects label Oct 2, 2023
@riverma
Copy link
Collaborator Author

riverma commented Oct 2, 2023

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?

@yunks128
Copy link
Contributor

yunks128 commented Oct 2, 2023

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.

@riverma
Copy link
Collaborator Author

riverma commented Oct 4, 2023

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!

@rpuncel
Copy link

rpuncel commented Nov 6, 2023

@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.

@jpl-jengelke
Copy link
Contributor

@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.

@riverma
Copy link
Collaborator Author

riverma commented Dec 7, 2023

@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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
governance Process improvements involving coordinating, delegating, estimating, organizing / running projects
Projects
Status: 📋 Backlog
Development

No branches or pull requests

4 participants