# Contributing to xyOps We love open source, and we're thrilled that you want to help make **xyOps** even better! Please read this document carefully before contributing. It explains how to work effectively with the xyOps team and where your efforts can have the biggest impact. ## Before You Open a Pull Request We are **not currently accepting feature pull requests** (PRs), except under special circumstances. If you have a great idea for a new feature, please: 1. [Open a GitHub Issue](https://github.com/pixlcore/xyops/issues/new) to describe your idea. 2. Use clear and concise language, including use cases and benefits. 3. Encourage others to give your issue a 👍 reaction. 4. Wait for a **Dev team member to approve the idea** before writing any code. We generally prefer to design and implement new features in-house, but we're **very responsive** and regularly integrate popular feature requests quickly. Your feedback shapes the roadmap! ## Accepted Contributions There are plenty of other valuable ways to contribute: ### Bug Fixes - Small, well-scoped fixes are welcome. - Your PR should clearly describe the issue and the reasoning behind your change. - All unit tests must pass (`npm test`). - Follow our code style (see the [Development Guide](https://github.com/pixlcore/xyops/blob/main/docs/dev.md)). - Commits must be **signed off (DCO)** and **GPG-signed**. ### Security Issues Please do **not** open GitHub issues for security vulnerabilities. Instead, follow the responsible disclosure process described in our [Security Guide](https://github.com/pixlcore/xyops/blob/main/docs/security.md). ### Localization We're preparing a formal localization process! If you speak any languages other than English, we'd love your help translating xyOps once this is ready. Watch for updates in the GitHub Issues area. ### Plugin Development Our biggest need right now is **Plugins**! xyOps is built around an open plugin architecture, and we would love your contributions here. - See the [Plugin Guide](https://github.com/pixlcore/xyops/blob/main/docs/plugins.md) for full development and publishing details. - Publish your plugin on GitHub, then register it on the [xyOps Plugin Marketplace](https://xyops.io/marketplace). - Plugins should use an **OSI-approved license** and include clear documentation of any security considerations. ### Documentation Improvements We happily accept PRs that improve our docs! - All documentation lives in `/docs`. - Follow the writing style in the [Development Guide](https://github.com/pixlcore/xyops/blob/main/docs/dev.md). - Screenshots/diagrams should be **PNG** or **WebP (lossless)** with proper **alt-text**. ### Spread the Word If you enjoy xyOps, help us grow the community: - Mention xyOps on [Bluesky](https://pixlcore.bsky.social/) and [Mastodon](https://mastodon.social/@pixlcore), or boost our posts! - Participate in [GitHub Discussions](https://github.com/pixlcore/xyops/discussions). Particularly, help out new users! - Subscribe to our [YouTube Channel](https://www.youtube.com/@PixlCore-Media) and leave likes on our videos (if you like them). ## Development Guidelines - Runtime: **Node.js LTS** - Language: **Plain JavaScript**, no frameworks - Testing: [pixl-unit](https://github.com/jhuckaby/pixl-unit) - Code style and setup: see the [Development Guide](https://github.com/pixlcore/xyops/blob/main/docs/dev.md) - License: [BSD-3-Clause](https://github.com/pixlcore/xyops/blob/main/LICENSE.md) ## Code of Conduct All participants are expected to follow our [Code of Conduct](https://github.com/pixlcore/xyops/blob/main/CODE_OF_CONDUCT.md). By contributing to xyOps, you agree to foster a welcoming, respectful community. ## Thank You Your time and effort mean a lot to us. Even if you're not writing code, every issue, translation, plugin, or mention helps make **xyOps** better for everyone. **Together, we can make xyOps truly awesome.** -- The PixlCore Team