Contributors Guide: Welcome!

Hi! We’re glad you’re interested in contributing to Crosswords.

We welcome all sorts of contributions: code, art, documentation, testing, feedback etc. Here are some guidelines to make your experience smooth.

We encourage you to look at the rest of this section to get additional guidance.

Have fun!

Conduct

This project follows the GNOME Code of Conduct. It ensures that everyone in the Crossword’s community is treated with respect and has a good time. This is taken seriously, and strictly enforced.

AI Code

We allow careful AI use in this project, but strongly discourage it for new contributors. All code must be hand-reviewed before submission (and probably fixed or rewritten) if they use AI. In addition, any use of AI must be noted in the MR description.

A note for potential GSoC and Outreachy students

We participate in GSoC and Outreachy regularly.

The initial phase of these programs encourage students to make some contributions to to get familiar with the project and codebase. These contributions are also really useful for the maintainers to get a good grasp of what the participants are capable of. It is used to help assess their skills, instincts, communication abilities, and talents as an engineer. AI-based submissions show none of that.

AI Contributions are strictly prohibited during this phase.

AI Exception

For non-native English speakers, light use of AI to clean-up language is permitted.

Docs

Any decent-sized changes should have a design doc before writing code. We will reject any big, non-trivial CLs without an approved design.

Git Suggestions

  • Commit messages should be consise and to the point

  • Do more, smaller commits rather then one large one

    • It’s easier to review and I can see your path developing the code

    • It can be reviewed more thoroughly

    • It’s less likely to be buggy..

    • ..and it’s easier to track down bugs with git bisect

    • There’s less waste if rejected

  • Keep intermediate commits compiling, if possible

  • Do not squash commits as part of a merge