layout | title |
---|---|
default |
Contributing |
ViewComponent is intended to be a safe, welcoming space for collaboration. By participating you agree to abide by the Contributor Code of Conduct.
Hi there! We're thrilled that you'd like to contribute to ViewComponent. Your help is essential for keeping it great.
If you have any substantial changes that you would like to make, please open an issue first to discuss them with us.
GitHub engineers tend to focus on areas of the project that are useful to GitHub, but we're happy to pair with members of the community to enable work on other parts. Just let us know in an issue.
Contributions to this project are released to the public under the MIT license.
When opening an issue to describe a bug, it's helpful to provide steps to reproduce it, either with failing tests in a pull request, or by sharing a repository that demonstrates the issue.
- Run
rails new --minimal view_component-bug-replica
in the console. - Run
bundle add view_component
in the console. If testing against a previous version of ViewComponent, update theGemfile
to that version and runbundle install
. - Run
rails generate controller Home index
. - Add
root to: 'home#index'
. - Add as little code as possible that's necessary to reproduce the issue. If possible, use the original code that caused the issue in the application.
- Publish the repository and add a link to the bug report issue.
This repository includes configuration for GitHub Codespaces, making it easy to set up a cloud-based development environment. Follow GitHub's guide to get started.
The codespace environment includes a minimal Rails app with ViewComponent installed in the replicate-bug
directory. To run the application:
- Start the Rails server from the codespace's terminal with
rails s
. - Expose the port when prompted by the Visual Studio Code Web Editor.
- Add the external URL to the config block in
config/application.rb
as prompted by the error.
- Fork and clone the repository.
- Configure and install the dependencies:
bundle exec appraisal install
. - Make sure the tests pass:
bundle exec appraisal rake
(see below for specific cases). - Create a new branch:
git checkout -b my-branch-name
. - Add tests, make the change, and make sure the tests still pass.
- Add an entry to the top of
docs/CHANGELOG.md
for the changes, no matter how small. - If it's your first time contributing, add yourself to
docs/index.md
. - Push to the fork and submit a pull request.
- Wait for the pull request to be reviewed and merged.
Supply a file glob to the test command:
TEST="test/view_component/YOUR_COMPONENT_test.rb" bundle exec appraisal rake
Specify one of the supported versions, listed in Appraisal:
bundle exec appraisal rails-5.2 rake
- Navigate to
/docs
. - Configure and install the dependencies:
bundle
. - Run Jekyll:
bundle exec jekyll serve
. - Open the docs site at
http://127.0.0.1:4000/
.
- Keep it short.
- Avoid unclear antecedents. Use
the method name is too long
instead ofit's too long
. - Avoid
you
,we
,your
,our
. - Write in the active voice, avoiding the passive voice.
- Refer to methods as
#instance_method
and.class_method
. - Use the simplest examples possible.
Don't be afraid to ask for help! We recognize that English isn't the first language of many folks who contribute to ViewComponent.
To run the Vale prose linter locally, brew install vale
and vale docs/
.
./script/release
ViewComponent is built by over a hundred members of the community. Project membership has three levels:
ViewComponent triagers are able to manage issues and pull request by assigning owners and labels, closing issues and marking duplicates.
After helping with the project by participating in issues, pull requests, and/or discussions, members of the community are welcome to request triage access by opening a pull request to update this list:
The triagers team is @andrewmcodes, @bbugh, @boardfish, @cesariouy, @dark-panda, @dylnclrk, @g13ydson, @horacio, @jcoyne, @johannesengl, @kaspermeyer, @mellowfish, @metade, @nashby, @rainerborene, @rdavid1099, @spdawson, @yhirano55, and @vinistock.
Committers and maintainers may also nominate triagers by opening a pull request to update this list.
ViewComponent committers have write
access, enabling them to push directly to the repository (and thus not needing to contribute via forks) and approve/merge pull requests. Committers often have implicit ownership over a particular area of the project, such as previews, generators, or translations.
Triagers are invited to become committers by having an existing committer or maintainer open a pull request on the repository to update this list of committers:
The committers team is @elia, @jonspalmer, @juanmanuelramallo, @rmacklin, @spone, @dylanatsmith, and @boardfish.
ViewComponent maintainers have admin
access, enabling them to manage repository settings including access levels. They also have ownership of view_component
on RubyGems and are required to have 2FA enabled for their GitHub and RubyGems accounts.
Maintainership is open by invitation only at this time.
The maintainers team is @camertron, @blakewilliams, @joelhawksley, @jonrohan, and @manuelpuyol.