-
Notifications
You must be signed in to change notification settings - Fork 24
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
Arranger Dev Documentation Update #892
Open
MitchellShiell
wants to merge
48
commits into
main
Choose a base branch
from
bridgeArranger
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+794
−8,509
Open
Changes from all commits
Commits
Show all changes
48 commits
Select commit
Hold shift + click to select a range
d47f09b
docs folder setup + ported existing docs
MitchellShiell b3f15f0
minor update
MitchellShiell 0b44a42
updated docs
MitchellShiell 01caca3
minor updates
MitchellShiell 2bd92c8
updated symlink
MitchellShiell 23bc8d3
simplified file naming
MitchellShiell fe2fd81
temporarly sperated usage docs
MitchellShiell 0b751d0
updated overview page
MitchellShiell 4a84c8f
minor updates
MitchellShiell d75aff8
minor fix
MitchellShiell 3b6fcac
fixed broken link
MitchellShiell 385ee3f
minor fixes
MitchellShiell b4e488c
added statment on python version requirement
MitchellShiell b0467b8
minor
MitchellShiell 15c9c9c
updated readme + usage guides
MitchellShiell 8e0df27
updating contributing & code of conduct
MitchellShiell b6533bd
minor update
MitchellShiell 23d8d04
fixed url
MitchellShiell 049d27d
ES 7 warning + components disclaimer
MitchellShiell 30ac3cb
Merge branch 'develop' into bridgeArranger
MitchellShiell 86d7a09
minor update
MitchellShiell f8fa29f
links
MitchellShiell f8da721
Update docs/usage/02-arranger-components.md
MitchellShiell 28525ec
Update CONTRIBUTING.md
MitchellShiell 52c8eec
Update README.md
MitchellShiell 8a490fa
Update README.md
MitchellShiell d92fedc
Update README.md
MitchellShiell ad82c61
Update README.md
MitchellShiell 9e14255
Update docs/overview.md
MitchellShiell 8950fba
Update docs/overview.md
MitchellShiell 0b83e3e
Update docs/overview.md
MitchellShiell 7b40cdb
Update docs/overview.md
MitchellShiell 2426c47
Update docs/overview.md
MitchellShiell e4d84d9
Update docs/setup.md
MitchellShiell f77561b
Update docs/usage/02-arranger-components.md
MitchellShiell 8358d68
Update docs/setup.md
MitchellShiell fc6cc37
Update docs/setup.md
MitchellShiell a6f076c
Update docs/usage/01-index-mappings.md
MitchellShiell 50cf759
Update docs/setup.md
MitchellShiell 9b97828
Update docs/setup.md
MitchellShiell a8fee30
Update docs/usage/01-index-mappings.md
MitchellShiell 13121da
Update docs/usage/01-index-mappings.md
MitchellShiell 88b2da7
Update docs/usage/01-index-mappings.md
MitchellShiell 338d2a9
Update docs/usage/02-arranger-components.md
MitchellShiell a04d904
Update docs/usage/02-arranger-components.md
MitchellShiell 23c5ce0
PR updates
MitchellShiell 66df196
PR updates
MitchellShiell 10d4f6a
updated bat command
MitchellShiell File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
# Contributing to Overture | ||
|
||
We appreciate your interest in contributing to this project. We are the Genome Informatics Software Engineering team from Ontario Institute for Cancer Research. At OICR we develop new software, databases and other necessary components to store, organize and process the large and complex datasets being generated by our cancer research programs. Embodying OICR's values of collaboration and community, we are firm believers in open-source and open-science. As such we strongly believe in the collective power of expertise and shared resources. | ||
|
||
## Code of Conduct | ||
|
||
By participating in this project, you are expected to abide by our [Code of Conduct](/community/code-of-conduct). Please take the time to read it carefully before contributing. | ||
|
||
## Get Involved | ||
|
||
**Getting Started:** Our primary platform for community support, feature requests, and general discussions is GitHub Discussions. This allows us to keep all conversations in one place and make them easily searchable for future reference. | ||
|
||
|
||
**Community Support:** Our primary platform for community support, feature requests, and general discussions is [GitHub Discussions](https://github.com/overture-stack/docs/discussions). This allows us to keep all conversations in one place and make them easily searchable for future reference. | ||
|
||
- **Getting Help:** If you need assistance with Overture, please create a [new discussion in our support category](https://github.com/overture-stack/docs/discussions/categories/support). | ||
- Before creating a new discussion, please search existing discussions to see if your question has already been answered. | ||
- **Feature Requests & Proposals:** We love hearing your ideas for improving Overture! Before making a feature request, please check our [**feature roadmap**](https://github.com/orgs/overture-stack/projects/11/views/1) to see if your idea is already planned. | ||
- If your idea isn't on the roadmap, feel free to [**submit a feature request**](https://github.com/overture-stack/docs/discussions/categories/ideas) by creating a new discussion in our Ideas category | ||
- **Report a Potential Bug:** We use GitHub Issues primarily for tracking confirmed bugs and ticketing development tasks. If you come across a potential bug or issue, please first post it to our [**GitHub support discussion forum**](https://github.com/overture-stack/docs/discussions/categories/support). | ||
- This allows us to confirm the issue and gather more information if needed. If we determine that further development is required, we will create and tag you into a GitHub Issue from your discussion post. | ||
|
||
## Our Development Process | ||
|
||
We use GitHub issues and pull requests for communication related to code changes. | ||
|
||
### Branch Organization | ||
|
||
We use the following standard branches: | ||
|
||
- `main` is for stable production code | ||
- `develop` is the integration branch for new features | ||
- `feature/<name>` for feature branches | ||
- `release/v<version>` for release branches | ||
- `hotfix/<name>` for hotfix branches | ||
|
||
## Pull Requests | ||
|
||
### Submitting a Pull Request | ||
|
||
We welcome and encourage pull requests from the community. To submit a pull request, please follow these steps: | ||
|
||
1. **Fork the Repository**: Fork the Overture repository on GitHub. | ||
2. **Clone Your Fork**: Clone your forked repository to your local machine. | ||
3. **Create a New Branch**: Create a new branch for your changes. Use lowercase and hyphens (e.g., `feature/user-authentication`). Include ticket/issue numbers when applicable (e.g., `feature/PROJ-123-user-authentication`). | ||
4. **Make Your Changes**: Implement your changes and commit them to your branch. Write clear, concise commit messages in present tense (e.g., "Add feature" not "Added feature"). Reference issue numbers in commits when applicable. | ||
5. **Push Your Changes**: Push your changes to your forked repository. | ||
6. **Submit a Pull Request**: Open a pull request against the main repository. | ||
|
||
### Best Practices | ||
|
||
1. **Keep PRs as small as possible:** Focus on one feature or bug fix per pull request. Break large changes into smaller, more manageable pieces making it easier for reviewers to understand and approve your changes. | ||
|
||
2. **Use descriptive titles:** Start with a verb (e.g., "Add", "Fix", "Update", "Refactor"), briefly summarize the main purpose of the PR and include the issue number if applicable (e.g., "Fix user authentication bug (#123)"). | ||
|
||
3. **Describe how you tested it:** Explain the testing process you followed and mention any new automated tests you've added. | ||
|
||
4. **Provide a clear description:** Explain the purpose of your changes and list the main modifications you've made. Mention any potential side effects or areas that might need extra attention. | ||
|
||
5. **Link related issues:** Reference any related issues or pull requests. Use GitHub keywords to automatically link issues (e.g., "Closes #123", "Fixes #456"). | ||
6. **Keep the PR's branch up-to-date:** Regularly rebase your branch on the latest main branch and resolve any merge conflicts promptly. | ||
|
||
7. **Respond to feedback:** Be open to suggestions and willing to make changes. Address all comments from reviewers. If you disagree with a suggestion, explain your reasoning politely. | ||
|
||
8. **Include documentation updates:** If your changes affect user-facing features, update or create and issue detailing the relevant changes need to the documentation. Where appropriate include inline comments for complex code sections. | ||
|
||
10. **Be patient:** Reviewers will likely be unable to respond immediately. However, feel free to follow up politely if you haven't received feedback after a reasonable time. | ||
|
||
### Using Draft Pull Requests | ||
|
||
Draft Pull Requests are an excellent way to document work in progress and facilitate early feedback. Use them to: | ||
|
||
- Organize your thoughts and process | ||
- Share early work and ideas with the team | ||
- Get feedback on implementation approaches before finalizing code | ||
- Track progress on long-running features | ||
|
||
Guidelines for Draft Pull Requests: | ||
|
||
1. **Creation**: | ||
- Open a pull request and select "Create draft pull request" | ||
- Clearly mark the title with [WIP] or [DRAFT] prefix | ||
MitchellShiell marked this conversation as resolved.
Show resolved
Hide resolved
|
||
2. **Description**: | ||
- Outline the current state of the work | ||
- List planned tasks or improvements | ||
- Highlight areas where feedback is specifically needed | ||
3. **Updates**: | ||
- Regularly update the description or provide comments following commits with progress notes | ||
- Use task lists (using `- [ ]` in Markdown) to track completion of sub-tasks | ||
4. **Collaboration**: | ||
- Encourage early feedback and discussion | ||
- Use the pull request comments for design discussions | ||
5. **Finalization**: | ||
- Complete all planned work and address feedback | ||
- Update tests and documentation | ||
- Click "Ready for review" to move out of draft state | ||
|
||
### Merging a Pull Request | ||
|
||
- Ensure all CI checks pass | ||
- Obtain the required number of approvals | ||
- Use the project's specified merge strategy (Typically squash and merge) | ||
- Delete the source branch after merging if no longer needed |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,99 +1,85 @@ | ||
# Arranger - Data Portal API and UI component Generation | ||
# Arranger | ||
|
||
[<img hspace="5" src="https://img.shields.io/badge/chat-on--slack-blue?style=for-the-badge">](http://slack.overture.bio) | ||
[<img hspace="5" src="https://img.shields.io/badge/License-gpl--v3.0-blue?style=for-the-badge">](https://github.com/overture-stack/arranger/blob/develop/LICENSE) | ||
[<img hspace="5" src="https://img.shields.io/badge/Code%20of%20Conduct-2.1-blue?style=for-the-badge">](code_of_conduct.md) | ||
|
||
<div> | ||
<img align="right" width="120vw" src="icon-arranger.png" alt="arranger-logo"/> | ||
</div> | ||
|
||
Arranger integrates with your underlying Elasticsearch cluster to automatically generate a powerful search API based on your configured index mapping. It consists of two main modules, **Arranger Server** and **Arranger Components**. | ||
|
||
**Arranger Server** is a GraphQL API that communicates with an Elasticsearch index. Arranger Server uses a consistent and custom filter notation called SQON. SQON is designed to be user-friendly, allowing humans to easily understand and create custom filters while being straightforward for software systems to interpret and process. | ||
|
||
**Arranger Components** are interactive and configurable UI components specifically designed to display and query complex datasets from a web browser. | ||
|
||
<!--Blockqoute--> | ||
Arranger is a versatile, data-agnostic GraphQL search API that leverages Elasticsearch, designed to simplify the process of creating powerful search interfaces for complex datasets. It's accompanied by its own React component library to generate interactive and highly configurable search UIs. | ||
|
||
</br> | ||
|
||
> | ||
> | ||
> <div> | ||
> <img align="left" src="ov-logo.png" height="90"/> | ||
> <img align="left" src="ov-logo.png" height="50"/> | ||
> </div> | ||
> | ||
> *Arranger is a core service within the [Overture](https://www.overture.bio/) research software ecosystem. See our [related products](#related-products) for more information on how Overture helps organize data and enable discovery.* | ||
> *Arranger is part of [Overture](https://www.overture.bio/), a collection of open-source software microservices used to create platforms for researchers to organize and share genomics data.* | ||
> | ||
> | ||
|
||
<!--Blockqoute--> | ||
|
||
## Documentation | ||
|
||
- For development resources, including set up and technical details, see our [Developer Documentation.](https://github.com/overture-stack/arranger/wiki) | ||
|
||
- For more information on installation, configuration, and usage see our [User Documentation.](https://www.overture.bio/documentation/arranger/installation/installation/) | ||
## Repository Structure | ||
|
||
## Quickstart Docker Install | ||
The repository is organized with the following directory structure: | ||
|
||
To install Arranger using Docker, follow these steps: | ||
|
||
1. Clone the Arranger repository | ||
2. Navigate to the project directory | ||
3. With Docker running, execute the quickstart `make` target: | ||
|
||
```shell | ||
make start | ||
``` | ||
arranger/ | ||
├── docker/ | ||
│ ├── elasticsearch/ | ||
│ ├── server/ | ||
│ ├── test/ | ||
│ └── ui/ | ||
├── modules/ | ||
│ ├── admin-ui/ | ||
│ ├── components/ | ||
│ └── server/ | ||
└── scripts/ | ||
``` | ||
|
||
The deployed services will be accessible through the following ports: | ||
- **docker/**: Contains miscellaneous configuration files used for building Docker images of Arranger Server, and to support running a local developer environment. | ||
|
||
| Service | Port | | ||
|--|--| | ||
| Arranger Server | localhost:5050/graphql | | ||
| Elasticsearch | localhost:9200 | | ||
| Kibana | localhost:5601 | | ||
- **docs/**: Markdown files that contain instructions on how to use Arranger and its capabilities, contribution guidelines, etc. | ||
|
||
**Note(s):** | ||
- **modules/**: Core Arranger modules: | ||
- **admin-ui/**: (Inactive) Administration interface for generating and managing Arranger configuration files. | ||
- **components/**: React components to streamline integration of search portals with an Arranger server. | ||
- **server/**: The "Arranger" server itself, a GraphQL service that facilitates usage of Lucene-based search engines (e.g. Elasticsearch). | ||
- **scripts/**: Utility scripts for development, deployment, and system management. | ||
|
||
- To generate the API Arranger requires an Elasticsearch Instance and an index mapping. For information on setting Arranger up with a default index mapping, see our [official documentation page on supplying an index mapping.](https://www.overture.bio/documentation/arranger/installation/configuration/es/) | ||
## Documentation | ||
|
||
- Arranger is undergoing refactoring work for what will become version 3+. An _upgrade guide_ is on its way. Current users of v2 may look at the `legacy` branch, meanwhile, where we will continue fixing newly reported bugs until further notice. | ||
Technical resources for those working with or contributing to the project are available from our official documentation site, the following content can also be read and updated within the `/docs` folder of this repository. | ||
|
||
- You may need to add the `--legacy-peer-deps` flag when integrating our modules into your apps. Along with the rewrite, we're steadily updating the internal dependencies, so this isn't necessary. | ||
- **[Arranger Overview](https://main--overturedev.netlify.app/docs/core-software/Arranger/overview)** | ||
- [**Setting up the Development Enviornment**](https://main--overturedev.netlify.app/docs/core-software/Arranger/setup) | ||
- [**Common Usage Docs**](https://main--overturedev.netlify.app/docs/core-software/Arranger/setup) | ||
MitchellShiell marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
## Support & Contributions | ||
## Development Environment | ||
|
||
- Filing an [issue](https://github.com/overture-stack/arranger/issues) | ||
- Making a [contribution](CONTRIBUTING.md) | ||
- Connect with us on [Slack](https://overture-bio.slack.com/) | ||
- Add or Upvote a [feature request](https://github.com/overture-stack/arranger/issues?q=is%3Aopen+is%3Aissue+label%3Anew-feature+sort%3Areactions-%2B1-desc) | ||
- [Node.js](https://nodejs.org/) (v18 or higher) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. eek. this needs to be updated 😳 |
||
- [npm](https://www.npmjs.com/) (v8.3.0 or higher) | ||
- [Docker](https://www.docker.com/) (v4.32.0 or higher) | ||
|
||
## Related Products | ||
## Support & Contributions | ||
|
||
<div> | ||
<img align="right" alt="Overture overview" src="https://www.overture.bio/static/124ca0fede460933c64fe4e50465b235/a6d66/system-diagram.png" width="45%" hspace="5"> | ||
</div> | ||
- For support, feature requests, and bug reports, please see our [Support Guide](https://main--overturedev.netlify.app/community/support). | ||
|
||
Overture is an ecosystem of research software tools, each with narrow responsibilities, designed to reduce redundant programming efforts and enable developers and data scientists to build reliable systems that organize and share big data. | ||
- For detailed information on how to contribute to this project, please see our [Contributing Guide](https://main--overturedev.netlify.app/docs/contribution). | ||
|
||
All our core microservices are included in the Overture **Data Management System** (DMS). The DMS offers turnkey installation, configuration, and deployment of Overture software. For more information on the DMS, read our [DMS documentation](https://www.overture.bio/documentation/dms/). | ||
## Related Software | ||
|
||
See the links below for additional information on our other research software tools: | ||
The Overture Platform includes the following Overture Components: | ||
|
||
</br> | ||
|
||
|Software|Description| | ||
|---|---| | ||
|[Ego](https://www.overture.bio/products/ego/)|An authorization and user management service| | ||
|[Ego UI](https://www.overture.bio/products/ego-ui/)|A UI for managing Ego authentication and authorization services| | ||
|[Score](https://www.overture.bio/products/score/)| Transfer data to and from any cloud-based storage system| | ||
|[Song](https://www.overture.bio/products/song/)|Catalog and manage metadata associated to file data spread across cloud storage systems| | ||
|[Maestro](https://www.overture.bio/products/maestro/)|Organizing your distributed data into a centralized Elasticsearch index| | ||
|[Arranger](https://www.overture.bio/products/arranger/)|A search API with reusable UI components that build into configurable and functional data portals| | ||
|[DMS-UI](https://github.com/overture-stack/dms-ui)|A simple web browser UI that integrates Ego and Arranger| | ||
|
||
## Acknowledgements | ||
|[Score](https://github.com/overture-stack/score/)| Transfer data to and from any cloud-based storage system | | ||
|[Song](https://github.com/overture-stack/song/)| Catalogue and manage metadata associated to file data spread across cloud storage systems | | ||
|[Maestro](https://github.com/overture-stack/maestro/)| Organizing your distributed data into a centralized Elasticsearch index | | ||
|[Arranger](https://github.com/overture-stack/arranger/)| A search API with reusable search UI components | | ||
|[Stage](https://github.com/overture-stack/stage)| A React-based web portal scaffolding | | ||
|[Lyric](https://github.com/overture-stack/lyric)| A model-agnostic, tabular data submission system | | ||
|[Lectern](https://github.com/overture-stack/lectern)| Schema Manager, designed to validate, store, and manage collections of data dictionaries. | | ||
|
||
If you'd like to get started using our platform [check out our quickstart guides](https://main--overturedev.netlify.app/guides/getting-started) | ||
|
||
## Funding Acknowledgement | ||
|
||
Overture is supported by grant #U24CA253529 from the National Cancer Institute at the US National Institutes of Health, and additional funding from Genome Canada, the Canada Foundation for Innovation, the Canadian Institutes of Health Research, Canarie, and the Ontario Institute for Cancer Research. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not a request for change, but a note to myself, as I'll need to update this soon once we move on from this branching system