Farama-Foundation/PettingZoo - Open Source PR Review Scorecard

A standard API for multi-agent reinforcement learning environments, with popular reference environments and related utilities

C-Rank Grade: A (Welcoming) - 62/100

External PR Merge Rate: 62%

Response Time: 1d

First Timer Success: 63%

Frequently Asked Questions

Is Farama-Foundation/PettingZoo welcoming to first-time open-source contributors?

Farama-Foundation/PettingZoo has a recorded first-timer success rate of 62.5%. Repositories ranked A typically provide actionable feedback during code reviews and actively nurture new community contributors.

How fast can I expect code review feedback on my pull request?

Maintainers in Farama-Foundation/PettingZoo respond to incoming external pull requests in approximately 31.2 hours on average. Keeping PRs focused on single tasks and ensuring tests pass helps maintainers review faster.

What does the 62.1 C-Rank™ score (A Tier) represent?

The C-Rank™ system evaluates GitHub projects on a 0–100 scale using real data: PR merge rates, review turnaround time, active maintainer presence, and first-time contributor success. A score of 62.1 places Farama-Foundation/PettingZoo in the A tier.

What is the external contributor pull request merge rate for Farama-Foundation/PettingZoo?

The external contributor pull request merge rate for Farama-Foundation/PettingZoo is 62.3%, based on public PR activity from non-core contributors.

Are there Good First Issues available in Farama-Foundation/PettingZoo?

Farama-Foundation/PettingZoo currently has 12 active issue(s) tagged with beginner-friendly labels like "good first issue", "beginner", or "up-for-grabs".

Farama-Foundation
Farama-Foundation/PettingZooA•Welcoming3.5k
GitHub
Back to Explorer
Farama-Foundation

Farama-Foundation/PettingZoo

3,529
InactiveA•Welcoming(62/100)Python

A standard API for multi-agent reinforcement learning environments, with popular reference environments and related utilities

GitHub
Compare••
Jump to:

AI Maintainer Review Guidelines

Review Persona

Constructive Code Reviewer

Warmth Score
7.4/10
Patience Score
7.8/10
Nitpick Rate
33%

Balanced & professional review environment in Farama-Foundation/PettingZoo. Maintains strict focus on technical quality and test standards.

Top PR Submission Do's

  • •Add unit tests with >80% coverage for modified code paths
  • •Run repository linter and code formatters locally before pushing
  • •Link relevant GitHub issue ID in PR description pre-flight checklist

Top PR Friction Pitfalls (Don'ts)

  • •Do not submit unlinked PRs without referencing an existing issue
  • •Do not mix refactoring and feature logic into a single commit
  • •Do not ping maintainers repeatedly within 24 hours of opening
Response Velocity
1 days+
Standard maintainer review cycle

Average Response Latency

Tracks hours until a maintainer leaves a review, comment, or PR response.

Merge Efficiency
62.3%
Moderate PR acceptance rate

External Acceptance Rate

Percentage of community pull requests successfully merged into main.

First-Timer Success
62.5%
Strong first-timer PR acceptance rate

First PR Conversion

Rate at which developers submitting their first repository PR succeed.

Active Maintainers
9 core
Highly collaborative maintainer core
Diagnostic Health HUD
62.3%
Merge Gauge
62.5%
1st-Timer
Community Vibe50/100

Embed C-Rank Badge

Show contributors that your repository actively reviews and merges external pull requests.

GetMerged C-Rank badge for Farama-Foundation/PettingZoo
[![GetMerged C-Rank](https://getmerged.abhishekco.de/api/badge/Farama-Foundation/PettingZoo)](https://getmerged.abhishekco.de/Farama-Foundation/PettingZoo?utm_source=github&utm_medium=badge)

Active Good First Issues (5)

View on GitHub

Problem env.state() represents the global state of an environment, but PettingZoo's state validation and guidance assume that the returned value is a NumPy array. A custom environment may instead have a structured global state, such as a dictionary represented by gymnasium.spaces.Dict. This is the implementation follow-up to #1326. Work Make the documented contract for state() and state_space accept a value described by any appropriate gymnasium.spaces.Space, including Dict, rather than requiring an ndarray. Update pettingzoo/test/state_test.py so it validates state_space.contains(state) throughout a rollout for both AEC and Parallel environments. Apply array-specific checks only when the state is an ndarray; do not stop testing when it is another type. Review the relevant API type annotations and utilities for assumptions that state() always returns an ndarray, and update those assumptions where they are part of PettingZoo's public API. Document a small custom-environment example wit

📅 Opened Sep 27, 2026💬 0 comments
Quality: 90/100Contribute

Porting observation and action wrappers alone will not let PettingZoo retire SuperSuit. Its maintained training tutorials use SuperSuit’s vectorization and Stable-Baselines3 adapters, including the workflow built around pettingzoo_env_to_vec_env_v1, concat_vec_envs_v1, and stable_baselines3_vec_env_v0. Inventory each SuperSuit vector constructor or adapter used in PettingZoo’s maintained examples. For each workflow, select an actively maintained replacement API, or implement the missing bridge in an appropriate maintained package. These functions do not become AEC or Parallel environment wrappers merely by moving them into pettingzoo.wrappers; document where the replacement lives and why. Migrate the affected SB3 and other training examples to the replacement. Preserve their ability to train with the expected observation/action spaces and agent counts, including the KAZ example that also requires black-death behavior. Document an old-to-new mapping for each SuperSuit vector functio

📅 Opened Sep 27, 2026💬 1 comment
Quality: 90/100Contribute

After the replacement wrappers and vector workflow are available, update PettingZoo’s maintained documentation and tutorials so they no longer instruct users to install or import SuperSuit. This is part of completing #1365. Inventory supersuit/SuperSuit references in documentation, tutorials, tutorial requirements, and documentation build configuration. Replace executable preprocessing examples with the corresponding PettingZoo wrapper classes. Update the SuperSuit wrapper reference page and navigation to describe the native API and old-to-new name mappings. Update the Atari preprocessing examples and the CleanRL, AgileRL, Ray, and SB3 tutorials where they currently import SuperSuit. Preserve explanations and working examples. Remove a tutorial’s SuperSuit requirement only after its code has a working replacement. If an example needs the vectorization work tracked separately under #1365, complete that replacement before changing the example. Completion: Maintained PettingZoo exampl

📅 Opened Sep 27, 2026💬 0 comments
Quality: 100/100Contribute

Issue #1365 calls for SuperSuit’s environment-wrapper functionality to live under pettingzoo.wrappers, similar to gymnasium.wrappers. The migrated classes currently appear in pettingzoo.utils.wrappers. Provide the requested public pettingzoo.wrappers import path. Re-export the native environment wrappers from this namespace, including those already merged and those added through #1365. Keep existing pettingzoo.utils.wrappers imports working. Define an explicit __all__ and document which classes apply to AEC environments and which apply to Parallel environments. This issue concerns the public namespace and exports; it does not require moving every implementation file. Completion: Users can import the migrated classes from pettingzoo.wrappers; existing imports still work; import tests and the wrapper reference documentation cover the public path. Coordinate the export list with the wrapper PRs as they merge.

📅 Opened Sep 27, 2026💬 0 comments
Quality: 90/100Contribute

PettingZoo already has an AEC ClipOutOfBoundsWrapper. Add its native Parallel counterpart under pettingzoo.utils.wrappers as part of #1365. Do not create a second AEC action-clipping class. For each active agent with a Box action space, clip the supplied action elementwise to that agent’s own low and high bounds before forwarding the action dictionary. Leave in-range actions unchanged. Validate action shapes and reject NaNs, matching the existing AEC wrapper’s safety behavior. Warn when an out-of-range action is clipped, as the existing AEC class does. Preserve the action spaces. This deliberately follows PettingZoo’s existing AEC clipping behavior. SuperSuit’s clip_actions_v0 calls np.clip without the same warnings and NaN check; document the difference so users migrating from SuperSuit know what to expect. Completion: Export and document the Parallel class beside ClipOutOfBoundsWrapper. Test agents with different Box bounds, in-range and out-of-range actions, warning behavior

📅 Opened Sep 27, 2026💬 0 comments
Quality: 90/100Contribute
Looking for more Python beginner tasks?Explore Python GFI

Contributor Community Vibe Feedback

Rate what actually matters after opening a pull request here.

Have you contributed to this repo?

Rate your first-hand PR experience (review speed, maintainer responsiveness, and onboarding ease) to help other contributors.

3 ratings required
Maintainer helpfulness
Review speed
Beginner friendliness

Contributor Compatibility & Review Speed Analysis for Farama-Foundation/PettingZoo

When evaluating whether to contribute to Farama-Foundation/PettingZoo, response velocity and maintainer engagement are crucial. GetMerged continuously tracks pull request trajectories, first-comment latency, and code review rounds to help developers avoid submitting pull requests to backlogged repositories.

Currently, maintainers of Farama-Foundation/PettingZoo acknowledge new external contributions in approximately 1 days+. Out of all submitted pull requests from non-core authors in the last 180-day window, 62.3% were successfully merged into the primary branch.

Frequently Asked Questions - Contributing to Farama-Foundation/PettingZoo

01

Is Farama-Foundation/PettingZoo welcoming to first-time open-source contributors?

Farama-Foundation/PettingZoo has a recorded first-timer success rate of 62.5%. Repositories ranked Welcoming typically provide actionable feedback during code reviews and actively nurture new community contributors.

02

How fast can I expect code review feedback on my pull request?

The initial maintainer response time averages ~1 days+. Keeping PRs scoped to single concerns and ensuring CI checks succeed will optimize review turnaround.

03

What does the 62.1 C-Rank™ score represent?

The C-Rank™ index scores repositories on a 0 to 100 scale using an objective formula: external PR merge rates, initial response speed, active maintainer count, and first-time contributor retention. A score of 62.1 places Farama-Foundation/PettingZoo in the Welcoming tier.

04

What is the external contributor pull request merge rate for Farama-Foundation/PettingZoo?

The external pull request merge rate is 62.3%. GetMerged isolates non-core community contributions so external developers get an accurate benchmark of PR acceptance probability.

05

Are there beginner Good First Issues open in Farama-Foundation/PettingZoo?

Yes, Farama-Foundation/PettingZoo currently has 12 active issue(s) tagged with beginner-friendly labels. You can inspect these directly from the repository issues tab.

GetMerged C-Rank™ Indexing Standard

All metrics displayed for Farama-Foundation/PettingZoo are automatically retrieved via the public GitHub API and recalculated daily. Insider pull requests submitted by repository owners or organization members are excluded from merge rate calculations to preserve objective external contributor statistics.