Skip to content

Add a project contributor guide #1419

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

Merged
merged 6 commits into from
Sep 15, 2022
Merged

Add a project contributor guide #1419

merged 6 commits into from
Sep 15, 2022

Conversation

per1234
Copy link
Contributor

@per1234 per1234 commented Sep 10, 2022

Motivation

Documentation of how to contribute to the project gives everyone the opportunity to participate, while also reducing the maintenance effort and increasing the quality of contributions.

Currently, the ways and processes for contributing to this project are not fully documented, and the existing documentation is somewhat disorganized

Change description

Add a guide documenting the various ways of contributing to the project.

Take advantage of GitHub's "contributing guidelines" feature to increase the visibility of the information to prospective contributors.

Other information

See the rendered content here:

https://github.com/per1234/arduino-ide/blob/contributor-guide/docs/CONTRIBUTING.md

Reviewer checklist

  • PR addresses a single concern.
  • The PR has no duplicates (please search among the Pull Requests before creating one)
  • PR title and description are properly filled.
  • Docs have been added / updated (for bug fixes / features)

@per1234 per1234 added topic: documentation Related to documentation for the project type: enhancement Proposed improvement labels Sep 10, 2022
@per1234 per1234 self-assigned this Sep 10, 2022
@nmzaheer
Copy link
Contributor

Great work @per1234 . However, I was thinking whether such documentation should live along with the code.

Why don't we shift this content to the repository's wiki. A great example of a wiki I've seen is of [VS Code] (https://github.com/microsoft/vscode/wiki). The sidebar on the right is clearly demarcated and very easy to navigate.

Another aspect that is not captured in the documentation is the Roadmap for Arduino IDE along with a Release philosophy. I think it is very important to lay down the roadmap along with a set of criteria that would lead to the stable release of v2. I believe there is some more work to be done in a few components before a stable release can be brought out. A roadmap stating the activities/ tasks that need to be completed should be put out in the public domain which would focus all our efforts on the same goal.

@per1234
Copy link
Contributor Author

per1234 commented Sep 10, 2022

Thanks for your suggestions @nmzaheer.

Why don't we shift this content to the repository's wiki.

I have extensive experience with GitHub Wikis and they are far inferior to using a repository in almost every way. You lose the incredible benefits of the pull request system. Even though a wiki is a Git repository under the hood, it is a strange repository and I don't think anyone ever works in them via a Git clone. So you miss the ability to edit multiple files at once, to work directly on the files with a professional quality text editor, to write proper commits.

The one thing of value to GitHub wikis is the ability to allow open editing of the content by anyone. That would not be appropriate with this content. Anyone may propose changes to it, but that proposal must pass through a review process by the maintainers.

The sidebar on the right is clearly demarcated and very easy to navigate.

If we wanted some navigation, we would set up a MkDocs-based website as we have done with other tooling projects:

lay down the roadmap along with a set of criteria that would lead to the stable release of v2. I believe there is some more work to be done in a few components before a stable release can be brought out. A roadmap stating the activities/ tasks that need to be completed should be put out in the public domain which would focus all our efforts on the same goal.

GitHub has a nice system for that:

https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/about-milestones

Adding milestones to issues is much easier than maintaining a bespoke list that would actually be inferior in functionality due to not having the searching, sorting, and categorization features of GitHub Issues.

@nmzaheer
Copy link
Contributor

If we wanted some navigation, we would set up a MkDocs-based website as we have done with other tooling projects
I think this would be a better option as there would be consistency across projects then. Let others also weigh in on this.

Adding milestones to issues is much easier than maintaining a bespoke list that would actually be inferior in functionality due to not having the searching, sorting, and categorization features of GitHub Issues.

+1 for this too. As long as there is a way to track our progress, it would be great.

Copy link
Contributor

@kittaakos kittaakos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent work, Per 👍

Previously, information about project development was stored in a file named BUILDING.md in the root of the repository.

That content is hereby moved to the file docs/development.md. This will provide the following benefits:

- Broaden the scope of the file to all information related to development rather than building only
- Store all documentation content under a single folder instead of randomly putting some in the root and others under
  docs
Previously, the information about tester builds was mixed in with the documentation about building the project from
source.

The two subjects are of relevance to two distinct contribution options. Building from source will primarily be done by
developers working on the project code base. Tester builds will be used by beta testers and reviewers.

For this reason, it doesn't make sense to require beta testers to wade through a lot of development documentation not
directly related to their work in order to find the instructions for obtaining tester builds. Likewise, it doesn't make
sense to clutter up the development documentation with such information.

Moving the information about tester builds to a dedicated file makes it easier for the interested parties to find, and
also allows the creation of a comprehensive guide for beta testers without making a negative impact on the development
documentation content.
Documentation of how to contribute to the project gives everyone the opportunity to participate, while also reducing the
maintenance effort and increasing the quality of contributions.

This guide documents the various ways of contributing to the project.
The readme should provide a concise overview of the essential information about the project. Additional details are
provided in dedicated documents, so the readme only needs to provide links to that information.
For security reasons, the macOS tester builds generated for PRs from forks are not notarized. Instructions are provided for
beta testing under these conditions.

Previously, the instructions for bypassing the macOS notarization requirement involved disabling macOS Gatekeeper
entirely using the spctl command. These instructions are hereby replaced by an alternative approach, where the
restriction is bypassed for the Arduino IDE application alone, via the macOS GUI.

The new approach is superior for the following reasons:

- More secure due to having limited scope
- More accessible due to the use of the macOS GUI
@per1234 per1234 merged commit 0151e4c into arduino:main Sep 15, 2022
@per1234 per1234 deleted the contributor-guide branch September 15, 2022 12:57
@per1234 per1234 mentioned this pull request Apr 22, 2023
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic: documentation Related to documentation for the project type: enhancement Proposed improvement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants