Skip to content
Merged
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
5 changes: 0 additions & 5 deletions .github/ISSUE_TEMPLATE.md

This file was deleted.

12 changes: 6 additions & 6 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
Expand Down Expand Up @@ -52,7 +52,7 @@ decisions when appropriate.

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
Examples of representing our community include using an official email address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

Expand Down Expand Up @@ -115,8 +115,8 @@ the community.
## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0].
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].

Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][mozilla coc].
Expand All @@ -126,7 +126,7 @@ For answers to common questions about this code of conduct, see the FAQ at
at [https://www.contributor-covenant.org/translations][translations].

[homepage]: https://www.contributor-covenant.org
[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[mozilla coc]: https://github.com/mozilla/diversity
[faq]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations
203 changes: 203 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
# Contributing to PlanDev UI

Thanks for taking the time to consider contributing! We very much appreciate your time and effort. This document outlines the ways you can contribute to PlanDev UI and the conventions we follow.

- [Prerequisites](#prerequisites)
- [Communication Channels](#communication-channels)
- [Our Development Process](#our-development-process)
- [Submitting a Pull Request](#submitting-a-pull-request)
- [Coding Rules](#coding-rules)
- [Pull Request Title and Labels](#pull-request-title-and-labels)
- [Ways to Contribute](#ways-to-contribute)

## Prerequisites

### License

Our project's licensing terms are documented in [LICENSE](LICENSE). Please review it before contributing — it impacts how your contributions may be redistributed.

### Code of Conduct

We follow the [Contributor Covenant](CODE_OF_CONDUCT.md). By participating, you agree to its terms.

### Developer Environment

For details on running, building, and testing PlanDev UI locally, see:

- [README.md](README.md) — quick start and project overview
- [docs/DEVELOPER.md](docs/DEVELOPER.md) — local development setup
- [docs/ENVIRONMENT.md](docs/ENVIRONMENT.md) — environment variables
- [docs/TESTING.md](docs/TESTING.md) — running unit and end-to-end tests

At a minimum you'll need:

1. A GitHub account
2. Git installed locally
3. Node.js (see `.nvmrc`) and npm
4. The ability to build and test the project on your local machine

## Communication Channels

Before contributing, it's a good idea to socialize your idea early. Our channels are:

- [Issue tracker](https://github.com/NASA-AMMOS/plandev-ui/issues) — report issues or propose changes
- [Discussions](https://github.com/NASA-AMMOS/plandev-ui/discussions) — design conversations and show-and-tell
- [Slack channel][slack] — real-time chat

## Our Development Process

```mermaid
flowchart TD
repo_proj[(NASA-AMMOS/plandev-ui)]-->|Fork|repo_fork[(Your Fork)]
repo_fork-->|Branch off develop|patch(Your Changes)
patch-->|Submit|pr(Pull Request)
pr==>|Approved + Squash & Merge|repo_proj
pr-->|Changes Requested|repo_fork
```

We integrate changes through pull requests against the `develop` branch. Forking is preferred over direct branching for external contributors; core team members typically branch directly.

### Find or File an Issue

Make sure people know what you're working on. Check [the issue tracker][github-issues] for a related issue, or file a new one to start the conversation.

### Choose the Right Branch

`develop` is the default branch and the integration target for all new work. Branch off `develop`.

## Submitting a Pull Request

1. Search [GitHub][github-pulls] for an open or closed PR that relates to your submission to avoid duplicating effort.
2. Confirm an issue describes the problem or feature. Discussing the design up front helps ensure the work will be accepted.
3. Clone the [NASA-AMMOS/plandev-ui repo][github] (or your fork).
4. Create a branch off `develop`:

```shell
git checkout develop
git pull origin develop
git checkout -b my-fix-branch develop
```

5. Make your changes.
6. Follow our [Coding Rules](#coding-rules).
7. Commit your changes:

```shell
git commit -a
```

The optional `-a` flag will automatically `add` and `rm` edited files. Intra-PR commits get squashed at merge time, so their shape is up to you — what matters is the [PR title and label](#pull-request-title-and-labels).

8. Push your branch:

```shell
git push origin my-fix-branch
```

9. Open a pull request against `plandev-ui:develop`.

### Responding to Review

If reviewers request changes:

- Make the updates and follow the [Coding Rules](#coding-rules).
- [Rebase][rebase] and force-push to update the PR:

```shell
git rebase develop -i
git push -f
```

If your branch falls behind `develop`:

- Rebase locally as above, **or**
- Use the GitHub UI's "Update branch" dropdown → "Update with rebase".

### Merging

Once approved, prefer **Squash and merge** to keep `develop` history clean. Update the squash commit message body to include only what's relevant. Do **not** modify the PR title at squash time — that breaks our release-notes tracking.

After merge:

```shell
git push origin --delete my-fix-branch # delete remote branch
git checkout develop # back to develop
git pull origin develop # pull the merged change
git branch -D my-fix-branch # delete local branch
```

## Coding Rules

Before opening a PR, run:

1. `npm run format:write`
2. `npm run lint`
3. `npm run lint:css`
4. `npm run check`
5. Follow the testing procedures in [docs/TESTING.md](docs/TESTING.md)

## Pull Request Title and Labels

PRs are squash-merged, so the **PR title becomes the commit on `develop`**. Use a descriptive sentence — recent examples:

- "Allow sequence name to be chosen during filter application"
- "Swap table cookie persistence for localStorage"
- "Fix inconsistent file extension handling in workspaces"

For release-note categorization, apply one of the labels configured in [.github/release.yml](./.github/release.yml):

| Label | Category |
| ----------------- | ----------------------------- |
| `breaking change` | Breaking Changes |
| `feature` | New Features |
| `fix` | Bug Fixes |
| `performance` | Performance Improvements |
| `refactor` | Refactoring |
| `test` | Testing |
| `ci` | Continuous Integration |
| `documentation` | Documentation |
| `build` | Build System and Dependencies |
| `style` | Style |

PRs without a matching label fall under "Other Changes".

## Ways to Contribute

### Code

Before writing code, check the [issue tracker][github-issues]:

1. Look for duplicate issues covering your idea — comment there with your thoughts.
2. If none exist, file a new issue and start a conversation before opening a PR.

When ready to contribute code:

1. Make sure development [prerequisites](#prerequisites) are met.
2. Follow our [development process](#our-development-process).
3. Open a PR per [Submitting a Pull Request](#submitting-a-pull-request).

### Documentation

Documentation lives in:

- Top-level: [README.md](README.md), [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md), [CONTRIBUTING.md](CONTRIBUTING.md)
- [docs/](docs/) — developer docs (deployment, environment, release, testing, developer setup)
- [PlanDev documentation site](https://nasa-ammos.github.io/plandev-docs/) — user-facing docs

Documentation contributions follow the same [development process](#our-development-process) as code contributions.

### Security Vulnerabilities

Please **do not** file security vulnerabilities to the public issue tracker. Report them privately to [plandev_support@jpl.nasa.gov](mailto:plandev_support@jpl.nasa.gov).

When reporting, please include:

- Severity assessment
- Any known workarounds
- Return contact information for follow-up

[github]: https://github.com/NASA-AMMOS/plandev-ui
[github-issues]: https://github.com/NASA-AMMOS/plandev-ui/issues
[github-pulls]: https://github.com/NASA-AMMOS/plandev-ui/pulls
[rebase]: https://dev.to/maxwell_dev/the-git-rebase-introduction-i-wish-id-had
[slack]: https://app.slack.com/client/T024LMMEZ/C0163E42UBF
16 changes: 14 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,17 @@ For the latest documentation, visit: [PlanDev Documentation](https://nasa-ammos.

- Join us on the [NASA-AMMOS Slack](https://join.slack.com/t/nasa-ammos/shared_invite/zt-1mlgmk5c2-MgqVSyKzVRUWrXy87FNqPw) (#plandev-users)
- Contact plandev-support@googlegroups.com
- Report security vulnerabilities per [SECURITY.md](./SECURITY.md)

## Getting Started

PlanDev UI requires Node.js (see [`.nvmrc`](./.nvmrc)), Java, Docker, and a local checkout of the [PlanDev backend](https://github.com/NASA-AMMOS/plandev). For full setup instructions see [docs/DEVELOPER.md](./docs/DEVELOPER.md).

```sh
nvm use
npm install
npm run dev
```

## Directory Structure

Expand All @@ -48,9 +59,10 @@ For the latest documentation, visit: [PlanDev Documentation](https://nasa-ammos.
## Want to help?

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our
guidelines for [contributing][contributing]. If you are a developer you can get started quickly by reading the [developer documentation][dev].
guidelines for [contributing][contributing] and our [code of conduct][coc]. If you are a developer you can get started quickly by reading the [developer documentation][dev].

[contributing]: ./docs/CONTRIBUTING.md
[coc]: ./CODE_OF_CONDUCT.md
[contributing]: ./CONTRIBUTING.md
[dev]: ./docs/DEVELOPER.md

## License
Expand Down
Loading
Loading