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

FIREFLY-1511: Add Code of conduct and Contribution guidelines #1692

Open
wants to merge 2 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
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
44 changes: 44 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Firefly Community Code of Conduct

The community of participants in open source Firefly projects is made up of members from
around the globe with a diverse set of skills, personalities, and experiences.
It is through these differences that our community experiences success and
continued growth.

As members of the community:

- We pledge to treat all people with respect and provide a harassment-
and bullying-free environment, regardless of sex, sexual orientation and/or
gender identity, disability, physical appearance, body size, race,
nationality, ethnicity, and religion. In particular, sexual language and
imagery, sexist, racist, or otherwise exclusionary jokes are not appropriate.
- We pledge to respect the work of others by recognizing acknowledgment/citation
requests of original authors. As authors, we pledge to be explicit about how
we want our own work to be cited or acknowledged.
- We pledge to welcome those interested in joining the community, and realize
that including people with a variety of opinions and backgrounds will only
serve to enrich our community. In particular, discussions relating to
pros/cons of various technologies, programming languages, and so on are
welcome, but these should be done with respect, taking proactive measure to
ensure that all participants are heard and feel confident that they can
freely express their opinions.
- We pledge to welcome questions and answer them respectfully, paying
particular attention to those new to the community. We pledge to provide
respectful criticisms and feedback in forums, especially in discussion
threads resulting from code contributions.
- We pledge to be conscientious of the perceptions of the wider community and
to respond to criticism respectfully. We will strive to model behaviors that
encourage productive debate and disagreement, both within our community and
where we are criticized. We will treat those outside our community with the
same respect as people within our community.
- We pledge to help the entire community follow the code of conduct, and to not
remain silent when we see violations of the code of conduct. We will take
action when members of our community violate this code such as
contacting [email protected] (all emails sent to this address will be
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we have any dedicated email at IPAC for CoC violations?

treated with the strictest confidence) or talking privately with the person.

This code of conduct applies to all community situations online and offline,
including mailing lists, forums, social media, conferences, meetings,
associated social events, and one-to-one interactions.

This code of conduct has been adapted from the [Astropy Code of Conduct](https://www.astropy.org/code_of_conduct.html).
65 changes: 65 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Contribution Guidelines

So you are wondering how you can contribute to Firefly? Congrats, you've landed on the right page!

## Imposter Syndrome Disclaimer

_We want your help. No really, we do._

There might be a little voice inside that tells you you're not ready; that you need to do one more tutorial, or learn another framework, or write a few more blog posts before you can help us with this project.

We assure you, that's not the case.

Firefly has some clear "Contribution Guidelines" that you can read below in the following sections.

The contribution guidelines outline the process that you'll need to follow to get a patch merged. By making expectations and process explicit, we hope it will make it easier for you to contribute.

And you don't just have to write code. You can help out by writing documentation, tests, or even by giving feedback about this work. (And yes, that includes giving feedback about the contribution guidelines.)

(Thanks to [Adrienne Lowe](https://github.com/adriennefriend/imposter-syndrome-disclaimer) who came up with this disclaimer and made it OPEN for anyone to use!)

## How can I contribute?

There are multiple ways in which you can contribute:

### Reporting a Bug

Firefly is in active development. It's no surprise that you may encounter something that doesn't work for your use case. Or maybe you have some suggestions about how we can improve some functionality. Feel free to share any of it with us by [opening an issue](https://docs.github.com/en/github/managing-your-work-on-github/creating-an-issue) at [Firefly Github Issues](https://github.com/Caltech-IPAC/firefly/issues).
Copy link
Member Author

@jaladh-singhal jaladh-singhal Jan 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know we don't use Github issues as much but public users of firefly seem to be taking this route, and this guide is intended for people like them in open source community


Please make sure that you provide all the necessary information, especially how to reproduce your problem — it will not only make our work easier but will also help you communicate your problem more effectively.

### Editing the Documentation

Due to the rapid pace of development and limited resources, Firefly's documentation may not always be up-to-date or fully comprehensive. And here lies an opportunity for you: you can edit the documentation stored as markdown text files (`*.md`) in the [`docs` directory](https://github.com/Caltech-IPAC/firefly/tree/dev/docs) of Firefly and as docstrings in the `src` code files.

You can see the Firefly JS docs at http://localhost:8080/firefly/docs/js/index.html if you have built them locally, as follows:
```shell
gradle firefly:buildJsDoc
gradle firefly:buildAndDeploy
```

After editing the markdown or source files, build the docs again to check if your changes render correctly. Then you can submit your changes to us by making a patch as described in the next section.

### Making a Patch (aka Code Contribution)

Currently, Firefly tracks development priorities and tasks through Jira, which is internal to us, rather than through public GitHub issues. As a result, we don't have "good-first" or "easy" labeled issues to invite code contributions from new contributors. However, that shouldn't discourage you from contributing! As a new user, you have a better perspective on where our documentation lacks, and you can edit it to make it better, as described in the previous section.

If you've [set up Firefly locally](https://github.com/Caltech-IPAC/firefly/tree/dev?tab=readme-ov-file#setup) and have some familiarity with the codebase, we encourage you to contribute by adding features you'd find useful or fixing issues that affect your workflow. Your contributions will be invaluable to improve open-sourced Firefly for other users as well.
Comment on lines +45 to +47
Copy link
Member Author

@jaladh-singhal jaladh-singhal Jan 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Firefly differs here compared to other open sourced software, I tried to write it to communicate that limitation to non-IPAC/Rubin contributors while sharing ways in which they can make PRs.

Open to suggestions to rewrite it better.


To contribute your code, you'll need to create a [pull request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests) from your fork of the Firefly repository. If this is your first time creating a pull request on GitHub, please refer to [this guide](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork).

When submitting a pull request, please provide a clear description of your changes, including any relevant testing instructions. Also, make sure your patch maintains code quality, is documented, and is testable.

### Spreading the Word of Mouth

If you find Firefly helpful, you can share it with your peers, colleagues, and anyone who can benefit from Firefly. If you've used Firefly in your research, please acknowledge us. By telling other people about how Firefly helped you, you'll help us in turn, extending Firefly's impact. And we would absolutely love it if you give us a shout-out on IPAC's social media: [LinkedIn](https://www.linkedin.com/showcase/ipac-at-caltech/) | [Twitter](https://x.com/caltechipac).
Copy link
Member Author

@jaladh-singhal jaladh-singhal Jan 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we have any DOI for firefly that we can put for "acknowledge us"?

At TARDIS, we have a github actions setup to make zenodo release with each new release of code and generate a citation format (.CFF) from it that users can use to cite.


## What if I need help?

We encourage you to ask for help without hesitation if you want to contribute to Firefly. Other than [opening a GitHub issue](https://github.com/Caltech-IPAC/firefly/issues) as mentioned above, you can also reach out to us by contacting the [IRSA Help Desk](https://irsa.ipac.caltech.edu/docs/help_desk.html).

---

Thank you for contributing!

These contribution guidelines have been adapted from [TARDIS Contribution Guidelines](https://github.com/tardis-sn/tardis/blob/master/CONTRIBUTING.md).