Contributing - krishanth7/EveryO GitHub Wiki

Contributing to EveryO

Official Open-Source Contribution & Collaboration Guide

Discover · Discuss · Develop · Validate · Review · Contribute

Contributions Welcome Python License Code of Conduct

Help build a readable, reliable, mathematically correct, and accessible neural computing framework.

Home · Development Setup · Testing and Quality Assurance · GitHub Issues


Project Maintainer: @krishanth7

Important

Contributions Are Welcome

EveryO welcomes contributions from developers, researchers, students, educators, and open-source enthusiasts.

Contributions can include code, tests, documentation, bug reports, numerical verification, examples, performance analysis, and technical reviews.

You do not need to be an existing project maintainer to participate.


Table of Contents

  1. Welcome
  2. Project Philosophy
  3. Ways to Contribute
  4. Getting Started
  5. Finding an Issue
  6. Reporting Bugs
  7. Proposing Features
  8. Forking and Branching
  9. Development Standards
  10. Adding Tensor Operations
  11. Adding Neural Network Layers
  12. Contributing to CUDA
  13. Testing Requirements
  14. Code Style and Documentation
  15. Commit Guidelines
  16. Pull Request Workflow
  17. Code Review Process
  18. Continuous Integration
  19. Community Standards
  20. Security Reporting
  21. Licensing and Intellectual Property
  22. Project Governance
  23. Maintainer Responsibilities
  24. First Contribution Walkthrough
  25. Contributor Checklist
  26. Frequently Asked Questions
  27. Official References
  28. Next Steps

1. Welcome

Thank you for your interest in contributing to EveryO.

EveryO is an open-source neural computing framework built around readable implementations of tensor computation, automatic differentiation, neural network modules, optimization, and model training.

The project aims to make machine learning internals understandable, testable, and reproducible.

1.1 Who Can Contribute?

Contributors may include:

  • Python developers.
  • Machine learning engineers.
  • Research engineers.
  • CUDA developers.
  • Technical writers.
  • Students and educators.
  • Software testers.
  • Open-source maintainers.

1.2 Experience Requirements

There is no minimum experience requirement for participation.

New contributors are encouraged to begin with focused improvements such as documentation corrections, reproducible bug reports, examples, and unit tests.

More complex changes may require familiarity with numerical computing, automatic differentiation, and EveryO's architecture.


2. Project Philosophy

EveryO prioritizes clarity, correctness, and reproducibility.

2.1 Core Principles

Principle Meaning
Readability Code should be understandable
Correctness Mathematical results must be verified
Simplicity Avoid unnecessary complexity
Reproducibility Results should be testable
Accessibility Core functionality should work on CPU
Transparency Limitations should be documented
Maintainability Changes should remain easy to review

2.2 Architectural Boundaries

The core framework must not require:

  • API keys.
  • External AI services.
  • Network calls during core execution.
  • CUDA hardware.
  • TensorFlow.

Optional integrations must not make the core installation unusable.

2.3 Engineering Trade-Offs

Performance improvements are welcome, but they should not unnecessarily sacrifice readability or mathematical correctness.

When an optimization introduces complexity, contributors should explain the benefit, demonstrate correctness, and provide measurable evidence.


3. Ways to Contribute

You can contribute without writing new framework code.

3.1 Contribution Categories

Category Examples
Bug fixes Correct tensor or gradient behavior
Features Add supported operations or layers
Tests Improve numerical and edge-case coverage
Documentation Improve tutorials and API references
Examples Demonstrate framework capabilities
Performance Profile and optimize bottlenecks
Compatibility Fix supported-platform issues
Security Report vulnerabilities privately
Review Evaluate proposed changes

3.2 Recommended Starting Points

For first-time contributors:

  1. Improve unclear documentation.
  2. Add a missing test.
  3. Reproduce an existing bug.
  4. Improve error messages.
  5. Fix a narrowly scoped issue.

For experienced contributors:

  1. Implement differentiable operations.
  2. Add neural network layers.
  3. Improve numerical stability.
  4. Extend optional backend support.
  5. Strengthen serialization or testing.

4. Getting Started

4.1 Clone the Repository

git clone https://github.com/krishanth7/EveryO.git

cd EveryO

4.2 Create a Virtual Environment

python -m venv .venv

Activate on Linux or macOS:

source .venv/bin/activate

Activate on Windows PowerShell:

.venv\Scripts\Activate.ps1

4.3 Install Dependencies

python -m pip install --upgrade pip

python -m pip install -e ".[dev]"

4.4 Verify the Installation

python -m everyo info

python -m everyo doctor

4.5 Run the Test Suite

python -m pytest -q

4.6 Run Linting

ruff check .

ruff format --check .

Detailed instructions: Development Setup


5. Finding an Issue

The GitHub issue tracker is the primary location for reporting and discussing bounded technical work.

Browse EveryO Issues

5.1 Before Selecting an Issue

  • Read the issue description.
  • Check whether a solution is already proposed.
  • Review related pull requests.
  • Confirm the expected behavior.
  • Identify relevant source files.
  • Ask focused questions when requirements are unclear.

5.2 Issue Labels

GitHub labels, when present, can help contributors find suitable work.

Common open-source label conventions include:

Label Typical Meaning
bug Incorrect behavior
enhancement Improvement request
documentation Documentation work
good first issue Beginner-friendly work
help wanted Additional contributions welcome

These are common label conventions; availability should be checked in the EveryO repository.

5.3 Claiming Work

Comment on an issue to communicate your intention to contribute when coordination would help.

An issue comment does not automatically grant exclusive ownership.


6. Reporting Bugs

High-quality bug reports help maintainers reproduce and fix problems.

6.1 Required Information

Include:

  • EveryO version.
  • Python version.
  • Operating system.
  • Relevant backend.
  • Minimal reproduction.
  • Expected behavior.
  • Actual behavior.
  • Complete relevant traceback.

6.2 Environment Information

python -m everyo info

6.3 Example Bug Report

## Summary

Tensor broadcasting produces an unexpected gradient.

## Environment

- EveryO version:
- Python version:
- Operating system:
- Backend:

## Steps to Reproduce

1. Create the tensors.
2. Execute the operation.
3. Call backward().
4. Inspect the gradient.

## Expected Behavior

Describe the mathematically expected gradient.

## Actual Behavior

Describe the observed result.

## Minimal Reproduction

```python
import everyo as eo

# Add a minimal reproducible example.

Additional Information

Include relevant error messages or numerical comparisons.


## 6.4 Bug Report Quality

Prefer the smallest example that demonstrates the problem.

Avoid attaching confidential datasets or private information.

> [!CAUTION]
> Security vulnerabilities must not be disclosed through public bug reports. Follow the private reporting process in [SECURITY.md](https://github.com/krishanth7/EveryO/blob/main/SECURITY.md).

---

# 7. Proposing Features

Feature proposals should explain both the desired capability and its value to EveryO.

## 7.1 Proposal Requirements

Describe:

1. The problem.
2. The proposed feature.
3. Intended users.
4. Public API implications.
5. Implementation approach.
6. Alternatives.
7. Dependencies.
8. Testing requirements.
9. Compatibility considerations.

## 7.2 Example Proposal

```markdown
## Feature Proposal

### Problem

Describe the limitation.

### Proposed Solution

Describe the new functionality.

### Example API

Provide a proposed usage example.

### Alternatives

Describe other approaches considered.

### Compatibility

Explain any API or dependency impacts.

### Validation

Describe how correctness will be tested.

7.3 Architectural Changes

Substantial architectural changes should begin with a GitHub Discussion or design issue, consistent with EveryO's governance process.

Do not assume that a proposed feature has been approved merely because an issue exists.


8. Forking and Branching

External contributors should normally work through forks and pull requests.

8.1 Fork EveryO

Open:

https://github.com/krishanth7/EveryO

Select Fork.

8.2 Clone Your Fork

git clone https://github.com/YOUR_USERNAME/EveryO.git

cd EveryO

8.3 Configure Upstream

git remote add upstream \
  https://github.com/krishanth7/EveryO.git

8.4 Synchronize Main

git fetch upstream

git switch main

git merge --ff-only upstream/main

8.5 Create a Branch

git switch -c fix/gradient-broadcasting

8.6 Recommended Branch Names

fix/gradient-broadcasting
feature/new-layer
docs/improve-installation
test/autograd-edge-cases
refactor/tensor-validation

Branch naming conventions are recommended rather than mandatory.


9. Development Standards

EveryO's contribution standards emphasize understandable code and testable behavior.

9.1 Public Interfaces

Public functions and methods should include type hints.

Public modules, classes, and functions should include meaningful docstrings.

9.2 Module Design

Prefer small modules with clear responsibilities.

Avoid unrelated functionality inside a single module.

9.3 Error Handling

Errors should explain what went wrong.

Prefer:

EveryOShapeError:
Cannot multiply matrices with shapes
(32, 64) and (128, 10).

Over:

IndexError

9.4 Dependency Management

Avoid adding dependencies to the core layer beyond NumPy.

New optional integrations should be isolated appropriately.

9.5 API Compatibility

Changes to public APIs should be documented and tested.

Breaking changes require explicit review and appropriate release planning.


10. Adding Tensor Operations

New tensor operations require mathematical verification.

10.1 Implementation Location

everyo/core/operations.py

10.2 Required Steps

  1. Implement the forward operation.
  2. Implement the backward function.
  3. Handle broadcasting.
  4. Verify input and output shapes.
  5. Add finite-difference gradient tests.
  6. Export the operation publicly.
  7. Document its behavior.

10.3 Gradient Verification

For scalar-valued (f):

[ \frac{\partial f}{\partial x_i} \approx \frac{f(x_i+\epsilon)-f(x_i-\epsilon)} {2\epsilon} ]

10.4 Verification Requirements

Test:

  • Known numerical values.
  • Gradient correctness.
  • Shape compatibility.
  • Broadcasting.
  • Invalid inputs.
  • Edge cases.

Finite-difference testing is a required part of EveryO's existing contribution guidance for differentiable operations.


11. Adding Neural Network Layers

New layers should integrate with EveryO's module architecture.

11.1 Base Class

from everyo.nn import Module

11.2 Registration

from everyo.nn.module import register_module

11.3 Layer Requirements

A new layer should:

  • Implement forward().
  • Register parameters correctly.
  • Support applicable gradient propagation.
  • Provide configuration for serialization.
  • Respect training/evaluation behavior.
  • Include tests.

11.4 Serialization

Layers with constructor arguments should implement get_config() when required for reconstruction.

11.5 Public Exports

Update:

everyo/nn/__init__.py
everyo/__init__.py

11.6 Tests

Include a model save/load round-trip test for serializable layers.


12. Contributing to CUDA

CUDA contributions require careful memory-safety and correctness validation.

12.1 Relevant Files

cuda/src/
cuda/include/everyo_cuda.h
cuda/bindings/bindings.cpp
everyo/cuda/interface.py

12.2 Requirements

  • Validate memory bounds.
  • Check CUDA calls.
  • Check kernel launches.
  • Use safe device-memory ownership.
  • Provide CPU fallback behavior.
  • Compare results against NumPy.

12.3 Error Checking

The repository's contribution guide requires appropriate use of:

EVERYO_CUDA_CHECK(...)

and:

EVERYO_CUDA_CHECK_KERNEL()

12.4 Build and Test

./scripts/build_cuda.sh

python -m pytest tests/test_devices.py -v

12.5 Hardware Disclosure

CUDA pull requests should specify the GPU and environment used for testing.

Do not claim CUDA execution was validated if the change was tested only on CPU.


13. Testing Requirements

Tests are essential for maintaining EveryO's mathematical correctness.

13.1 Run All Tests

python -m pytest -q

13.2 Run Specific Tests

python -m pytest tests/test_autograd.py -v

13.3 Run Fast Tests

python -m pytest -m "not slow"

13.4 Coverage

python -m pytest \
  --cov=everyo \
  --cov-report=term-missing

13.5 Testing Expectations

Change Expected Validation
Bug fix Regression test
Tensor operation Forward and gradient tests
Neural layer Shape, gradient, serialization
Data utility Input/output and edge cases
Optimizer Parameter update behavior
Serialization Round-trip test
CUDA kernel CPU reference comparison
Documentation Example verification

13.6 CPU Requirement

The core test suite must work without requiring TensorFlow or CUDA.

Optional backend tests should skip appropriately when dependencies or hardware are unavailable.


14. Code Style and Documentation

EveryO uses Ruff.

14.1 Lint

ruff check .

14.2 Formatting

ruff format --check .

14.3 Apply Formatting

ruff format .

14.4 Documentation Expectations

  • Use accurate API names.
  • Explain function parameters.
  • Include meaningful examples.
  • Document limitations.
  • Avoid unsupported performance claims.
  • Update the changelog for relevant changes.

14.5 Changelog

Update the appropriate section of:

CHANGELOG.md

New unreleased changes should be recorded under the project's Unreleased section.


15. Commit Guidelines

Clear commits simplify code review and project history.

15.1 Recommended Format

type(scope): short description

15.2 Examples

feat(nn): add new activation layer

fix(autograd): correct broadcast gradient

test(core): add numerical gradient coverage

docs(wiki): improve contribution guide

perf(data): reduce unnecessary array copies

15.3 Commit Principles

  • Keep commits focused.
  • Explain the purpose of changes.
  • Avoid committing generated files unnecessarily.
  • Do not include secrets.
  • Separate unrelated modifications.

These are recommended conventions, not an enforced commit-message policy.


16. Pull Request Workflow

Pull requests are the primary mechanism for submitting code changes.

16.1 Standard Process

Fork Repository
       |
       v
Create Branch
       |
       v
Implement Change
       |
       v
Add Tests
       |
       v
Run Quality Checks
       |
       v
Push Branch
       |
       v
Open Pull Request
       |
       v
Maintainer Review
       |
       v
Revision if Needed
       |
       v
Merge or Close

16.2 Push Branch

git push -u origin fix/gradient-broadcasting

16.3 Open Pull Request

Visit:

EveryO Pull Requests

Select New pull request and choose the appropriate source and target branches.

16.4 Pull Request Content

The existing repository template requests:

  • Summary.
  • Type of change.
  • Testing performed.
  • Checklist completion.
  • CUDA-specific validation where applicable.

16.5 Example PR Description

## Summary

Describe what changed and why.

## Type of Change

- [ ] Bug fix
- [ ] New feature
- [ ] Documentation
- [ ] Performance
- [ ] Refactor
- [ ] CI or tooling

## Implementation

Describe the technical changes.

## Testing

List commands executed and results.

## Compatibility

Describe public API or behavioral impacts.

## Related Issues

Closes #ISSUE_NUMBER

17. Code Review Process

Code review protects correctness and maintainability.

17.1 Review Criteria

Area Review Question
Correctness Does the change work?
Mathematics Are numerical results valid?
Tests Is behavior sufficiently verified?
Readability Is the implementation understandable?
Compatibility Are existing APIs preserved?
Security Are new risks introduced?
Documentation Is the behavior explained?

17.2 Contributor Responsibilities

  • Respond respectfully to feedback.
  • Explain technical decisions.
  • Resolve actionable concerns.
  • Update tests when needed.
  • Avoid unrelated changes during review.

17.3 Review Outcomes

A pull request may be:

  • Approved.
  • Returned for changes.
  • Deferred.
  • Closed without merging.
  • Merged after approval.

A submitted pull request does not guarantee acceptance.


18. Continuous Integration

EveryO uses GitHub Actions for automated validation.

18.1 Workflow

View CI Workflow

18.2 Existing Validation Areas

  • Python compatibility.
  • Unit and integration tests.
  • Ruff linting.
  • Formatting.
  • TensorFlow integration.
  • ONNX testing.
  • Example execution.
  • Package build checks.

18.3 Contributor Responsibilities

Before requesting merge:

  1. Check workflow results.
  2. Review failures.
  3. Reproduce issues locally.
  4. Correct the problem.
  5. Push updates.
  6. Confirm checks rerun.

18.4 CI Status

View GitHub Actions

CI status must be checked directly; this document does not assert that any particular workflow run has passed.


19. Community Standards

EveryO follows a published Code of Conduct.

19.1 Expected Behavior

  • Respect other contributors.
  • Welcome different experience levels.
  • Provide constructive feedback.
  • Focus on technical issues.
  • Respect privacy.
  • Communicate professionally.

19.2 Unacceptable Behavior

  • Harassment.
  • Personal attacks.
  • Discrimination.
  • Publishing private information.
  • Sustained disruption.
  • Unwelcome sexual attention.
  • Abusive conduct.

19.3 Reporting Conduct Issues

Follow the procedures described in:

CODE_OF_CONDUCT.md

Sensitive matters should be communicated privately to maintainers.


20. Security Reporting

Security vulnerabilities require coordinated disclosure.

20.1 Do Not Open Public Vulnerability Reports

Do not publish exploit details in public issues or pull requests before coordinated disclosure.

20.2 Private Reporting

Use:

Report a Vulnerability

20.3 Recommended Report Content

  • Affected EveryO version.
  • Python version.
  • Operating system.
  • Vulnerability description.
  • Reproduction steps.
  • Potential impact.
  • Proposed mitigation, if available.

20.4 Response Targets

The repository's security policy states:

Stage Target
Acknowledgment Within 7 days
Initial assessment Within 14 days
Fix or mitigation plan After assessment

These are volunteer-project targets, not contractual guarantees.

20.5 Security Principles

  • Never commit credentials.
  • Avoid unsafe deserialization.
  • Validate untrusted inputs.
  • Report memory-safety issues.
  • Keep security discussions private until coordinated disclosure.

21. Licensing and Intellectual Property

EveryO is distributed under the MIT License.

21.1 Contributor Responsibilities

By submitting a contribution, contributors represent that they have the right to submit it and agree that it may be distributed under the repository's MIT License.

21.2 Do Not Submit

  • Proprietary code without authorization.
  • Confidential business information.
  • Trade secrets.
  • Private datasets.
  • Credentials.
  • Incompatibly licensed material.

21.3 Third-Party Components

Third-party code, datasets, models, and tools remain subject to their own licenses.

21.4 Branding

The MIT License does not authorize contributors or forks to imply official endorsement by EveryO or its maintainer.

References:


22. Project Governance

EveryO is an independently maintained open-source project.

22.1 Roles

Role Responsibility
Maintainer Technical direction, reviews, releases, policy enforcement
Contributor Issues, code, tests, documentation, reviews
Reviewer Technical evaluation when authorized
Future maintainer Delegated responsibilities when appointed

22.2 Current Maintainer

@krishanth7

22.3 Decision Process

The project prefers transparent technical discussions.

For substantial changes:

  1. Explain the problem.
  2. Discuss alternatives.
  3. Evaluate compatibility.
  4. Record trade-offs.
  5. Seek practical consensus.
  6. Obtain maintainer approval.

22.4 Access Permissions

Contributing does not automatically grant:

  • Repository write access.
  • Administrative access.
  • Release permissions.
  • Maintainer status.

22.5 Governance Reference

GOVERNANCE.md


23. Maintainer Responsibilities

Maintainers are responsible for protecting the project's technical integrity and community standards.

23.1 Core Responsibilities

  • Review contributions.
  • Evaluate technical correctness.
  • Maintain project direction.
  • Enforce policies.
  • Manage releases.
  • Coordinate security responses.
  • Document important decisions.

23.2 Review Priorities

Recommended priorities include:

  1. Security and correctness defects.
  2. Regressions.
  3. Compatibility problems.
  4. Documentation inaccuracies.
  5. Approved improvements.
  6. Experimental proposals.

These priorities are recommendations rather than a published response-time guarantee.

23.3 Decision Transparency

Significant decisions should be explained through issues, pull requests, or project documentation where appropriate.


24. First Contribution Walkthrough

This example demonstrates a typical documentation contribution.

Step 1 — Fork

Fork the EveryO repository on GitHub.

Step 2 — Clone

git clone https://github.com/YOUR_USERNAME/EveryO.git

cd EveryO

Step 3 — Create a Branch

git switch -c docs/improve-getting-started

Step 4 — Make Changes

Edit the relevant documentation.

Step 5 — Run Checks

python -m pytest -q

ruff check .

ruff format --check .

Step 6 — Stage Changes

git add docs/

Step 7 — Commit

git commit -m "docs: improve getting started guide"

Step 8 — Push

git push -u origin docs/improve-getting-started

Step 9 — Open a Pull Request

Describe the change and include the validation performed.

Step 10 — Respond to Review

Address feedback and update the branch as required.


25. Contributor Checklist

Before Development

  • Read the contribution guide.
  • Review the Code of Conduct.
  • Understand the relevant issue.
  • Set up the development environment.
  • Create a focused branch.

During Development

  • Follow coding conventions.
  • Preserve core architectural principles.
  • Add appropriate tests.
  • Verify numerical correctness.
  • Update documentation.
  • Avoid unrelated modifications.

Before Pull Request

  • Relevant tests pass locally.
  • Full CPU test suite passes.
  • Ruff lint passes.
  • Ruff formatting passes.
  • No secrets are included.
  • Changelog updated where relevant.
  • PR description is complete.

During Review

  • Respond to comments.
  • Explain technical trade-offs.
  • Resolve requested changes.
  • Recheck CI after updates.

26. Frequently Asked Questions

Can beginners contribute?

Yes. Documentation, tests, examples, and narrowly scoped bug fixes are useful starting points.

Do I need a GPU?

No. EveryO's core development and CPU test suite do not require CUDA hardware.

Do I need TensorFlow?

No. TensorFlow is an optional integration and validation dependency.

Can I contribute documentation only?

Yes. Documentation contributions are welcome.

Will every pull request be merged?

No. Changes must align with project scope, quality expectations, and maintainer decisions.

How do I report a vulnerability?

Use GitHub's private vulnerability reporting mechanism rather than a public issue.

Does contributing grant maintainer access?

No. Repository access is granted separately under project governance.


27. Official References

Resource Link
Repository EveryO
Contribution Policy CONTRIBUTING.md
Code of Conduct CODE_OF_CONDUCT.md
Governance GOVERNANCE.md
Security Policy SECURITY.md
Project Policy PROJECT_POLICY.md
Repository Rules REPOSITORY_RULES.md
Pull Request Template PR Template
Issues GitHub Issues
Pull Requests GitHub Pull Requests
CI GitHub Actions
Changelog CHANGELOG.md

28. Next Steps

Continue with the contributor and repository governance documentation.

Wiki Page Focus
Coding Standards Python conventions, architecture, naming, and code quality
Pull Request Guidelines PR preparation, review, and merge requirements
Release Process Versioning, packaging, and publication
Development Setup Development environment
Testing and Quality Assurance Verification and CI

Wiki links become active after the corresponding pages are created.


Contributing — Documentation Prepared

Next Recommended Page: Coding Standards →

Home · Development Setup · Testing and Quality Assurance


EveryO — Open Machine Learning. Built for Developers.

Project Maintainer: @krishanth7

Open Source · MIT Licensed · Community Driven

© 2026 EveryO Contributors

⚠️ **GitHub.com Fallback** ⚠️