chocolatey-community/chocolatey-packages

Update Guidelines and code to reflect new procedures

AdmiringWorm opened this issue · 0 comments

In the coming times, there will be changes to how code and packages can be contributed to this repository, as such the guidelines will need to be updated to reflect these new changes.

We currently have a very loose definition of what necessary steps are needed before contributing any new features, bugs, or migrations of new packages but these will be enforced in a more strict way going forward once the Guidelines are updated.

Among the changes that are planned, we have:

  • Update current issue templates to use issue forms, that will be required to be filled out. (#1788)
  • Update the guidelines to require a discussion and approval being created before submitting any pull requests for new features, or migrations of packages (pull requests can be submitted for bugs or typos without opening an issue/discussion). (#2155)
  • Enforce that each package needs to have at least 1 CODEOWNER associated with them, if there is a missing code owner or the maintainer listed as code owner is unresponsive/unwilling the package can end up being removed from the repository.
  • Pull request template needs to be updated to include the steps any testing have been done, and what issues are fixed in the repository (testing need to be enforced by the Reviewer).
  • Add GitHub action to reference any user that is listed as a CODEOWNER when necessary on pull requests.
  • Add GitHub action to do basic linting of all changed files (possibly through the Super-Linter GitHub Action.
  • Make it clear in the contribution documentation that pre-releases are provided as is, and is a low priority.
  • Move any feature/enhancement requests not already being worked on to discussions (for those that have not been agreed upon that they need/should be implemented).
  • Update guidelines to disallow any changes to .github or scripts directory without approval from a Repository maintainer.
  • Update guidelines to mention avoid the use of globbing patterns, unless absolutely necessary. The use of these has led to the same bug surfacing over and over again.
  • Add development container files to the repository to have a common ground that can be used.
  • Migrate from using the stale bot for issues and pull requests to a GitHub Action instead. #1798
  • Add GitHub action to validate some minimal pieces of data (both metadata and PowerShell scripts) that packages should adhere to.
  • #1940
  • Lock down repository to require Pull Request reviews, especially from code owners
  • Create GitHub Action to allow people with write access to the repository to push fix versions of packages

There are several reason why these changes are needed going forward, and to summarize some of them:

  • Over the years there has been an influx of requests to enhance packages with additional features, but they have either been unclear how what would be expected or none was willing to pick up the work necessary to make the changes.
  • There are often bug reports with missing details, which often results in the reports being closed or never responded to.
  • There is the uncertainty of what is accepted and not accepted between contributors and maintainers alike.
  • There are currently no fixed procedures that we follow when reviewing any incoming pull request, which leads to certain things being missed.
  • There are changes being made to scripts (both package scripts, and repository scripts), that causes either incompatible changes or changes to the behaviour or intention of the script.
  • The lockdown is being done due to changes being made that are either not appropriate for the repository, or for the Chocolatey Community Repository. As such requiring a review from a person either listed as a code owner, or from a person with write access to the repository is necessary.