Skip to content
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

Add Contributing file #15

Merged
merged 2 commits into from
Nov 26, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
101 changes: 101 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
# Contributing to MPSDynamics

First off, thank you for considering contributing to `MPSDynamics.jl`✨

The following is a set of guidelines for contributing to `MPSDynamics.jl`, which is hosted in the ShareLOQS Organization on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document.

Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.

## What is MPSDynamics about?

`MPSDynamics.jl` is an open source Julia package to perform tensor network simulations for finite temperature, open quantum system dynamics. It is distributed under the [GPL 3.0 license](https://github.com/shareloqs/MPSDynamics/blob/master/LICENSE).

## Code of Conduct

This project and everyone participating in it is governed by a [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.

## How to Contribute

There are many ways to contribute, from writing tutorials, improving the documentation, submitting bug reports and feature requests or writing code which can be incorporated into the package itself. No contribution is too small and all contributions are welcomed.

For all contributions, please respect the following guidelines:

* Create [issues](https://github.com/shareloqs/MPSDynamics/issues) for any major changes and enhancements that you wish to make. Discuss things transparently and get community feedback.
* Each pull request should implement *one* feature or bugfix. If you want to add or fix more than one thing, submit more than one pull request.
* Do not commit changes to files that are irrelevant to your feature or bugfix (eg: .gitignore).
* Be willing to accept criticism and work on improving your code.
* Be aware that the pull request review process is not immediate, and generally scales with the size of the pull request.

For something that is bigger than a one or two line fix:

1. Create your own fork of the code
2. Do the changes in your fork
3. If you like the change and think the project could use it: send a pull request

For code contribution aim at following Julia's [style guide](https://docs.julialang.org/en/v1/manual/style-guide/).

Before to make a pull request make sure that you agree with the [Developer's Certificate of Origin](#Developer-Certificate-of-Origin).

## How to Make a Pull Request

[Learn about pull requests and draft pull requests on GitHub.](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)

## How to Report a Bug

When filing an [issue](https://github.com/shareloqs/MPSDynamics/issues) use a clear and descriptive title for the issue to identify the problem and make sure to answer these questions:

1. What did you do?
2. What did you expect to see?
3. What did you see instead?

Make sure to provide a minimal reproducible example to demonstrate the bug.

## How to Suggest an Enhancement

If you find yourself wishing for a feature that doesn't exist in `MPSDynamics.jl`, you are probably not alone. There might be others out there with similar needs.

Open an [issue](https://github.com/shareloqs/MPSDynamics/issues) which describes:
1. the feature you would like to see,
2. why you need it,
3. how it should work.

## Developer Certificate of Origin

```text
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or

(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or

(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.

(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
```

## Contact

You can directly write to the maintainers team at shareloqs_@_framagroupes.org

## Credits & Attribution

We took inspiration and followed advice from [Open Source Guides](https://opensource.guide/starting-a-project/#writing-your-contributing-guidelines), [Mozilla Science Lab](https://mozillascience.github.io/working-open-workshop/contributing/), [nayafia's template](https://github.com/nayafia/contributing-template/blob/HEAD/CONTRIBUTING-template.md), and [Atom](https://github.com/atom/atom/blob/master/CONTRIBUTING.md).