Skip to content

Collaboration Approach for Contributing New Smells

When contributing new smells to the cucumber-diseases.github.io repository, follow this collaboration process to ensure the new smells are documented and implemented across language-specific repositories, while minimizing the effort for contributors.

1. Contribute the Smell to the Central Repository

  • Create a pull request (PR) in the cucumber-diseases.github.io repository for your new smell.
  • Follow the contribution steps:
    • Describe the new smell using the smell template.
    • Add a new exercise that addresses the smell, using the exercise template.
    • If necessary, update "golden master" feature files to reflect changes in Gherkin syntax.
    • If needed, describe in the PR how to fix the smell in at least one programming language.

2. Manually Open Issues in Language-Specific Repositories

  • Once your PR is ready or merged into the documentation repository, manually open issues in all relevant language-specific repositories (e.g., Java, Python, C#, Go).
  • In each issue, include:
    • A brief description of the smell and how it affects the codebase.
    • A link to the documentation PR that introduces the new smell.
    • Any specific instructions for how the smell and its exercise should be implemented in that language.
  • In the PR you open for the documentation, include links to the manually created issues in the language-specific repositories.
  • This will ensure visibility across all repositories and help track the adaptation process.

Example:

Linked issues for language repositories:
- [Java repository issue](https://github.com/cucumber-diseases-java/issues/123)
- [Python repository issue](https://github.com/cucumber-diseases-python/issues/456)

4. Cross-Repository Labeling and Tracking

  • In the issues you create, use a consistent label like smell-to-implement to mark new smells requiring adaptation.
  • Optionally, maintain a status dashboard or tracking table in the documentation repository to monitor which smells have been implemented across different language repositories.

5. Adaptation by Language-Specific Maintainers

  • Contributors can provide a high-level description of how to address the smell in specific programming languages.
  • However, language-specific maintainers will handle the actual adaptation of the smell and exercise to their respective codebases, ensuring it aligns with the language's conventions and architecture.

6. Streamlined Collaboration

  • This process ensures contributors focus primarily on documenting new smells and exercises, while language maintainers focus on adapting them.
  • By manually creating issues and linking them in the documentation PR, contributors and maintainers can easily track progress across repositories.