Hello Everyone,
I am curious to know if people feel the need to have better resources and documentation oriented towards developers and contributors for their respective projects. It gives people the opportunity to contribute more easily and quickly refer to the guides for usual things like how to run tests on the project locally etc so the contributor doesn’t get stumped by all the red on the CI. Some things I can think of that would help contributors unfamiliar with projects across the ecosystem are guides on:
1. Setting Up the Development Environment
- Objective: Provide a step-by-step guide on how to set up the development environment from scratch.
- Details: Include necessary software installations, configuration settings, and any prerequisites.
2. Repository Layout
- Objective: Offer a clear overview of the repository structure.
- Details: Include descriptions of the main code directories and their purposes, along with any relevant files or configurations.
3. Testing Changes
- Objective: Demonstrate how to effectively test changes before committing them.
- Details: Include unit tests, integration tests, and any tools or frameworks used.
4. Other Relevant Topics
- Objective: Any other areas you believe are essential for developers to know.
- Details: This could include debugging tips, optimizing code performance, or deep-dives into specific libraries or frameworks used in the project.
For example, Katello developer resources would go into things like:
-
Spinning up a katello-devel or katello-devel-stable box and starting the rails and webpack server, spinning up a content proxy, spinning up hosts and registering them to development server.
-
Deeper dive on our API integrations like Pulp, Candlepin and testing changes and upgrades including VCR testing.
-
Understanding our UI development workflow including legacy angular pages as well as React pages, testing changes and writing tests for those.
-
Understanding the basic organization of the repository like what code goes where ex: controllers, services, tasks, routes, permissions, tests etc.
We can gauge the interest people have for such resources and if someone would like to volunteer to write some helpful developer documentation for projects they are familiar with.