diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0957bb8e..f6bea7f5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -126,6 +126,12 @@ Any contributions you make will be under the Apache License 2.0. In short, when Since Atropos is focused on reinforcement learning environments, we encourage contributions of new training environments. However, please adhere to the following guidelines: +* **Directory Structure**: Please create your new environment within the `environments/community/` subdirectory. This helps us organize incoming contributions and allows for a streamlined initial review process before full testing and integration. +* **Import Style**: We prefer that you treat your environment's directory as the package root for imports. For example, if your environment resides in `environments/community/my_new_env/` and you need to import `ServerProxy` (assuming it's in a `server_proxy.py` file at the root of your `my_new_env` directory or accessible via your Python path setup), you should be able to use a direct import like: + ```python + from server_proxy import ServerProxy + ``` + This convention applies to imports within your environment's own files and any helper modules you create alongside it. * **Legal compliance**: Do not submit environments that involve illegal activities or content. * **GitHub compliance**: All contributions must comply with [GitHub's Terms of Service and Community Guidelines](https://docs.github.com/en/site-policy/github-terms/github-terms-of-service). diff --git a/README.md b/README.md index 31c55bb2..9374e2fa 100644 --- a/README.md +++ b/README.md @@ -133,12 +133,12 @@ Environment Used: [https://github.com/NousResearch/atropos/blob/main/environment | Category | Description | |----------|------------| | 📁 [`atroposlib/`](atroposlib/) | Core library containing base classes and utilities | -| 🎮 [`environments/`](environments/) | Collection of ready-to-use RL environments | +| 🎮 [`environments/`](environments/) | Collection of ready-to-use RL environments. Community contributions are typically placed in the [`environments/community/`](environments/community/) subdirectory. | | 📚 [`example_trainer/`](example_trainer/) | Example training scripts and configurations | Key Documents: - [Base Environment Class](atroposlib/envs/README.md) - Documentation for creating custom environments -- [Environments Overview](environments/README.md) - Documentation for existing environments +- [Environments Overview and Contribution Guide](environments/community/README.md) - Documentation for existing environments and how to contribute new ones. - [Full Environment Config Options](CONFIG.md) - Documentation for creating custom environments - [Example Trainer](example_trainer/README.md) - Getting started with training - [Slurm Guide](SLURM.md) - Guide for using Atropos with Slurm for distributed inference diff --git a/environments/community/README.md b/environments/community/README.md new file mode 100644 index 00000000..23a55cab --- /dev/null +++ b/environments/community/README.md @@ -0,0 +1,18 @@ +# Community Environments + +This directory is home to community-contributed training environments for Atropos. Environments submitted by the community will be placed here after an initial code review. + +**Note:** Environments in this directory are pending full testing and integration. While they have passed a basic code check, they may not yet have been rigorously validated on our compute cluster. + +## Contributing Your Environment + +We encourage you to contribute your own RL environments! When developing a new environment, please follow these guidelines: + +1. **Create your environment in this `environments/community/` subdirectory.** This helps us keep new submissions organized. +2. **Preferred Import Style:** We prefer that you treat your environment's directory as the package root for imports within your environment code. For example, if you need to import `SomeClass`, you can do so directly: + ```python + from some_file_in_my_env import SomeClass + ``` + This helps maintain consistency and makes it easier to integrate your environment. + +Once your environment is ready, please follow the guidelines in our main [CONTRIBUTING.md](../../../CONTRIBUTING.md) to submit your contribution. We look forward to seeing what you build! diff --git a/llms.txt b/llms.txt index be20dca1..9d6bf33c 100644 --- a/llms.txt +++ b/llms.txt @@ -543,7 +543,7 @@ Ensure all tests pass before submitting a PR. git push origin your-branch-name ``` 9. **Open a Pull Request:** Submit a PR from your fork's branch to the `NousResearch/atropos:main` branch on GitHub. - 10. **Use the Correct PR Template:** The repository may have specific PR templates (e.g., `environment_pull_request_template.md`, `non_environment_pull_request_template.md`). Please use the appropriate one. + 10. **Follow the PR Template:** The repository has a general Pull Request template (`.github/pull_request_template.md`). Please ensure you fill out all applicable sections of this template to help reviewers understand your changes. The template includes guidance for different types of contributions, such as new RL environments or other code changes. 11. **Describe Your PR:** Provide a clear title and a detailed description of your changes. Link any relevant issues (e.g., "Closes #123"). ### 12.5. Code Style