-
-
Notifications
You must be signed in to change notification settings - Fork 586
docs: better contribution guidelines #2893
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
mdelapenya
merged 6 commits into
testcontainers:main
from
mdelapenya:contribution-guidelines
Nov 22, 2024
Merged
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
f26e0dc
docs: better contribution guidelines
mdelapenya e5cffa6
fix: wrong copy paste
mdelapenya eb66230
chore: add whitespace
mdelapenya 11a3ab0
docs: explicitly mention the branch is published
mdelapenya 4afcb16
docs: put lint stage first
mdelapenya 351d5ca
docs: mention ld warning
mdelapenya File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,16 +1,93 @@ | ||
| # Contributing | ||
|
|
||
| * Star the project on [Github](https://github.com/testcontainers/testcontainers-go) and help spread the word :) | ||
| * Join our [Slack workspace](http://slack.testcontainers.org) | ||
| * [Post an issue](https://github.com/testcontainers/testcontainers-go/issues) if you find any bugs | ||
| * Contribute improvements or fixes using a [Pull Request](https://github.com/testcontainers/testcontainers-go/pulls). If you're going to contribute, thank you! Please just be sure to: | ||
| * discuss with the authors on an issue ticket prior to doing anything big. | ||
| * follow the style, naming and structure conventions of the rest of the project. | ||
| * make commits atomic and easy to merge. | ||
| * when updating documentation, please see [our guidance for documentation contributions](contributing_docs.md). | ||
| * when updating the `go.mod` file, please run `make tidy-all` to ensure all modules are updated. It will run `golangci-lint` with the configuration set in the root directory of the project. Please be aware that the lint stage could fail if this is not done. | ||
| * apply format running `make lint` | ||
| * For examples: `make -C examples lint` | ||
| * For modules: `make -C modules lint` | ||
| * verify all tests are passing. Build and test the project with `make test-all` to do this. | ||
| * For a given module or example, go to the module or example directory and run `make test`. | ||
| `Testcontainers for Go` is open source, and we love to receive contributions from our community — you! | ||
|
|
||
| There are many ways to contribute, from writing tutorials or blog posts, improving the documentation, submitting bug reports and feature requests, or writing code for the core library or for a technology module. | ||
|
|
||
| In any case, if you like the project, please star the project on [Github](https://github.com/testcontainers/testcontainers-go/stargazers) and help spread the word :) | ||
| Also join our [Slack workspace](http://slack.testcontainers.org) to get help, share your ideas, and chat with the community. | ||
|
|
||
| ## Questions | ||
|
|
||
| GitHub is reserved for bug reports and feature requests; it is not the place for general questions. | ||
| If you have a question or an unconfirmed bug, please visit our [Slack workspace](https://testcontainers.slack.com/); | ||
| feedback and ideas are always welcome. | ||
|
|
||
| ## Code contributions | ||
|
|
||
| If you have a bug fix or new feature that you would like to contribute, please find or open an [issue](https://github.com/testcontainers/testcontainers-go/issues) first. | ||
| It's important to talk about what you would like to do, as there may already be someone working on it, | ||
| or there may be context to be aware of before implementing the change. | ||
|
|
||
| Next would be to fork the repository and make your changes in a feature branch. **Please do not commit changes to the `main` branch**, | ||
| otherwise we won't be able to contribute to your changes directly in the PR. | ||
|
|
||
| ### Submitting your changes | ||
|
|
||
| Please just be sure to: | ||
|
|
||
| * follow the style, naming and structure conventions of the rest of the project. | ||
| * make commits atomic and easy to merge. | ||
| * use [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) for the PR title. This will help us to understand the nature of the changes, and to generate the changelog after all the commits in the PR are squashed. | ||
| * use [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) for your commit messages, as it improves the readability of the commit history, and the review process. | ||
| * unless necessary, please try to **avoid pushing --force** to the published branch you submitted a PR from, as it makes it harder to review the changes from a given previous state. | ||
| * apply format running `make lint-all`. It will run `golangci-lint` for the core and modules with the configuration set in the root directory of the project. Please be aware that the lint stage on CI could fail if this is not done. | ||
| * For linting just the modules: `make -C modules lint-modules` | ||
| * For linting just the examples: `make -C examples lint-examples` | ||
| * For linting just the modulegen: `make -C modulegen lint` | ||
| * verify all tests are passing. Build and test the project with `make test-all` to do this. | ||
| * For a given module or example, go to the module or example directory and run `make test`. | ||
| * If you find an `ld warning` message on MacOS, you can ignore it. It is a indeed a warning: https://github.com/golang/go/issues/61229 | ||
| > === Errors | ||
| > ld: warning: '/private/var/folders/3y/8hbf585d4yl6f8j5yzqx6wz80000gn/T/go-link-2319589277/000018.o' has malformed LC_DYSYMTAB, expected 98 undefined symbols to start at index 1626, found 95 undefined symbols starting at index 1626 | ||
|
|
||
| * when updating the `go.mod` file, please run `make tidy-all` to ensure all modules are updated. | ||
|
|
||
| ## Documentation contributions | ||
|
|
||
| The _Testcontainers for Go_ documentation is a static site built with [MkDocs](https://www.mkdocs.org/). | ||
| We use the [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) theme, which offers a number of useful extensions to MkDocs. | ||
|
|
||
| We publish our documentation using Netlify. | ||
|
|
||
| ### Adding code snippets | ||
|
|
||
| To include code snippets in the documentation, we use the [codeinclude plugin](https://github.com/rnorth/mkdocs-codeinclude-plugin), which uses the following syntax: | ||
|
|
||
| > <!--codeinclude--><br/> | ||
| > [Human readable title for snippet](./relative_path_to_example_code.go) targeting_expression<br/> | ||
| > [Human readable title for snippet](./relative_path_to_example_code.go) targeting_expression<br/> | ||
| > <!--/codeinclude--><br/> | ||
|
|
||
| Where each title snippet in the same `codeinclude` block would represent a new tab | ||
| in the snippet, and each `targeting_expression` would be: | ||
|
|
||
| - `block:someString` or | ||
| - `inside_block:someString` | ||
|
|
||
| Please refer to the [codeinclude plugin documentation](https://github.com/rnorth/mkdocs-codeinclude-plugin) for more information. | ||
|
|
||
| ### Previewing rendered content | ||
|
|
||
| #### Using Python locally | ||
|
|
||
| From the root directory of the repository, you can use the following command to build and serve the documentation locally: | ||
|
|
||
| ```shell | ||
| make serve-docs | ||
| ``` | ||
|
|
||
| It will use a Python's virtual environment to install the required dependencies and start a local server at `http://localhost:8000`. | ||
|
|
||
| Once finished, you can destroy the virtual environment with the following command: | ||
|
|
||
| ```shell | ||
| make clean-docs | ||
| ``` | ||
|
|
||
| #### PR Preview deployments | ||
|
|
||
| Note that documentation for pull requests will automatically be published by Netlify as 'deploy previews'. | ||
| These deployment previews can be accessed via the `deploy/netlify` check that appears for each pull request. | ||
|
|
||
| Please check the Github comment Netlify posts on the PR for the URL to the deployment preview. | ||
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.