# 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](https://conduct.gnome.org/). 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](design-docs.md)
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

