- Use the GitHub issue tracker - Check if the bug has already been reported
- Check the closed issues - Your issue might have been resolved
- Provide detailed information:
- Steps to reproduce
- Expected vs actual behavior
- Environment details
- Screenshots if applicable
- Use the GitHub issue tracker
- Be clear and descriptive
- Provide examples and use cases
- Run linting:
deno lint
- Run formatting:
deno fmt
- Include & run tests:
deno test
- Follow STYLEGUIDE.md code conventions.
- Follow InSpatial Doc Rules for documentation.
- Write Conventional Commits
# Fork the repository and clone your fork
git clone https://github.com/YourUsername/InSpatial-Core.git
# Add the upstream repository
git remote add upstream https://github.com/InSpatial/InSpatial-Core.git
# Create a new branch off the relevant domain branch
git checkout -b cloud-ben cloud-main
# Commit changes regularly with descriptive messages
git commit -m "feat(cloud): add feature X to cloud module"
# Sync your branch with the latest changes from the domain branch
git fetch upstream
git merge upstream/cloud-main
# Push your branch to GitHub
git push origin cloud-ben
Then:
- Open a pull request (PR) from your branch to the domain branch
- Format your PR:
- Title:
feat(domain): short description
- Description: Include details, screenshots, or diagrams
- Reviewers: Assign domain maintainers
- Title:
📝 Template
type(domain): InSpatial package-name - Short Summary
[Optional Detailed Description]
💡 For Example
feat(cloud): InSpatial Auth - Add user profile page
Implements a new user profile page with the following features:
- Profile image upload
- Bio editing
- Social links integration
Available Types
feat
- A new featurefix
- A bug fixrefactor
- Code changes that neither fix a bug nor add a featuredocs
- Documentation updatestest
- Adding or updating testschore
- Maintenance tasks
Available Domains
cloud
- Cloud infrastructure and deploymentstore
- Marketplace features and integrationsdev
- Developer tools and utilitiesapp
- Application features and integrations
Available Packages
Package | Description |
---|---|
util |
Utility functions |
xr |
XR functions |
kit |
Kit functions |
run |
Run functions |
cache |
Cache functions |
env |
Environment functions |
router |
Router functions |
server |
Server functions |
ecs |
ECS functions |
iss |
ISS functions |
tw |
Tailwind functions |
theme |
Theme functions |
cli |
CLI functions |
test |
Test functions |
vfx |
VFX functions |
icon |
Icon functions |
inmoji |
Inmoji functions |
kv |
KV functions |
db |
DB functions |
cms |
CMS functions |
orm |
ORM functions |
auth |
Auth functions |
vault |
Vault functions |
ratelimit |
Rate limit functions |
infetch |
Infetch functions |
cron |
Cron functions |
live |
Live functions |
deploy |
Deploy functions |
-
Self-Review Checklist:
- ✓ Code readability and standards compliance
- ✓ Comprehensive testing (manual and automated)
- ✓ Documentation updates if needed
-
Peer Review Focus:
- ✓ Functionality validation
- ✓ Style adherence
- ✓ Performance implications
- ✓ Security considerations
- Domain maintainer reviews and approves PR
- PR gets merged into domain branch (e.g.,
cloud-main
) - Once stable, domain maintainer:
- Creates PR to
main
- Coordinates final reviews
- Handles merge to production
- Creates PR to
Each domain in InSpatial Core has explicit ownership and decision-making authority:
Domain | Owner | Responsibilities |
---|---|---|
Cloud | @cloud-maintainer | Final decisions on cloud infrastructure, deployment, and scaling |
Store | @store-maintainer | Final decisions on marketplace features and integrations |
Dev | @dev-maintainer | Final decisions on developer experience and tooling |
App | @app-maintainer | Final decisions on app features and integrations |
- Domain owners are core-maintainers and have final say on:
- Feature acceptance/rejection
- Architecture decisions
- Breaking changes
- Release timing
- Technical direction
- External Contributors should:
- Align proposals with domain owner's vision
- Seek early feedback on major changes
- Respect domain-specific guidelines
- Direct domain-specific questions to respective owners
main (production)
├── cloud-main
│ ├── cloud-ben
│ └── cloud-eli
├── store-main
│ ├── store-sam
│ └── store-alex
└── dev-main
├── dev-jay
└── dev-kim
main
The stable, production-ready branch. Changes here are fully tested and reviewed.- Domain Branches (e.g.,
cloud-main
,store-main
,dev-main
,app-main
)
Each domain has its own branch for consolidating features and updates. These branches are owned by a designated domain maintainer. - Individual Branches (e.g.,
cloud-ben
,cloud-eli
)
Individual contributors use these branches to develop features or experiment. - Hotfix Branches (e.g.,
hotfix-123
)
These branches are used to fix critical bugs in themain
branch. They are created from themain
branch and merged back into it.
# Clone your fork
git clone https://github.com/inspatiallabs/inspatial-core.git
# Install dependencies
deno install
# Set up pre-commit hooks
deno run --allow-read --allow-write scripts/setup-hooks.ts
# Run development server
deno task dev
inspatial-core/
├── dev/
│ ├── .../
│ └── .../
├── cloud/
│ ├── .../
│ └── .../
└── store/
├── .../
└── .../
Channel | Description | Command |
---|---|---|
🟢 Stable | Production-ready | deno install @inspatial/core |
🟡 Preview | Beta features | deno install @inspatial/core@preview |
🔴 Canary | Experimental | deno install @inspatial/core@canary |
By contributing, you agree that your contributions will be licensed under the project's MIT License.
Happy coding! 🎈