Thank you for your interest in contributing to Deep! This document provides guidelines and instructions for contributing to the project.
This project is meant to be a welcoming and inclusive space. All contributors are expected to adhere to our code of conduct, which promotes:
- Inclusive and respectful communication
- Constructive feedback
- Focus on the project's goals
- Collaborative problem-solving
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR-USERNAME/deep.git
- Add the upstream repository:
git remote add upstream https://github.com/deep-foundation/deep.git
- Create a new branch for your changes:
git checkout -b feature/your-feature-name
- Node.js (Latest LTS version recommended)
- npm or yarn
- TypeScript knowledge
- React experience (for UI components)
- Install dependencies:
npm install
# or
yarn
- Build the project:
npm run build
# or
yarn build
npm run test
- Run tests (from ./src/test.ts)npm run build
- Build the project (build ./src into ./dist as import/npx scripts)npm run next
- Start Next.js development server (development of next from ./src/app)npm run server
- Build Next.js client-server application (build to ./server)npm run start
- Start Next.js production server (starts ./server)npm run client
- Build Next.js client application without server (build to ./client)npm run ios
- Sync and open iOS project (from ./client to ./ios)npm run android
- Sync and open Android project (from ./client to ./android)npm run electron
- Build and open Electron app (from ./client to ./electron)npm run assets
- Generate app icons and splash screens (from ./assets to all splashs/logos/icons/favicons places)
- Create a new branch for your changes
- Write clear, concise commit messages
- Follow the existing code style
- Add tests for new functionality
- Update documentation as needed
- Ensure all tests pass
-
Keep code concise:
- Don't create function variables for one-time use (e.g. in onChange)
- Use inline functions for event handlers
- Avoid unnecessary abstractions
-
Follow Deep relationship naming conventions:
- Use PascalCase (capital first letter) for Type relationships (e.g.,
Type
,Contains
,Value
) - Use camelCase (lowercase first letter) for instance relationships (e.g.,
type
,from
,to
,value
)
- Use PascalCase (capital first letter) for Type relationships (e.g.,
For publishing, it is necessary to:
- Increase the version level, usually patch
- Extract changes description from
git status
andgit diff
for all modified files - Remove all NOT ENGLISH words from the all src/* files
- Format the message according to the following template:
Version: type(scope): summary
body
Breaking Changes:
- list of breaking changes (if any)