docs: rewrite CONTRIBUTING.md and upgrade Code of Conduct to v2.1

- CONTRIBUTING: update repo URLs, Node 20, add semantic-release commit mapping, project structure, import order, review process
- CODE_OF_CONDUCT: upgrade from Contributor Covenant v1.4 to v2.1, add 4-level enforcement guidelines, replace placeholder email with GitHub issues
This commit is contained in:
Gemini Nexus Bot committed 2026-04-29 02:43:27 -03:00
1 parent 3420fc86d2
commit 9c07fbc815
2 files changed
+344 -234

No files matched your search

+76 -49
View File
@@ -1,49 +1,76 @@
# Contributor Covenant Code of Conduct # Contributor Covenant Code of Conduct
## Our Pledge ## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.
## Our Standards We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
Examples of behavior that contributes to creating a positive environment include: ## Our Standards
- Using welcoming and inclusive language **Examples of behavior that contributes to a positive environment:**
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism - Using welcoming and inclusive language
- Focusing on what is best for the community - Being respectful of differing viewpoints and experiences
- Showing empathy towards other community members - Gracefully accepting constructive feedback
- Focusing on what is best for the community
Examples of unacceptable behavior by participants include: - Showing empathy towards other community members
- Helping newcomers feel welcome
- The use of sexualized language or imagery and unwelcome sexual attention or advances
- Trolling, insulting/derogatory comments, and personal or political attacks **Examples of unacceptable behavior:**
- Public or private harassment
- Publishing others' private information, such as a physical or electronic address, without explicit permission - The use of sexualized language or imagery, and unwelcome sexual attention or advances
- Other conduct which could reasonably be considered inappropriate in a professional setting - Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
## Our Responsibilities - Publishing others' private information without explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
## Enforcement Responsibilities
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
Project maintainers are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
## Scope
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for behaviors that they deem inappropriate.
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Scope
## Enforcement
This Code of Conduct applies within all project spaces — including the repository, issue tracker, discussions, and pull requests — and also applies when an individual is officially representing the project in public spaces.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [INSERT EMAIL ADDRESS]. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
## Enforcement
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue on the [GitHub repository](https://github.com/evandrodevbr/GeminiNexus/issues) or by contacting the project maintainers directly.
## Attribution
All complaints will be reviewed and investigated promptly and fairly. The project team is obligated to maintain confidentiality with regard to the reporter of an incident.
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
## Enforcement Guidelines
[homepage]: https://www.contributor-covenant.org
Project maintainers will follow these guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:
---
### 1. Correction
**Note**: Please replace `[INSERT EMAIL ADDRESS]` with your actual contact email if you wish to receive reports.
**Impact**: Use of inappropriate language or other behavior deemed unprofessional.
**Consequence**: A private, written warning providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Impact**: A violation through a single incident or series of actions.
**Consequence**: A warning with consequences for continued behavior. No interaction with the people involved for a specified period of time. Violating these terms may lead to a temporary or permanent ban.
### 3. Temporary Ban
**Impact**: A serious violation of community standards, including sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time.
### 4. Permanent Ban
**Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.1, available at <https://www.contributor-covenant.org/version/2/1/code_of_conduct.html>.
Enforcement Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
+268 -185
View File
@@ -1,185 +1,268 @@
# Contributing to Gemini Nexus # Contributing to Gemini Nexus
First off, thank you for considering contributing to Gemini Nexus! 🎉 Thank you for considering contributing to Gemini Nexus! 🎉
It's people like you that make Gemini Nexus such a great tool. We welcome contributions from everyone, whether it's a bug report, feature suggestion, documentation improvement, or code contribution. Whether it's a bug report, feature suggestion, documentation improvement, or code contribution — all help is welcome.
## 📋 Table of Contents ---
- [Code of Conduct](#code-of-conduct) ## 📋 Table of Contents
- [Getting Started](#getting-started)
- [Development Setup](#development-setup) - [Code of Conduct](#-code-of-conduct)
- [Making Changes](#making-changes) - [Getting Started](#-getting-started)
- [Pull Request Process](#pull-request-process) - [Development Setup](#-development-setup)
- [Style Guidelines](#style-guidelines) - [Making Changes](#-making-changes)
- [Reporting Bugs](#reporting-bugs) - [Commit Guidelines](#-commit-guidelines)
- [Suggesting Features](#suggesting-features) - [Pull Request Process](#-pull-request-process)
- [Code Style](#-code-style)
## 📜 Code of Conduct - [Reporting Issues](#-reporting-issues)
This project and everyone participating in it is governed by our [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers. ---
## 🚀 Getting Started ## 📜 Code of Conduct
1. **Fork the repository** on GitHub This project is governed by our [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
2. **Clone your fork** locally:
```bash ---
git clone https://github.com/YOUR_USERNAME/GeminiNexusManager.git
cd Gemini NexusManager ## 🚀 Getting Started
```
3. **Add the upstream remote**: 1. **Fork** the repository on GitHub
```bash 2. **Clone** your fork locally:
git remote add upstream https://github.com/Draculabo/AntigravityManager.git
``` ```bash
git clone https://github.com/YOUR_USERNAME/GeminiNexus.git
## 💻 Development Setup cd GeminiNexus
```
### Prerequisites
3. **Add the upstream remote**:
- Node.js v18 or higher
- npm (comes with Node.js) ```bash
- Git git remote add upstream https://github.com/evandrodevbr/GeminiNexus.git
```
### Installation
---
```bash
# Install dependencies ## 💻 Development Setup
npm install
### Prerequisites
# Start development server
npm start - **Node.js** v20 or higher
``` - **npm** (this project uses `package-lock.json`)
- **Git**
### Available Scripts
### Installation
| Command | Description |
| ---------------------- | ----------------------------------- | ```bash
| `npm start` | Start the app in development mode | # Install dependencies
| `npm run lint` | Run ESLint to check for code issues | npm install
| `npm run format:write` | Format code with Prettier |
| `npm run test:unit` | Run unit tests with Vitest | # Start the app in development mode
| `npm run test:e2e` | Run E2E tests with Playwright | npm start
| `npm run test:all` | Run all tests | ```
| `npm run type-check` | Run TypeScript type checking |
| `npm run make` | Build production packages | ### Available Scripts
## ✏️ Making Changes | Command | Description |
|---------|-------------|
1. **Create a new branch** from `main`: | `npm start` | Start the app in development mode (Electron + Vite HMR) |
| `npm run lint` | Run ESLint |
```bash | `npm run format` | Check formatting with Prettier |
git checkout -b feature/your-feature-name | `npm run format:write` | Auto-format code with Prettier |
# or | `npm run type-check` | Run TypeScript type check |
git checkout -b fix/your-bug-fix | `npm test` | Run unit tests with Vitest |
``` | `npm run test:e2e` | Run E2E tests with Playwright |
| `npm run test:all` | Run all tests (unit + E2E) |
2. **Make your changes** and commit them: | `npm run make` | Build production installers |
```bash ### Project Structure
git add .
git commit -m "feat: add amazing new feature" ```plaintext
``` src/
├── components/ # React UI components (Radix-based primitives in ui/)
3. **Keep your branch updated**: ├── hooks/ # Custom React hooks
```bash ├── ipc/ # Electron IPC + database handlers
git fetch upstream ├── layouts/ # Layout components (MainLayout + sidebar)
git rebase upstream/main ├── localization/ # i18n translation resources
``` ├── routes/ # TanStack Router pages (index, usage, proxy, settings)
├── server/ # NestJS backend (proxy gateway service)
### Commit Message Guidelines ├── services/ # Service layer
├── types/ # TypeScript type definitions + Zod schemas
We follow [Conventional Commits](https://www.conventionalcommits.org/). Each commit message should be structured as follows: └── utils/ # Utility functions
```
```
<type>(<scope>): <description> ---
[optional body] ## ✏️ Making Changes
[optional footer(s)] 1. **Create a branch** from `main`:
```
```bash
**Types:** git checkout -b feat/your-feature-name
# or
- `feat`: A new feature git checkout -b fix/your-bug-fix
- `fix`: A bug fix ```
- `docs`: Documentation only changes
- `style`: Changes that don't affect code meaning (formatting, etc.) 2. **Make your changes**, then commit:
- `refactor`: Code change that neither fixes a bug nor adds a feature
- `perf`: Performance improvement ```bash
- `test`: Adding or correcting tests git add .
- `chore`: Changes to build process or auxiliary tools git commit -m "feat: add amazing new feature"
```
**Examples:**
3. **Keep your branch up to date**:
```
feat(auth): add Google OAuth support ```bash
fix(quota): resolve quota refresh timeout issue git fetch upstream
docs(readme): update installation instructions git rebase upstream/main
``` ```
## 🔄 Pull Request Process ---
1. **Update documentation** if you're changing functionality ## 📝 Commit Guidelines
2. **Add tests** for new features
3. **Ensure all tests pass**: `npm run test:all` We follow [Conventional Commits](https://www.conventionalcommits.org/). Commits are analyzed by `semantic-release` to automatically determine version bumps and generate changelogs.
4. **Ensure code is formatted**: `npm run format:write`
5. **Ensure no lint errors**: `npm run lint` ### Format
6. **Push to your fork** and create a Pull Request
```
### PR Checklist <type>(<scope>): <description>
- [ ] My code follows the project's style guidelines [optional body]
- [ ] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas [optional footer(s)]
- [ ] I have made corresponding changes to the documentation ```
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or my feature works ### Types
- [ ] New and existing unit tests pass locally with my changes
| Type | Description | Release |
## 🎨 Style Guidelines |------|-------------|---------|
| `feat` | A new feature | **minor** |
### TypeScript/JavaScript | `fix` | A bug fix | **patch** |
| `perf` | Performance improvement | **patch** |
- Use TypeScript for all new code | `refactor` | Code change (no bug fix or feature) | **patch** |
- Follow the existing code style (enforced by ESLint and Prettier) | `docs` | Documentation only | no release |
- Use meaningful variable and function names | `style` | Formatting, whitespace | no release |
- Add JSDoc comments for public APIs | `test` | Adding or fixing tests | no release |
| `chore` | Build process, tooling | no release |
### React Components | `ci` | CI/CD changes | no release |
- Use functional components with hooks ### Breaking Changes
- Keep components small and focused
- Use TypeScript interfaces for props Add `BREAKING CHANGE:` in the footer or `!` after the type to trigger a **major** release:
- Follow the existing file structure
```
### CSS/Styling feat!: remove legacy plaintext storage
- Use TailwindCSS utility classes BREAKING CHANGE: all accounts must re-authenticate after upgrade.
- Follow the design system in `components.json` ```
- Ensure responsive design
### Examples
## 🐛 Reporting Bugs
```
Found a bug? Please [create an issue](https://github.com/Draculabo/AntigravityManager/issues/new?template=bug_report.md) with: feat(proxy): add Anthropic /v1/messages endpoint
fix(usage): handle SQL SUM(null) in empty date ranges
- **Clear title** describing the issue docs(readme): add Chinese and Spanish translations
- **Steps to reproduce** the behavior ci: normalize Node.js to v20 across all workflows
- **Expected behavior** vs actual behavior ```
- **Screenshots** if applicable
- **Environment details** (OS, app version) ---
## 💡 Suggesting Features ## 🔄 Pull Request Process
Have an idea? Please [create an issue](https://github.com/Draculabo/AntigravityManager/issues/new?template=feature_request.md) with: ### Before Opening a PR
- **Clear description** of the feature 1. Run the quality checks:
- **Use case** - why is this feature needed?
- **Possible implementation** ideas (optional) ```bash
npm run lint
## 🙏 Thank You npm run format:write
npm run type-check
Your contributions help make Gemini Nexus better for everyone. Thank you for taking the time to contribute! npm test
```
---
2. Update documentation if you changed functionality
If you have any questions, feel free to open an issue or reach out to the maintainers. 3. Add tests for new features
### PR Checklist
- [ ] My code follows the project's style guidelines
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have updated related documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix or feature works
- [ ] All existing tests pass locally
### Review Process
- PRs require at least one maintainer approval
- CI must pass (lint, type-check, unit tests)
- Squash-merge is preferred for clean history
---
## 🎨 Code Style
### TypeScript
- Use TypeScript for all new code — avoid `any`
- Use Zod for runtime validation
- Prefer `lodash-es` named imports over native utilities
- Use `@/` alias for `src/` imports
### React Components
- Functional components with hooks only
- Use Radix UI primitives for accessible components
- TypeScript interfaces for props
- Follow existing component structure (`components/ComponentName.tsx`)
### Styling
- Tailwind CSS v4 utility classes
- Use `clsx` + `tailwind-merge` for conditional classes
- Follow the Gemini Nexus design tokens (`rounded-xl`, `border-white/[0.06]`)
### Import Order
```typescript
// 1. React and core libraries
import React, { useEffect } from 'react';
// 2. External dependencies (alphabetical)
import { useTranslation } from 'react-i18next';
// 3. Internal imports (using @ alias)
import { Card } from '@/components/ui/card';
```
---
## 🐛 Reporting Issues
### Bug Reports
[Create a bug report](https://github.com/evandrodevbr/GeminiNexus/issues/new?labels=bug&template=bug_report.md) with:
- Clear title describing the issue
- Steps to reproduce the behavior
- Expected vs actual behavior
- Screenshots if applicable
- Environment details (OS, app version, Node.js version)
### Feature Requests
[Suggest a feature](https://github.com/evandrodevbr/GeminiNexus/issues/new?labels=enhancement&template=feature_request.md) with:
- Clear description of the feature
- Use case — why is this needed?
- Possible implementation ideas (optional)
---
## 🙏 Thank You
Your contributions make Gemini Nexus better for everyone. Thank you for your time!
If you have questions, feel free to [open a discussion](https://github.com/evandrodevbr/GeminiNexus/discussions) or reach out to the maintainers.