Skip to content

Commit

Permalink
Merge pull request IQSS#10532 from pdurbin/10531-contrib
Browse files Browse the repository at this point in the history
Add a Contributor Guide
  • Loading branch information
pdurbin authored Jul 1, 2024
2 parents 1026a3a + 7a64dea commit 74f1118
Show file tree
Hide file tree
Showing 16 changed files with 387 additions and 253 deletions.
66 changes: 3 additions & 63 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,67 +1,7 @@
# Contributing to Dataverse

Thank you for your interest in contributing to Dataverse! We are open to contributions from everyone. You don't need permission to participate. Just jump in. If you have questions, please reach out using one or more of the channels described below.
Thank you for your interest in contributing to Dataverse! We are open to contributions from everyone.

We aren't just looking for developers. There are many ways to contribute to Dataverse. We welcome contributions of ideas, bug reports, usability research/feedback, documentation, code, and more!
Please see our [Contributor Guide][] for how you can help!

## Ideas/Feature Requests

Your idea or feature request might already be captured in the Dataverse [issue tracker] on GitHub but if not, the best way to bring it to the community's attention is by posting on the [dataverse-community Google Group][] or bringing it up on a [Community Call][]. You're also welcome to make some noise in [chat.dataverse.org][] or cram your idea into 280 characters and mention [@dataverseorg][] on Twitter. To discuss your idea privately, please email it to support@dataverse.org

There's a chance your idea is already on our roadmap, which is available at https://www.iq.harvard.edu/roadmap-dataverse-project

[chat.dataverse.org]: http://chat.dataverse.org
[issue tracker]: https://github.com/IQSS/dataverse/issues
[@dataverseorg]: https://twitter.com/dataverseorg

## Usability testing

Please email us at support@dataverse.org if you are interested in participating in usability testing.

## Bug Reports/Issues

An issue is a bug (a feature is no longer behaving the way it should) or a feature (something new to Dataverse that helps users complete tasks). You can browse the Dataverse [issue tracker] on GitHub by open or closed issues or by milestones.

Before submitting an issue, please search the existing issues by using the search bar at the top of the page. If there is an existing open issue that matches the issue you want to report, please add a comment to it.

If there is no pre-existing issue or it has been closed, please click on the "New Issue" button, log in, and write in what the issue is (unless it is a security issue which should be reported privately to security@dataverse.org).

If you do not receive a reply to your new issue or comment in a timely manner, please email support@dataverse.org with a link to the issue.

### Writing an Issue

For the subject of an issue, please start it by writing the feature or functionality it relates to, i.e. "Create Account:..." or "Dataset Page:...". In the body of the issue, please outline the issue you are reporting with as much detail as possible. In order for the Dataverse development team to best respond to the issue, we need as much information about the issue as you can provide. Include steps to reproduce bugs. Indicate which version you're using, which is shown at the bottom of the page. We love screenshots!

### Issue Attachments

You can attach certain files (images, screenshots, logs, etc.) by dragging and dropping, selecting them, or pasting from the clipboard. Files must be one of GitHub's [supported attachment formats] such as png, gif, jpg, txt, pdf, zip, etc. (Pro tip: A file ending in .log can be renamed to .txt so you can upload it.) If there's no easy way to attach your file, please include a URL that points to the file in question.

[supported attachment formats]: https://help.github.com/articles/file-attachments-on-issues-and-pull-requests/

## Documentation

The source for the documentation at http://guides.dataverse.org/en/latest/ is in the GitHub repo under the "[doc][]" folder. If you find a typo or inaccuracy or something to clarify, please send us a pull request! For more on the tools used to write docs, please see the [documentation][] section of the Developer Guide.

[doc]: https://github.com/IQSS/dataverse/tree/develop/doc/sphinx-guides/source
[documentation]: http://guides.dataverse.org/en/latest/developers/documentation.html

## Code/Pull Requests

We love code contributions. Developers are not limited to the main Dataverse code in this git repo. You can help with API client libraries in your favorite language that are mentioned in the [API Guide][] or create a new library. You can help work on configuration management code that's mentioned in the [Installation Guide][]. The Installation Guide also covers a relatively new concept called "external tools" that allows developers to create their own tools that are available from within an installation of Dataverse.

[API Guide]: http://guides.dataverse.org/en/latest/api
[Installation Guide]: http://guides.dataverse.org/en/latest/installation

If you are interested in working on the main Dataverse code, great! Before you start coding, please reach out to us either on the [dataverse-community Google Group][], the [dataverse-dev Google Group][], [chat.dataverse.org][], or via support@dataverse.org to make sure the effort is well coordinated and we avoid merge conflicts. We maintain a list of [community contributors][] and [dev efforts][] the community is working on so please let us know if you'd like to be added or removed from either list.

Please read http://guides.dataverse.org/en/latest/developers/version-control.html to understand how we use the "git flow" model of development and how we will encourage you to create a GitHub issue (if it doesn't exist already) to associate with your pull request. That page also includes tips on making a pull request.

After making your pull request, your goal should be to help it advance through our kanban board at https://github.com/orgs/IQSS/projects/34 . If no one has moved your pull request to the code review column in a timely manner, please reach out. Note that once a pull request is created for an issue, we'll remove the issue from the board so that we only track one card (the pull request).

Thanks for your contribution!

[dataverse-community Google Group]: https://groups.google.com/group/dataverse-community
[Community Call]: https://dataverse.org/community-calls
[dataverse-dev Google Group]: https://groups.google.com/group/dataverse-dev
[community contributors]: https://docs.google.com/spreadsheets/d/1o9DD-MQ0WkrYaEFTD5rF_NtyL8aUISgURsAXSL7Budk/edit?usp=sharing
[dev efforts]: https://github.com/orgs/IQSS/projects/34/views/6
[Contributor Guide]: https://guides.dataverse.org/en/latest/contributor/index.html
1 change: 1 addition & 0 deletions doc/release-notes/10531-contrib.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
A new [Contributor Guide](https://dataverse-guide--10532.org.readthedocs.build/en/10532/contributor/index.html) has been added by the UX Working Group (#10531 and #10532).
2 changes: 1 addition & 1 deletion doc/sphinx-guides/source/admin/integrations.rst
Original file line number Diff line number Diff line change
Expand Up @@ -290,4 +290,4 @@ If you have an idea for an integration, please ask on the `dataverse-community <

Many integrations take the form of "external tools". See the :doc:`external-tools` section for details. External tool makers should check out the :doc:`/api/external-tools` section of the API Guide.

Please help us keep this page up to date making a pull request! To get started, see the :doc:`/developers/documentation` section of the Developer Guide.
Please help us keep this page up to date making a pull request! To get started, see the :doc:`/contributor/documentation` section of the Contributor Guide.
4 changes: 2 additions & 2 deletions doc/sphinx-guides/source/api/faq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,12 @@ The following tasks cannot currently be automated via API because no API exists

If you would like APIs for any of the features above, please open a GitHub issue at https://github.com/IQSS/dataverse/issues

You are also welcome to open an issue to add to the list above. Or you are welcome to make a pull request. Please see the :doc:`/developers/documentation` section of the Developer Guide for instructions.
You are also welcome to open an issue to add to the list above. Or you are welcome to make a pull request. Please see the :doc:`/contributor/documentation` section of the Contributor Guide for instructions.

Why Are the Return Values (HTTP Status Codes) Not Documented?
-------------------------------------------------------------

They should be. Please consider making a pull request to help. The :doc:`/developers/documentation` section of the Developer Guide should help you get started. :ref:`create-dataverse-api` has an example you can follow or you can come up with a better way.
They should be. Please consider making a pull request to help. The :doc:`/contributor/documentation` section of the Contriburor Guide should help you get started. :ref:`create-dataverse-api` has an example you can follow or you can come up with a better way.

Also, please note that we are starting to experiment with putting response codes in our OpenAPI document. See :ref:`openapi`.

Expand Down
58 changes: 58 additions & 0 deletions doc/sphinx-guides/source/contributor/code.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Contributing Code

We love code contributions! There are lots of ways you can help.

```{contents} Contents:
:local:
:depth: 3
```

## Finding an Issue to Work On

New contributors often wonder what issues they should work on first.

### Many Codebases, Many Languages

The primary codebase and issue tracker for Dataverse is <https://github.com/IQSS/dataverse>. It's mostly backend code written in Java. However, there are many other codebases you can work on in a variety of languages. Here are a few that are especially active:

- <https://github.com/IQSS/dataverse> (Java)
- <https://github.com/IQSS/dataverse-frontend> (React)
- <https://github.com/IQSS/dataverse-client-javascript> (TypeScript)
- <https://github.com/gdcc/dataverse-previewers> (Javascript)
- <https://github.com/gdcc/pyDataverse> (Python)
- <https://github.com/gdcc/dataverse-ansible> (Ansible)
- <https://github.com/gdcc/dv-metrics> (Javascript)

If nothing above sparks joy, you can find more projects to work on under {doc}`/api/client-libraries`, {doc}`/api/external-tools`, {ref}`related-projects`, and {doc}`/api/apps`.

### Picking a Good First Issue

Once you've decided which codebase suits you, you should try to identify an issue to work on. Some codebases use a label like "good first issue" to suggest issues for newcomers.

For the main codebase, please see {ref}`finding-github-issues-to-work-on` which includes information on labels like "good first issue".

Other codebases may use different labels. Check the README or other documentation for that codebase.

If there is a linked pull request that is trying to close the issue, you should probably find another issue.

If you are having trouble finding an issue or have any questions at all, please do not hesitate to reach out. See {ref}`getting-help-developers`.

## Making a Pull Request

For the main codebase, please see {ref}`how-to-make-a-pull-request`.

For other codebases, consult the README.

## Reviewing Code

Reviewing code is a great way to learn about a codebase. For any codebase you can browse open pull requests, of course, but for the primary codebases, you can take a look at the "Ready for Review" and "In Review" columns at <https://github.com/orgs/IQSS/projects/34>.

You are welcome to review code informally or to leave an actual review. We're interested in what you think.

## Reproducing Bugs

At times, bugs are reported that we haven't had time to confirm. You can help out by reproducing bugs and commenting on the issue the results you find.

## Getting Help

If you have any questions at all, please do not hesitate to reach out. See {ref}`getting-help-developers`.
Loading

0 comments on commit 74f1118

Please sign in to comment.